From 6c4b72f5551dc382297d7a704ce181a4473b4d87 Mon Sep 17 00:00:00 2001 From: Felix Weiglhofer <weiglhofer@fias.uni-frankfurt.de> Date: Wed, 1 Feb 2023 13:24:09 +0000 Subject: [PATCH] cmake: Use CMAKE_LIBRARY_OUTPUT_DIRECTORY instead of LIBRARY_OUTPUT_PATH. Replace usage of deprecated LIBRARY_OUTPUT_PATH variable with newer CMAKE_LIBRARY_OUTPUT_DIRECTORY. The new variable has the advantage that it populates the LIBRARY_OUTPUT_DIRECTORY property of targets. This property is required by xpu to figure out where the generated cuda/hip libraries should be placed. --- CMakeLists.txt | 6 +++--- cmake/modules/CbmMacros.cmake | 34 ++++++++++++++-------------------- cmake/modules/ROOTMacros.cmake | 6 +++--- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9eeb577562..3bb196a1cc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,7 +97,7 @@ if(FairLogger_FOUND) INTERFACE_INCLUDE_DIRECTORIES "${_incDirs}/fairlogger" ) endif() - + #Searches for VMC Package if(ROOT_vmc_FOUND) set(VMCLIB ROOT::VMC) @@ -177,7 +177,7 @@ check_external_stack() set_compiler_flags() # Define where the produced targets are placed in the binary directory -Set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib") +Set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") Set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin") Set(INCLUDE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/include") set(CMAKE_INSTALL_LIBDIR lib) @@ -269,5 +269,5 @@ generate_config_files() Install(DIRECTORY geometry input parameters DESTINATION share/cbmroot PATTERN ".git" EXCLUDE) - + print_info() diff --git a/cmake/modules/CbmMacros.cmake b/cmake/modules/CbmMacros.cmake index fa3930fa70..86b13b93d9 100644 --- a/cmake/modules/CbmMacros.cmake +++ b/cmake/modules/CbmMacros.cmake @@ -3,7 +3,7 @@ Macro(Remove_Trailing_Slash _variable) String(FIND ${_variable} "/" _pos_last_slash REVERSE) STRING(LENGTH ${_variable} _length) Math(EXPR _last_pos ${_pos_last_slash}+1) - If(${_last_pos} EQUAL ${_length}) + If(${_last_pos} EQUAL ${_length}) String(SUBSTRING ${_variable} 0 ${_pos_last_slash} _ret_val) Else() Set(_ret_val ${_variable}) @@ -50,7 +50,7 @@ Macro(FairRootVersion) Set(FairRoot_VERSION ${FairRoot_VERSION_MAJOR}.${FairRoot_VERSION_MINOR}.${FairRoot_VERSION_PATCH} - ) + ) EndMacro() Macro(FairSoftVersion) @@ -95,10 +95,10 @@ Macro(FairSoftVersion) Set(FairSoft_VERSION ${FairSoft_VERSION_MAJOR}.${FairSoft_VERSION_MINOR} - ) + ) EndMacro() -Macro(Gen_Exe_Script _ExeName) +Macro(Gen_Exe_Script _ExeName) set(shell_script_name "${_ExeName}.sh") @@ -141,8 +141,8 @@ function(download_project_if_needed) ) If(NOT ${MY_GIT_TAG} STREQUAL ${CURRENT_SPADIC_HASH}) If(MY_GIT_STASH) - Execute_Process(COMMAND git stash WORKING_DIRECTORY ${MY_SOURCE_DIR}) - Execute_Process(COMMAND git stash clear WORKING_DIRECTORY ${MY_SOURCE_DIR}) + Execute_Process(COMMAND git stash WORKING_DIRECTORY ${MY_SOURCE_DIR}) + Execute_Process(COMMAND git stash clear WORKING_DIRECTORY ${MY_SOURCE_DIR}) EndIF() download_project(PROJ ${MY_PROJECT} GIT_REPOSITORY ${MY_GIT_REPOSITORY} @@ -209,7 +209,7 @@ macro(generate_cbm_library) ######################### build the library ############################ add_library(${LIBRARY_NAME} SHARED ${HEADERS} ${SRCS} ${NO_DICT_SRCS} ${LINKDEF}) - + target_link_libraries(${LIBRARY_NAME} PUBLIC ${DEPENDENCIES} ${PUBLIC_DEPENDENCIES} PRIVATE ${PRIVATE_DEPENDENCIES} INTERFACE ${INTERFACE_DEPENDENCIES}) target_include_directories(${LIBRARY_NAME} PUBLIC ${INCLUDE_DIRECTORIES}) @@ -228,14 +228,8 @@ macro(generate_cbm_library) if(LINKDEF) - set(rootmap_file ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${LIBRARY_NAME}.rootmap) - set(pcm_file ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${LIBRARY_NAME}_rdict.pcm) - - add_custom_command(TARGET ${LIBRARY_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${rootmap_file} ${LIBRARY_OUTPUT_PATH} - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${pcm_file} ${LIBRARY_OUTPUT_PATH} - DEPENDS ${LIBRARY_NAME} - ) + set(rootmap_file ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_SHARED_LIBRARY_PREFIX}${LIBRARY_NAME}.rootmap) + set(pcm_file ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${CMAKE_SHARED_LIBRARY_PREFIX}${LIBRARY_NAME}_rdict.pcm) install(FILES ${rootmap_file} ${pcm_file} DESTINATION lib) endif(LINKDEF) @@ -295,7 +289,7 @@ macro(print_info) set(BMagenta "${Esc}[1;35m") set(BCyan "${Esc}[1;36m") set(BWhite "${Esc}[1;37m") - + message(STATUS " ") message(STATUS " ${Cyan}CXX STANDARD${CR} ${BGreen}C++${CMAKE_CXX_STANDARD}${CR} (change with ${BMagenta}-DCMAKE_CXX_STANDARD=17${CR})") @@ -306,19 +300,19 @@ if(packages) message(STATUS " ") message(STATUS " ${Cyan}PACKAGE VERSION OPTION${CR}") foreach(dep IN LISTS packages) - + if(${${dep}_FOUND}} MATCHES "TRUE" OR ${${dep}_FOUND}} MATCHES "1" OR ${${dep}_FOUND}} MATCHES "true") set(dep_found "${BGreen}-FOUND") else() set(dep_found "${Red}-NOT FOUND") endif() - - pad("${BYellow}${${dep}_VERSION}${CR}" 15 " " dep_version COLOR 1) + + pad("${BYellow}${${dep}_VERSION}${CR}" 15 " " dep_version COLOR 1) pad(${dep} 20 " " dep_name) pad("${dep_found}${CR}" 15 " " version_found COLOR 1) message(STATUS " ${BWhite}${dep_name}${CR}${dep_version}${version_found}") - + unset(dep) unset(dep_found) unset(dep_version) diff --git a/cmake/modules/ROOTMacros.cmake b/cmake/modules/ROOTMacros.cmake index 9cd66f679d..f6d66beef6 100644 --- a/cmake/modules/ROOTMacros.cmake +++ b/cmake/modules/ROOTMacros.cmake @@ -96,7 +96,7 @@ Macro(ROOT_GENERATE_DICTIONARY_NEW) Set(EXTRA_DICT_PARAMETERS "") - Set(Int_ROOTMAPFILE ${LIBRARY_OUTPUT_PATH}/lib${Int_LIB}.rootmap) + Set(Int_ROOTMAPFILE ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/lib${Int_LIB}.rootmap) Set(Int_PCMFILE G__${Int_LIB}Dict_rdict.pcm) Set(OUTPUT_FILES ${OUTPUT_FILES} ${Int_PCMFILE} ${Int_ROOTMAPFILE}) Set(EXTRA_DICT_PARAMETERS ${EXTRA_DICT_PARAMETERS} @@ -116,10 +116,10 @@ Macro(ROOT_GENERATE_DICTIONARY_NEW) Add_Custom_Command(OUTPUT ${OUTPUT_FILES} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/generate_dictionary_${script_name}.sh - COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/${Int_PCMFILE} ${LIBRARY_OUTPUT_PATH}/${Int_PCMFILE} + COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/${Int_PCMFILE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${Int_PCMFILE} DEPENDS ${HDRS} ${Int_LINKDEF} ) - Install(FILES ${LIBRARY_OUTPUT_PATH}/${Int_PCMFILE} ${Int_ROOTMAPFILE} DESTINATION lib) + Install(FILES ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${Int_PCMFILE} ${Int_ROOTMAPFILE} DESTINATION lib) endmacro(ROOT_GENERATE_DICTIONARY_NEW) -- GitLab