Fold install(...) calls into set_output_dirs
This commit is contained in:
1 parent
3d8979f769
commit
f60d07bb55
9 files changed
+27
-15
No files matched your search
+3
-1
@@ -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)
|
||||
include(identity)
|
||||
@@ -79,3 +79,5 @@ include(renderer_gl2)
|
||||
include(client)
|
||||
include(basegame)
|
||||
include(missionpack)
|
||||
|
||||
include(installer)
|
||||
@@ -141,21 +141,18 @@ if(BUILD_GAME_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_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})
|
||||
target_compile_definitions( ${GAME_MODULE_BINARY_BASEGAME} PRIVATE QAGAME)
|
||||
target_link_libraries( ${GAME_MODULE_BINARY_BASEGAME} PRIVATE ${COMMON_LIBRARIES})
|
||||
set_target_properties( ${GAME_MODULE_BINARY_BASEGAME} PROPERTIES OUTPUT_NAME ${GAME_MODULE_BINARY})
|
||||
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})
|
||||
target_compile_definitions( ${UI_MODULE_BINARY_BASEGAME} PRIVATE UI)
|
||||
target_link_libraries( ${UI_MODULE_BINARY_BASEGAME} PRIVATE ${COMMON_LIBRARIES})
|
||||
set_target_properties( ${UI_MODULE_BINARY_BASEGAME} PROPERTIES OUTPUT_NAME ${UI_MODULE_BINARY})
|
||||
set_output_dirs( ${UI_MODULE_BINARY_BASEGAME} SUBDIRECTORY ${BASEGAME})
|
||||
install(TARGETS ${UI_MODULE_BINARY_BASEGAME} LIBRARY DESTINATION ${BASEGAME})
|
||||
endif()
|
||||
|
||||
if(BUILD_GAME_QVMS)
|
||||
|
||||
+4
-4
@@ -103,12 +103,12 @@ foreach(LIBRARY IN LISTS CLIENT_DEPLOY_LIBRARIES)
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${LIBRARY}
|
||||
$<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()
|
||||
|
||||
if(POST_CLIENT_CONFIGURE_FUNCTION)
|
||||
cmake_language(CALL ${POST_CLIENT_CONFIGURE_FUNCTION})
|
||||
endif()
|
||||
|
||||
install(TARGETS ${CLIENT_BINARY}
|
||||
RUNTIME DESTINATION .
|
||||
BUNDLE DESTINATION .)
|
||||
@@ -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})
|
||||
set_target_properties( ${CGAME_MODULE_BINARY_MISSIONPACK} PROPERTIES OUTPUT_NAME ${CGAME_MODULE_BINARY})
|
||||
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})
|
||||
target_compile_definitions( ${GAME_MODULE_BINARY_MISSIONPACK} PRIVATE QAGAME MISSIONPACK)
|
||||
target_link_libraries( ${GAME_MODULE_BINARY_MISSIONPACK} PRIVATE ${COMMON_LIBRARIES})
|
||||
set_target_properties( ${GAME_MODULE_BINARY_MISSIONPACK} PROPERTIES OUTPUT_NAME ${GAME_MODULE_BINARY})
|
||||
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})
|
||||
target_compile_definitions( ${UI_MODULE_BINARY_MISSIONPACK} PRIVATE UI MISSIONPACK)
|
||||
target_link_libraries( ${UI_MODULE_BINARY_MISSIONPACK} PRIVATE ${COMMON_LIBRARIES})
|
||||
set_target_properties( ${UI_MODULE_BINARY_MISSIONPACK} PROPERTIES OUTPUT_NAME ${UI_MODULE_BINARY})
|
||||
set_output_dirs( ${UI_MODULE_BINARY_MISSIONPACK} SUBDIRECTORY ${MISSIONPACK})
|
||||
install(TARGETS ${UI_MODULE_BINARY_MISSIONPACK} LIBRARY DESTINATION ${MISSIONPACK})
|
||||
endif()
|
||||
|
||||
if(BUILD_GAME_QVMS)
|
||||
|
||||
@@ -52,6 +52,5 @@ if(USE_RENDERER_DLOPEN)
|
||||
target_link_options( ${RENDERER_GL1_BINARY} PRIVATE ${RENDERER_LINK_OPTIONS})
|
||||
|
||||
set_output_dirs(${RENDERER_GL1_BINARY})
|
||||
install(TARGETS ${RENDERER_GL1_BINARY} LIBRARY DESTINATION .)
|
||||
endif()
|
||||
|
||||
@@ -84,6 +84,5 @@ if(USE_RENDERER_DLOPEN)
|
||||
target_link_options( ${RENDERER_GL2_BINARY} PRIVATE ${RENDERER_LINK_OPTIONS})
|
||||
|
||||
set_output_dirs(${RENDERER_GL2_BINARY})
|
||||
install(TARGETS ${RENDERER_GL2_BINARY} LIBRARY DESTINATION .)
|
||||
endif()
|
||||
|
||||
@@ -47,5 +47,3 @@ set_output_dirs(${SERVER_BINARY})
|
||||
if(POST_SERVER_CONFIGURE_FUNCTION)
|
||||
cmake_language(CALL ${POST_SERVER_CONFIGURE_FUNCTION})
|
||||
endif()
|
||||
|
||||
install(TARGETS ${SERVER_BINARY} RUNTIME DESTINATION .)
|
||||
@@ -24,4 +24,7 @@ function(set_output_dirs TARGET)
|
||||
RUNTIME_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${OUT_DIR}
|
||||
ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_UPPER} ${OUT_DIR})
|
||||
endforeach()
|
||||
|
||||
set_target_properties(${TARGET} PROPERTIES
|
||||
INSTALL_DESTINATION ./${ARG_SUBDIRECTORY})
|
||||
endfunction()
|
||||
Reference in new issue
Block a user