Fold install(...) calls into set_output_dirs
This commit is contained in:
parent
3d8979f769
commit
f60d07bb55
|
|
@ -1,4 +1,4 @@
|
||||||
cmake_minimum_required(VERSION 3.25)
|
cmake_minimum_required(VERSION 3.31)
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
|
||||||
include(identity)
|
include(identity)
|
||||||
|
|
@ -79,3 +79,5 @@ include(renderer_gl2)
|
||||||
include(client)
|
include(client)
|
||||||
include(basegame)
|
include(basegame)
|
||||||
include(missionpack)
|
include(missionpack)
|
||||||
|
|
||||||
|
include(installer)
|
||||||
|
|
|
||||||
|
|
@ -141,21 +141,18 @@ if(BUILD_GAME_LIBRARIES)
|
||||||
target_link_libraries( ${CGAME_MODULE_BINARY_BASEGAME} PRIVATE ${COMMON_LIBRARIES})
|
target_link_libraries( ${CGAME_MODULE_BINARY_BASEGAME} PRIVATE ${COMMON_LIBRARIES})
|
||||||
set_target_properties( ${CGAME_MODULE_BINARY_BASEGAME} PROPERTIES OUTPUT_NAME ${CGAME_MODULE_BINARY})
|
set_target_properties( ${CGAME_MODULE_BINARY_BASEGAME} PROPERTIES OUTPUT_NAME ${CGAME_MODULE_BINARY})
|
||||||
set_output_dirs( ${CGAME_MODULE_BINARY_BASEGAME} SUBDIRECTORY ${BASEGAME})
|
set_output_dirs( ${CGAME_MODULE_BINARY_BASEGAME} SUBDIRECTORY ${BASEGAME})
|
||||||
install(TARGETS ${CGAME_MODULE_BINARY_BASEGAME} LIBRARY DESTINATION ${BASEGAME})
|
|
||||||
|
|
||||||
add_library( ${GAME_MODULE_BINARY_BASEGAME} SHARED ${GAME_SOURCES_BASEGAME} ${GAME_BINARY_SOURCES})
|
add_library( ${GAME_MODULE_BINARY_BASEGAME} SHARED ${GAME_SOURCES_BASEGAME} ${GAME_BINARY_SOURCES})
|
||||||
target_compile_definitions( ${GAME_MODULE_BINARY_BASEGAME} PRIVATE QAGAME)
|
target_compile_definitions( ${GAME_MODULE_BINARY_BASEGAME} PRIVATE QAGAME)
|
||||||
target_link_libraries( ${GAME_MODULE_BINARY_BASEGAME} PRIVATE ${COMMON_LIBRARIES})
|
target_link_libraries( ${GAME_MODULE_BINARY_BASEGAME} PRIVATE ${COMMON_LIBRARIES})
|
||||||
set_target_properties( ${GAME_MODULE_BINARY_BASEGAME} PROPERTIES OUTPUT_NAME ${GAME_MODULE_BINARY})
|
set_target_properties( ${GAME_MODULE_BINARY_BASEGAME} PROPERTIES OUTPUT_NAME ${GAME_MODULE_BINARY})
|
||||||
set_output_dirs( ${GAME_MODULE_BINARY_BASEGAME} SUBDIRECTORY ${BASEGAME})
|
set_output_dirs( ${GAME_MODULE_BINARY_BASEGAME} SUBDIRECTORY ${BASEGAME})
|
||||||
install(TARGETS ${GAME_MODULE_BINARY_BASEGAME} LIBRARY DESTINATION ${BASEGAME})
|
|
||||||
|
|
||||||
add_library( ${UI_MODULE_BINARY_BASEGAME} SHARED ${UI_SOURCES_BASEGAME} ${UI_BINARY_SOURCES})
|
add_library( ${UI_MODULE_BINARY_BASEGAME} SHARED ${UI_SOURCES_BASEGAME} ${UI_BINARY_SOURCES})
|
||||||
target_compile_definitions( ${UI_MODULE_BINARY_BASEGAME} PRIVATE UI)
|
target_compile_definitions( ${UI_MODULE_BINARY_BASEGAME} PRIVATE UI)
|
||||||
target_link_libraries( ${UI_MODULE_BINARY_BASEGAME} PRIVATE ${COMMON_LIBRARIES})
|
target_link_libraries( ${UI_MODULE_BINARY_BASEGAME} PRIVATE ${COMMON_LIBRARIES})
|
||||||
set_target_properties( ${UI_MODULE_BINARY_BASEGAME} PROPERTIES OUTPUT_NAME ${UI_MODULE_BINARY})
|
set_target_properties( ${UI_MODULE_BINARY_BASEGAME} PROPERTIES OUTPUT_NAME ${UI_MODULE_BINARY})
|
||||||
set_output_dirs( ${UI_MODULE_BINARY_BASEGAME} SUBDIRECTORY ${BASEGAME})
|
set_output_dirs( ${UI_MODULE_BINARY_BASEGAME} SUBDIRECTORY ${BASEGAME})
|
||||||
install(TARGETS ${UI_MODULE_BINARY_BASEGAME} LIBRARY DESTINATION ${BASEGAME})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_GAME_QVMS)
|
if(BUILD_GAME_QVMS)
|
||||||
|
|
|
||||||
|
|
@ -103,12 +103,12 @@ foreach(LIBRARY IN LISTS CLIENT_DEPLOY_LIBRARIES)
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy
|
COMMAND ${CMAKE_COMMAND} -E copy
|
||||||
${LIBRARY}
|
${LIBRARY}
|
||||||
$<TARGET_FILE_DIR:${CLIENT_BINARY}>)
|
$<TARGET_FILE_DIR:${CLIENT_BINARY}>)
|
||||||
|
|
||||||
|
install(FILES ${LIBRARY} DESTINATION
|
||||||
|
# install() requires a relative path hence:
|
||||||
|
$<PATH:RELATIVE_PATH,$<TARGET_FILE_DIR:${CLIENT_BINARY}>,${CMAKE_BINARY_DIR}/$<CONFIG>>)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
if(POST_CLIENT_CONFIGURE_FUNCTION)
|
if(POST_CLIENT_CONFIGURE_FUNCTION)
|
||||||
cmake_language(CALL ${POST_CLIENT_CONFIGURE_FUNCTION})
|
cmake_language(CALL ${POST_CLIENT_CONFIGURE_FUNCTION})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(TARGETS ${CLIENT_BINARY}
|
|
||||||
RUNTIME DESTINATION .
|
|
||||||
BUNDLE DESTINATION .)
|
|
||||||
|
|
|
||||||
17
cmake/installer.cmake
Normal file
17
cmake/installer.cmake
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
get_directory_property(INSTALL_TARGETS DIRECTORY
|
||||||
|
${CMAKE_SOURCE_DIR} BUILDSYSTEM_TARGETS)
|
||||||
|
|
||||||
|
# Iterate over all the targets that have an INSTALL_DESTINATION
|
||||||
|
# property (set by set_output_dirs) and call install() on them
|
||||||
|
foreach(TARGET IN LISTS INSTALL_TARGETS)
|
||||||
|
get_target_property(DESTINATION ${TARGET} INSTALL_DESTINATION)
|
||||||
|
if(NOT DESTINATION)
|
||||||
|
continue()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
install(TARGETS ${TARGET}
|
||||||
|
RUNTIME DESTINATION ${DESTINATION}
|
||||||
|
LIBRARY DESTINATION ${DESTINATION}
|
||||||
|
BUNDLE DESTINATION ${DESTINATION}
|
||||||
|
ARCHIVE EXCLUDE_FROM_ALL)
|
||||||
|
endforeach()
|
||||||
|
|
@ -36,21 +36,18 @@ if(BUILD_GAME_LIBRARIES)
|
||||||
target_link_libraries( ${CGAME_MODULE_BINARY_MISSIONPACK} PRIVATE ${COMMON_LIBRARIES})
|
target_link_libraries( ${CGAME_MODULE_BINARY_MISSIONPACK} PRIVATE ${COMMON_LIBRARIES})
|
||||||
set_target_properties( ${CGAME_MODULE_BINARY_MISSIONPACK} PROPERTIES OUTPUT_NAME ${CGAME_MODULE_BINARY})
|
set_target_properties( ${CGAME_MODULE_BINARY_MISSIONPACK} PROPERTIES OUTPUT_NAME ${CGAME_MODULE_BINARY})
|
||||||
set_output_dirs( ${CGAME_MODULE_BINARY_MISSIONPACK} SUBDIRECTORY ${MISSIONPACK})
|
set_output_dirs( ${CGAME_MODULE_BINARY_MISSIONPACK} SUBDIRECTORY ${MISSIONPACK})
|
||||||
install(TARGETS ${CGAME_MODULE_BINARY_MISSIONPACK} LIBRARY DESTINATION ${MISSIONPACK})
|
|
||||||
|
|
||||||
add_library( ${GAME_MODULE_BINARY_MISSIONPACK} SHARED ${GAME_SOURCES_MISSIONPACK} ${GAME_BINARY_SOURCES})
|
add_library( ${GAME_MODULE_BINARY_MISSIONPACK} SHARED ${GAME_SOURCES_MISSIONPACK} ${GAME_BINARY_SOURCES})
|
||||||
target_compile_definitions( ${GAME_MODULE_BINARY_MISSIONPACK} PRIVATE QAGAME MISSIONPACK)
|
target_compile_definitions( ${GAME_MODULE_BINARY_MISSIONPACK} PRIVATE QAGAME MISSIONPACK)
|
||||||
target_link_libraries( ${GAME_MODULE_BINARY_MISSIONPACK} PRIVATE ${COMMON_LIBRARIES})
|
target_link_libraries( ${GAME_MODULE_BINARY_MISSIONPACK} PRIVATE ${COMMON_LIBRARIES})
|
||||||
set_target_properties( ${GAME_MODULE_BINARY_MISSIONPACK} PROPERTIES OUTPUT_NAME ${GAME_MODULE_BINARY})
|
set_target_properties( ${GAME_MODULE_BINARY_MISSIONPACK} PROPERTIES OUTPUT_NAME ${GAME_MODULE_BINARY})
|
||||||
set_output_dirs( ${GAME_MODULE_BINARY_MISSIONPACK} SUBDIRECTORY ${MISSIONPACK})
|
set_output_dirs( ${GAME_MODULE_BINARY_MISSIONPACK} SUBDIRECTORY ${MISSIONPACK})
|
||||||
install(TARGETS ${GAME_MODULE_BINARY_MISSIONPACK} LIBRARY DESTINATION ${MISSIONPACK})
|
|
||||||
|
|
||||||
add_library( ${UI_MODULE_BINARY_MISSIONPACK} SHARED ${UI_SOURCES_MISSIONPACK} ${UI_BINARY_SOURCES})
|
add_library( ${UI_MODULE_BINARY_MISSIONPACK} SHARED ${UI_SOURCES_MISSIONPACK} ${UI_BINARY_SOURCES})
|
||||||
target_compile_definitions( ${UI_MODULE_BINARY_MISSIONPACK} PRIVATE UI MISSIONPACK)
|
target_compile_definitions( ${UI_MODULE_BINARY_MISSIONPACK} PRIVATE UI MISSIONPACK)
|
||||||
target_link_libraries( ${UI_MODULE_BINARY_MISSIONPACK} PRIVATE ${COMMON_LIBRARIES})
|
target_link_libraries( ${UI_MODULE_BINARY_MISSIONPACK} PRIVATE ${COMMON_LIBRARIES})
|
||||||
set_target_properties( ${UI_MODULE_BINARY_MISSIONPACK} PROPERTIES OUTPUT_NAME ${UI_MODULE_BINARY})
|
set_target_properties( ${UI_MODULE_BINARY_MISSIONPACK} PROPERTIES OUTPUT_NAME ${UI_MODULE_BINARY})
|
||||||
set_output_dirs( ${UI_MODULE_BINARY_MISSIONPACK} SUBDIRECTORY ${MISSIONPACK})
|
set_output_dirs( ${UI_MODULE_BINARY_MISSIONPACK} SUBDIRECTORY ${MISSIONPACK})
|
||||||
install(TARGETS ${UI_MODULE_BINARY_MISSIONPACK} LIBRARY DESTINATION ${MISSIONPACK})
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_GAME_QVMS)
|
if(BUILD_GAME_QVMS)
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,5 @@ if(USE_RENDERER_DLOPEN)
|
||||||
target_link_options( ${RENDERER_GL1_BINARY} PRIVATE ${RENDERER_LINK_OPTIONS})
|
target_link_options( ${RENDERER_GL1_BINARY} PRIVATE ${RENDERER_LINK_OPTIONS})
|
||||||
|
|
||||||
set_output_dirs(${RENDERER_GL1_BINARY})
|
set_output_dirs(${RENDERER_GL1_BINARY})
|
||||||
install(TARGETS ${RENDERER_GL1_BINARY} LIBRARY DESTINATION .)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,5 @@ if(USE_RENDERER_DLOPEN)
|
||||||
target_link_options( ${RENDERER_GL2_BINARY} PRIVATE ${RENDERER_LINK_OPTIONS})
|
target_link_options( ${RENDERER_GL2_BINARY} PRIVATE ${RENDERER_LINK_OPTIONS})
|
||||||
|
|
||||||
set_output_dirs(${RENDERER_GL2_BINARY})
|
set_output_dirs(${RENDERER_GL2_BINARY})
|
||||||
install(TARGETS ${RENDERER_GL2_BINARY} LIBRARY DESTINATION .)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,5 +47,3 @@ set_output_dirs(${SERVER_BINARY})
|
||||||
if(POST_SERVER_CONFIGURE_FUNCTION)
|
if(POST_SERVER_CONFIGURE_FUNCTION)
|
||||||
cmake_language(CALL ${POST_SERVER_CONFIGURE_FUNCTION})
|
cmake_language(CALL ${POST_SERVER_CONFIGURE_FUNCTION})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
install(TARGETS ${SERVER_BINARY} RUNTIME DESTINATION .)
|
|
||||||
|
|
|
||||||
|
|
@ -24,4 +24,7 @@ function(set_output_dirs TARGET)
|
||||||
RUNTIME_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${OUT_DIR}
|
RUNTIME_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${OUT_DIR}
|
||||||
ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${OUT_DIR})
|
ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${OUT_DIR})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
|
set_target_properties(${TARGET} PROPERTIES
|
||||||
|
INSTALL_DESTINATION ./${ARG_SUBDIRECTORY})
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user