CMakeLists.txt: build host tools as ExternalProject
This commit is contained in:
parent
6712c8ef22
commit
bf3ad3f9e4
|
@ -18,6 +18,13 @@ elseif(WIN9X_BUILD)
|
||||||
include("cmake/win9x-toolchain.cmake")
|
include("cmake/win9x-toolchain.cmake")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(TOOLS_PREFIX ${CMAKE_BINARY_DIR}/tools)
|
||||||
|
include(ExternalProject)
|
||||||
|
ExternalProject_Add(tools
|
||||||
|
SOURCE_DIR ${CMAKE_SOURCE_DIR}/tools
|
||||||
|
CMAKE_ARGS
|
||||||
|
-D CMAKE_INSTALL_PREFIX=${TOOLS_PREFIX})
|
||||||
|
|
||||||
project(rts)
|
project(rts)
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME} "src/main.c")
|
add_executable(${PROJECT_NAME} "src/main.c")
|
||||||
|
|
|
@ -29,12 +29,13 @@ function(sprite)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}
|
||||||
COMMAND add-header ${trans} ${SPRITE_NAME}_24.bmp ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}
|
COMMAND ${TOOLS_PREFIX}/bin/add-header ${trans} ${SPRITE_NAME}_24.bmp ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
DEPENDS ${SPRITE_NAME}_24.bmp
|
DEPENDS ${SPRITE_NAME}_24.bmp
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
add_custom_target(${SPRITE_NAME}_img
|
add_custom_target(${SPRITE_NAME}_img
|
||||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME})
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME})
|
||||||
|
add_dependencies(${SPRITE_NAME}_img tools)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
@ -66,12 +67,13 @@ function(sound)
|
||||||
|
|
||||||
# Reference: https://gist.github.com/socantre/7ee63133a0a3a08f3990
|
# Reference: https://gist.github.com/socantre/7ee63133a0a3a08f3990
|
||||||
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME}
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME}
|
||||||
COMMAND add-header ${loop} ${SOUND_NAME}.wav ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME}
|
COMMAND ${TOOLS_PREFIX}/bin/add-header ${loop} ${SOUND_NAME}.wav ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
DEPENDS ${SOUND_NAME}.wav
|
DEPENDS ${SOUND_NAME}.wav
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
add_custom_target(${SOUND_NAME}_snd
|
add_custom_target(${SOUND_NAME}_snd
|
||||||
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME})
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME})
|
||||||
|
add_dependencies(${SOUND_NAME}_snd tools)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
@ -83,7 +85,7 @@ function(container)
|
||||||
"${multiValueArgs}" ${ARGN})
|
"${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${cdroot}/${CONTAINER_NAME}.cnt
|
add_custom_command(OUTPUT ${cdroot}/${CONTAINER_NAME}.cnt
|
||||||
COMMAND container ${CONTAINER_SPRITES} ${CONTAINER_SOUNDS}
|
COMMAND ${TOOLS_PREFIX}/bin/container ${CONTAINER_SPRITES} ${CONTAINER_SOUNDS}
|
||||||
${cdroot}/${CONTAINER_NAME}.cnt
|
${cdroot}/${CONTAINER_NAME}.cnt
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
|
@ -91,6 +93,7 @@ function(container)
|
||||||
add_custom_target(${CONTAINER_NAME}_container
|
add_custom_target(${CONTAINER_NAME}_container
|
||||||
DEPENDS ${cdroot}/${CONTAINER_NAME}.cnt)
|
DEPENDS ${cdroot}/${CONTAINER_NAME}.cnt)
|
||||||
add_dependencies(${PROJECT_NAME} ${CONTAINER_NAME}_container)
|
add_dependencies(${PROJECT_NAME} ${CONTAINER_NAME}_container)
|
||||||
|
add_dependencies(${CONTAINER_NAME}_container tools)
|
||||||
|
|
||||||
foreach(sprite ${CONTAINER_SPRITES})
|
foreach(sprite ${CONTAINER_SPRITES})
|
||||||
add_dependencies(${CONTAINER_NAME}_container ${sprite}_img)
|
add_dependencies(${CONTAINER_NAME}_container ${sprite}_img)
|
||||||
|
|
|
@ -5,3 +5,4 @@ add_executable(add-header "add-header.c")
|
||||||
set(cflags -Wall -g3)
|
set(cflags -Wall -g3)
|
||||||
target_compile_options(container PUBLIC ${cflags})
|
target_compile_options(container PUBLIC ${cflags})
|
||||||
target_compile_options(add-header PUBLIC ${cflags})
|
target_compile_options(add-header PUBLIC ${cflags})
|
||||||
|
install(TARGETS container add-header DESTINATION bin)
|
||||||
|
|
Loading…
Reference in New Issue