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)
|
||||
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)
|
||||
|
|
|
|||
|
|
@ -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 .)
|
||||
|
|
|
|||
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})
|
||||
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()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user