Windows: version libs, install pdb files for MSVC builds
Change-Id: I2964e809de20a9cb94d3039c95a1a623fdfd4d40
This commit is contained in:
@@ -24,9 +24,11 @@ set(CMAKE_AUTOMOC ON)
|
||||
|
||||
set(ECM_MODULE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake/ECM/modules/")
|
||||
set(PYTHON_MODULE_DIR "${CMAKE_CURRENT_LIST_DIR}/cmake/Python")
|
||||
set(CMAKE_MODULE_PATH ${ECM_MODULE_DIR} ${PYTHON_MODULE_DIR})
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake" ${ECM_MODULE_DIR} ${PYTHON_MODULE_DIR})
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||
|
||||
# setup default install locations
|
||||
include(InstallLocation)
|
||||
|
||||
macro(set_compiler_flags targetName)
|
||||
if (OPTION_DEVELOPER_MODE)
|
||||
|
||||
35
cmake/InstallLocation.cmake
Normal file
35
cmake/InstallLocation.cmake
Normal file
@@ -0,0 +1,35 @@
|
||||
# Some default installation locations. These should be global, with any project
|
||||
# specific locations added to the end. These paths are all relative to the
|
||||
# install prefix.
|
||||
#
|
||||
# These paths attempt to adhere to the FHS, and are similar to those provided
|
||||
# by autotools and used in many Linux distributions.
|
||||
|
||||
# Use GNU install directories
|
||||
include(GNUInstallDirs)
|
||||
|
||||
if(NOT INSTALL_RUNTIME_DIR)
|
||||
set(INSTALL_RUNTIME_DIR ${CMAKE_INSTALL_BINDIR})
|
||||
endif()
|
||||
if(NOT INSTALL_LIBRARY_DIR)
|
||||
set(INSTALL_LIBRARY_DIR ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
if(NOT INSTALL_ARCHIVE_DIR)
|
||||
set(INSTALL_ARCHIVE_DIR ${CMAKE_INSTALL_LIBDIR})
|
||||
endif()
|
||||
if(NOT INSTALL_INCLUDE_DIR)
|
||||
set(INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
endif()
|
||||
if(NOT INSTALL_DATADIR)
|
||||
set(INSTALL_DATADIR ${CMAKE_INSTALL_DATADIR})
|
||||
endif()
|
||||
if(NOT INSTALL_DOC_DIR)
|
||||
set(INSTALL_DOC_DIR ${CMAKE_INSTALL_DOCDIR})
|
||||
endif()
|
||||
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
if (APPLE)
|
||||
set(CMAKE_MACOSX_RPATH ON)
|
||||
else()
|
||||
set(CMAKE_INSTALL_RPATH "$ORIGIN/../${INSTALL_LIBRARY_DIR}")
|
||||
endif()
|
||||
@@ -153,11 +153,27 @@ if (NOT WIN32 AND NOT APPLE)
|
||||
target_link_libraries(kddockwidgets PUBLIC Qt5::X11Extras)
|
||||
endif()
|
||||
|
||||
# append d to debug libraries for windows builds
|
||||
if(WIN32)
|
||||
set(postfix ${${PROJECT_NAME}_VERSION_MAJOR})
|
||||
string(TOUPPER ${CMAKE_BUILD_TYPE} UPPER_BUILD_TYPE)
|
||||
if(${UPPER_BUILD_TYPE} MATCHES "^DEBUG")
|
||||
string(CONCAT postfix ${postfix} "d")
|
||||
set_target_properties(kddockwidgets PROPERTIES DEBUG_POSTFIX ${postfix})
|
||||
else()
|
||||
set_target_properties(kddockwidgets PROPERTIES ${UPPER_BUILD_TYPE}_POSTFIX ${postfix})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install (TARGETS kddockwidgets
|
||||
EXPORT kddockwidgetsTargets
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib)
|
||||
RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR}
|
||||
LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}
|
||||
ARCHIVE DESTINATION ${INSTALL_ARCHIVE_DIR}
|
||||
)
|
||||
if(MSVC)
|
||||
install(FILES "$<TARGET_PDB_FILE_DIR:kddockwidgets>/$<TARGET_PDB_FILE_NAME:kddockwidgets>" DESTINATION ${INSTALL_LIBRARY_DIR} CONFIGURATIONS Debug RelWithDebInfo)
|
||||
endif()
|
||||
install (FILES ${DOCKS_INSTALLABLE_INCLUDES} DESTINATION include/kddockwidgets)
|
||||
install (FILES ${DOCKS_INSTALLABLE_PRIVATE_INCLUDES} DESTINATION include/kddockwidgets/private)
|
||||
install (FILES private/multisplitter/Item_p.h DESTINATION include/kddockwidgets/multisplitter)
|
||||
|
||||
@@ -74,9 +74,24 @@ target_include_directories(kddockwidgets_multisplitter
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
# append d to debug libraries for windows builds
|
||||
if(WIN32)
|
||||
set(postfix ${${PROJECT_NAME}_VERSION_MAJOR})
|
||||
string(TOUPPER ${CMAKE_BUILD_TYPE} UPPER_BUILD_TYPE)
|
||||
if(${UPPER_BUILD_TYPE} MATCHES "^DEBUG")
|
||||
string(CONCAT postfix ${postfix} "d")
|
||||
set_target_properties(kddockwidgets_multisplitter PROPERTIES DEBUG_POSTFIX ${postfix})
|
||||
else()
|
||||
set_target_properties(kddockwidgets_multisplitter PROPERTIES ${UPPER_BUILD_TYPE}_POSTFIX ${postfix})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install (TARGETS kddockwidgets_multisplitter
|
||||
EXPORT kddockwidgetsTargets
|
||||
RUNTIME DESTINATION bin
|
||||
LIBRARY DESTINATION lib
|
||||
ARCHIVE DESTINATION lib)
|
||||
RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR}
|
||||
LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR}
|
||||
ARCHIVE DESTINATION ${INSTALL_ARCHIVE_DIR}
|
||||
)
|
||||
if(MSVC)
|
||||
install(FILES "$<TARGET_PDB_FILE_DIR:kddockwidgets_multisplitter>/$<TARGET_PDB_FILE_NAME:kddockwidgets_multisplitter>" DESTINATION ${INSTALL_LIBRARY_DIR} CONFIGURATIONS Debug RelWithDebInfo)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user