#------------------------------------------------------------------- # This file is part of the CMake build system for Scol # # The contents of this file are placed in the public domain. Feel # free to make use of it in any way you like. #------------------------------------------------------------------- # Configure settings and install targets if (WIN32) set(Scol_RELEASE_PATH "/Release") set(Scol_RELWDBG_PATH "/RelWithDebInfo") set(Scol_MINSIZE_PATH "/MinSizeRel") set(Scol_DEBUG_PATH "/Debug") set(Scol_LIB_RELEASE_PATH "/Release") set(Scol_LIB_RELWDBG_PATH "/RelWithDebInfo") set(Scol_LIB_MINSIZE_PATH "/MinSizeRel") set(Scol_LIB_DEBUG_PATH "/Debug") set(Scol_PLUGIN_PATH "/Plugins") elseif (UNIX) set(Scol_RELEASE_PATH "") set(Scol_RELWDBG_PATH "") set(Scol_MINSIZE_PATH "") set(Scol_DEBUG_PATH "/debug") set(Scol_LIB_RELEASE_PATH "") set(Scol_LIB_RELWDBG_PATH "") set(Scol_LIB_MINSIZE_PATH "") set(Scol_LIB_DEBUG_PATH "") set(Scol_PLUGIN_PATH "/SCOL") endif () # create vcproj.user file for Visual Studio to set debug working directory function(scol_create_vcproj_userfile TARGETNAME) if (MSVC) configure_file( ${Scol_TEMPLATES_DIR}/VisualStudioUserFile.vcproj.user.in ${CMAKE_CURRENT_BINARY_DIR}/${TARGETNAME}.vcproj.user @ONLY ) endif () endfunction(scol_create_vcproj_userfile) # install targets according to current build type function(scol_install_target TARGETNAME SUFFIX) install(TARGETS ${TARGETNAME} BUNDLE DESTINATION "bin${Scol_RELEASE_PATH}${SUFFIX}" CONFIGURATIONS Release None "" RUNTIME DESTINATION "bin${Scol_RELEASE_PATH}${SUFFIX}" CONFIGURATIONS Release None "" LIBRARY DESTINATION "lib${Scol_LIB_RELEASE_PATH}${SUFFIX}" CONFIGURATIONS Release None "" ARCHIVE DESTINATION "lib${Scol_LIB_RELEASE_PATH}${SUFFIX}" CONFIGURATIONS Release None "" FRAMEWORK DESTINATION "bin${Scol_RELEASE_PATH}${SUFFIX}" CONFIGURATIONS Release None "" ) install(TARGETS ${TARGETNAME} BUNDLE DESTINATION "bin${Scol_RELWDBG_PATH}${SUFFIX}" CONFIGURATIONS RelWithDebInfo RUNTIME DESTINATION "bin${Scol_RELWDBG_PATH}${SUFFIX}" CONFIGURATIONS RelWithDebInfo LIBRARY DESTINATION "lib${Scol_LIB_RELWDBG_PATH}${SUFFIX}" CONFIGURATIONS RelWithDebInfo ARCHIVE DESTINATION "lib${Scol_LIB_RELWDBG_PATH}${SUFFIX}" CONFIGURATIONS RelWithDebInfo FRAMEWORK DESTINATION "bin${Scol_RELWDBG_PATH}${SUFFIX}" CONFIGURATIONS RelWithDebInfo ) install(TARGETS ${TARGETNAME} BUNDLE DESTINATION "bin${Scol_MINSIZE_PATH}${SUFFIX}" CONFIGURATIONS MinSizeRel RUNTIME DESTINATION "bin${Scol_MINSIZE_PATH}${SUFFIX}" CONFIGURATIONS MinSizeRel LIBRARY DESTINATION "lib${Scol_LIB_MINSIZE_PATH}${SUFFIX}" CONFIGURATIONS MinSizeRel ARCHIVE DESTINATION "lib${Scol_LIB_MINSIZE_PATH}${SUFFIX}" CONFIGURATIONS MinSizeRel FRAMEWORK DESTINATION "bin${Scol_MINSIZE_PATH}${SUFFIX}" CONFIGURATIONS MinSizeRel ) install(TARGETS ${TARGETNAME} BUNDLE DESTINATION "bin${Scol_DEBUG_PATH}${SUFFIX}" CONFIGURATIONS Debug RUNTIME DESTINATION "bin${Scol_DEBUG_PATH}${SUFFIX}" CONFIGURATIONS Debug LIBRARY DESTINATION "lib${Scol_LIB_DEBUG_PATH}${SUFFIX}" CONFIGURATIONS Debug ARCHIVE DESTINATION "lib${Scol_LIB_DEBUG_PATH}${SUFFIX}" CONFIGURATIONS Debug FRAMEWORK DESTINATION "bin${Scol_DEBUG_PATH}${SUFFIX}" CONFIGURATIONS Debug ) endfunction(scol_install_target) # setup common target settings function(scol_config_common TARGETNAME) set_target_properties(${TARGETNAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${Scol_BINARY_DIR}/lib LIBRARY_OUTPUT_DIRECTORY ${Scol_BINARY_DIR}/lib RUNTIME_OUTPUT_DIRECTORY ${Scol_BINARY_DIR}/bin ) scol_create_vcproj_userfile(${TARGETNAME}) endfunction(scol_config_common) # setup library build function(scol_config_lib LIBNAME) scol_config_common(${LIBNAME}) scol_install_target(${LIBNAME} "") # install debug pdb files if (Scol_INSTALL_PDB) install(FILES ${Scol_BINARY_DIR}/bin${Scol_DEBUG_PATH}/${LIBNAME}.pdb DESTINATION bin${Scol_DEBUG_PATH} CONFIGURATIONS Debug ) install(FILES ${Scol_BINARY_DIR}/bin${Scol_RELWDBG_PATH}/${LIBNAME}.pdb DESTINATION bin${Scol_RELWDBG_PATH} CONFIGURATIONS RelWithDebInfo ) endif () endfunction(scol_config_lib) function(scol_config_component LIBNAME) scol_config_common(${LIBNAME}) scol_install_target(${LIBNAME} "") if (Scol_INSTALL_PDB) # install debug pdb files install(FILES ${Scol_BINARY_DIR}/lib${Scol_DEBUG_PATH}/${LIBNAME}.pdb DESTINATION bin${Scol_DEBUG_PATH} CONFIGURATIONS Debug ) install(FILES ${Scol_BINARY_DIR}/lib${Scol_RELWDBG_PATH}/${LIBNAME}.pdb DESTINATION bin${Scol_RELWDBG_PATH} CONFIGURATIONS RelWithDebInfo ) endif () endfunction(scol_config_component) # setup plugin build function(scol_config_plugin PLUGINNAME) scol_config_common(${PLUGINNAME}) scol_install_target(${PLUGINNAME} ${Scol_PLUGIN_PATH}) if (Scol_INSTALL_PDB) # install debug pdb files install(FILES ${Scol_BINARY_DIR}/bin${Scol_DEBUG_PATH}/${PLUGINNAME}.pdb DESTINATION bin${Scol_DEBUG_PATH} CONFIGURATIONS Debug ) install(FILES ${Scol_BINARY_DIR}/bin${Scol_RELWDBG_PATH}/${PLUGINNAME}.pdb DESTINATION bin${Scol_RELWDBG_PATH} CONFIGURATIONS RelWithDebInfo ) endif () endfunction(scol_config_plugin)