ref: 4ab849f4ef8c581ac681311f0fa1a562ba600f78
parent: fd83c08c9c5d6ba78132853fa4190c930c8765cf
parent: 6a9f2cc1ff69d00699dd9f4db4ce1133774d39a0
author: Gabriel Ravier <gabravier@gmail.com>
date: Fri Jun 14 16:33:23 EDT 2019
Merge branch 'master' into feature/improveNonNpcCharNpcFiles
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -262,8 +262,26 @@
list(APPEND RESOURCES "FONT/cour.ttf")
endif()
-# Magic to convert resources to header files
-add_subdirectory("bin2h")
+# Build bin2h externally, so it isn't cross-compiled when CSE2 is (Emscripten)
+include(ExternalProject)
+
+ExternalProject_Add(bin2h
+ SOURCE_DIR "${CMAKE_SOURCE_DIR}/bin2h"
+ DOWNLOAD_COMMAND ""
+ UPDATE_COMMAND ""
+ CMAKE_ARGS
+ -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
+ -DCMAKE_BUILD_TYPE=Release
+ -DCMAKE_CONFIGURATION_TYPES=Release
+)
+
+ExternalProject_Get_Property(bin2h INSTALL_DIR)
+
+add_executable(bin2h_tool IMPORTED)
+add_dependencies(bin2h_tool bin2h)
+set_target_properties(bin2h_tool PROPERTIES IMPORTED_LOCATION "${INSTALL_DIR}/bin/bin2h")
+
+# Convert resources to header files
foreach(FILENAME IN LISTS RESOURCES)
set(IN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/res")
set(OUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/Resource")
@@ -271,8 +289,8 @@
add_custom_command(
OUTPUT "${OUT_DIR}/${FILENAME}.h"
COMMAND ${CMAKE_COMMAND} -E make_directory "${OUT_DIR}/${DIRECTORY}"
- COMMAND bin2h "${IN_DIR}/${FILENAME}" "${OUT_DIR}/${FILENAME}.h"
- DEPENDS bin2h "${IN_DIR}/${FILENAME}"
+ COMMAND bin2h_tool "${IN_DIR}/${FILENAME}" "${OUT_DIR}/${FILENAME}.h"
+ DEPENDS bin2h_tool "${IN_DIR}/${FILENAME}"
)
target_sources(CSE2 PRIVATE "${OUT_DIR}/${FILENAME}.h")
endforeach()
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,6 @@
+NATIVECC = cc
+NATIVECXX = c++
+
ifeq ($(RELEASE), 1)
CXXFLAGS = -O3 -flto
LDFLAGS = -s
@@ -179,7 +182,7 @@
ORG/White.org \
ORG/XXXX.org \
ORG/Zonbie.org \
- WAVE/Wave.dat \
+ WAVE/Wave.dat
ifeq ($(JAPANESE), 1)
RESOURCES += BITMAP/pixel_jp.bmp
@@ -204,12 +207,12 @@
endif
all: $(BUILD_DIR)/$(FILENAME)
+ @echo Finished
$(BUILD_DIR)/$(FILENAME): $(OBJECTS)
@mkdir -p $(@D)
- @echo Linking
+ @echo Linking $@
@$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
- @echo Finished compiling: $@
obj/$(BUILD_DIR)/$(FILENAME)/%.o: src/%.cpp
@mkdir -p $(@D)
@@ -229,7 +232,7 @@
obj/bin2h: bin2h/bin2h.c
@mkdir -p $(@D)
@echo Compiling $^
- @$(CC) -O3 -s -std=c90 -Wall -Wextra -pedantic $^ -o $@
+ @$(NATIVECC) -O3 -s -std=c90 -Wall -Wextra -pedantic $^ -o $@
include $(wildcard $(DEPENDENCIES))
--- a/bin2h/CMakeLists.txt
+++ b/bin2h/CMakeLists.txt
@@ -29,3 +29,5 @@
endif()
endif()
endif()
+
+install(TARGETS bin2h RUNTIME)
--- a/src/Sound.cpp
+++ b/src/Sound.cpp
@@ -169,7 +169,7 @@
const float sample2 = ((looping || (((size_t)samplePosition) + 1) < size) ? data[(((size_t)samplePosition) + 1) % size] : 128.0f);
//Interpolate sample
- const float subPos = (float)std::fmod(samplePosition, 1.0);
+ const float subPos = (float)fmod(samplePosition, 1.0);
const float sampleA = sample1 + (sample2 - sample1) * subPos;
//Convert sample to float32
@@ -186,7 +186,7 @@
{
if (looping)
{
- samplePosition = std::fmod(samplePosition, size);
+ samplePosition = fmod(samplePosition, size);
looped = true;
}
else