Made CMakeLists.txt cross-compile-friendly

bin2h is built natively
This commit is contained in:
Clownacy 2019-06-08 18:27:57 +00:00
parent 082ffeb04d
commit 75f585a727

View file

@ -262,8 +262,26 @@ elseif(NOT WIN32)
list(APPEND RESOURCES "FONT/cour.ttf") list(APPEND RESOURCES "FONT/cour.ttf")
endif() endif()
# Magic to convert resources to header files # Build bin2h externally, so it isn't cross-compiled when CSE2 is (Emscripten)
add_subdirectory("bin2h") 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) foreach(FILENAME IN LISTS RESOURCES)
set(IN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/res") set(IN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/res")
set(OUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/Resource") set(OUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/Resource")
@ -271,8 +289,8 @@ foreach(FILENAME IN LISTS RESOURCES)
add_custom_command( add_custom_command(
OUTPUT "${OUT_DIR}/${FILENAME}.h" OUTPUT "${OUT_DIR}/${FILENAME}.h"
COMMAND ${CMAKE_COMMAND} -E make_directory "${OUT_DIR}/${DIRECTORY}" COMMAND ${CMAKE_COMMAND} -E make_directory "${OUT_DIR}/${DIRECTORY}"
COMMAND bin2h "${IN_DIR}/${FILENAME}" "${OUT_DIR}/${FILENAME}.h" COMMAND bin2h_tool "${IN_DIR}/${FILENAME}" "${OUT_DIR}/${FILENAME}.h"
DEPENDS bin2h "${IN_DIR}/${FILENAME}" DEPENDS bin2h_tool "${IN_DIR}/${FILENAME}"
) )
target_sources(CSE2 PRIVATE "${OUT_DIR}/${FILENAME}.h") target_sources(CSE2 PRIVATE "${OUT_DIR}/${FILENAME}.h")
endforeach() endforeach()