FUNCTION(OPENPASS_COPY_TARGET_PDB target_name pdb_inst_prefix) IF(MSVC) GET_TARGET_PROPERTY(TARGET_LOC ${target_name} DEBUG_LOCATION) IF(TARGET_LOC) GET_FILENAME_COMPONENT(TARGET_HEAD "${TARGET_LOC}" NAME_WE) # GET_FILENAME_COMPONENT(FNABSOLUTE "${TARGET_LOC}" ABSOLUTE) GET_FILENAME_COMPONENT(TARGET_PATH "${TARGET_LOC}" PATH) SET(TARGET_PDB "${TARGET_PATH}/${TARGET_HEAD}.pdb") # MESSAGE(STATUS "PDB-File of ${target_name} is ${TARGET_PDB}") GET_TARGET_PROPERTY(TARGET_TYPE ${target_name} TYPE) IF(TARGET_TYPE) SET(pdb_dest ) IF(TARGET_TYPE STREQUAL "STATIC_LIBRARY") SET(pdb_dest lib) ELSE(TARGET_TYPE STREQUAL "STATIC_LIBRARY") SET(pdb_dest bin) ENDIF(TARGET_TYPE STREQUAL "STATIC_LIBRARY") # maybe an optional category path given? IF(NOT "${ARGN}" STREQUAL "") SET(category_path "${ARGV2}") ENDIF(NOT "${ARGN}" STREQUAL "") INSTALL(FILES ${TARGET_PDB} DESTINATION "${pdb_inst_prefix}/${pdb_dest}${category_path}" CONFIGURATIONS "Debug") ENDIF(TARGET_TYPE) ENDIF(TARGET_LOC) ENDIF(MSVC) ENDFUNCTION(OPENPASS_COPY_TARGET_PDB) MACRO(OPENPASS_MSVC_RUNTIME_OPTION) IF(MSVC) OPTION (MSVC_USE_STATIC_RUNTIME "Use static MS-Runtime (/MT, /MTd)" OFF) IF(MSVC_USE_STATIC_RUNTIME) FOREACH(FLAG_VAR CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) IF(${FLAG_VAR} MATCHES "/MD") STRING(REGEX REPLACE "/MD" "/MT" BCMSVC_${FLAG_VAR} "${${FLAG_VAR}}") SET(${FLAG_VAR} ${BCMSVC_${FLAG_VAR}} CACHE STRING "" FORCE) ENDIF(${FLAG_VAR} MATCHES "/MD") ENDFOREACH(FLAG_VAR) ELSE(MSVC_USE_STATIC_RUNTIME) FOREACH(FLAG_VAR CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) IF(${FLAG_VAR} MATCHES "/MT") STRING(REGEX REPLACE "/MT" "/MD" BCMSVC_${FLAG_VAR} "${${FLAG_VAR}}") SET(${FLAG_VAR} ${BCMSVC_${FLAG_VAR}} CACHE STRING "" FORCE) ENDIF(${FLAG_VAR} MATCHES "/MT") ENDFOREACH(FLAG_VAR) ENDIF(MSVC_USE_STATIC_RUNTIME) ENDIF(MSVC) ENDMACRO(OPENPASS_MSVC_RUNTIME_OPTION)