Skip to content

Commit ea55898

Browse files
authored
Merge pull request #484 from MRPT/remove-dbg-libs-linux
Use -dbg postfix for libs only in MSVC Closes #484
2 parents 2121a9e + 57bc13a commit ea55898

File tree

4 files changed

+18
-23
lines changed

4 files changed

+18
-23
lines changed

CMakeLists.txt

+8-13
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,13 @@ include(cmakemodules/script_detect_clang.cmake REQUIRED) # Detect clang comp
8787

8888
# ------------------------------------------
8989
# We want libraries to be named "libXXX"
90-
# and "libXXX-dbg" in all compilers:
90+
# in all compilers, and and "libXXX-dbg" in MSVC
9191
# ------------------------------------------
92-
set(CMAKE_DEBUG_POSTFIX "-dbg")
9392
IF(MSVC)
9493
set(MRPT_LIB_PREFIX "lib") # Libs are: "libXXX"
94+
set(CMAKE_DEBUG_POSTFIX "-dbg")
95+
ELSE()
96+
set(CMAKE_DEBUG_POSTFIX "")
9597
ENDIF()
9698

9799
# In case of Makefiles if the user does not setup CMAKE_BUILD_TYPE, assume it's Release:
@@ -440,12 +442,12 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
440442
# The -Wno-long-long is required in 64bit systems when including sytem headers.
441443
# The -Wno-variadic-macros was needed for Eigen3, StdVector.h
442444
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CONFIGURE_CFLAGS} -Wall -Wno-long-long -Wno-variadic-macros")
443-
445+
444446
# Workaround: Eigen <3.3 produces *tons* of warnings in GCC >=6. See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
445447
IF (NOT CMAKE_MRPT_GCC_VERSION LESS 60 AND "${MRPT_EIGEN_VERSION}" VERSION_LESS "3.3")
446448
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-ignored-attributes")
447449
ENDIF()
448-
450+
449451
IF(NOT APPLE)
450452
# This causes the option "-Wnorite-strings" to be set on gcc-4.9 on OS X
451453
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-write-strings")
@@ -635,14 +637,7 @@ SET( MEX_EXECUTABLE_OUTPUT_PATH ${MRPT_BINARY_DIR}/mex/test CACHE PATH "Output d
635637
IF(CMAKE_MRPT_USE_DEB_POSTFIXS)
636638
# Values when building a Debian package ---------------
637639
MESSAGE(STATUS "** mrpt cmake: Using Debian post-fix for install directories **")
638-
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
639-
# Debug packages
640-
SET(libmrpt_dev_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/libmrpt-dbg/usr/")
641-
ELSE()
642-
# Normal packages
643-
SET(libmrpt_dev_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/libmrpt-dev/usr/")
644-
ENDIF()
645-
640+
SET(libmrpt_dev_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/libmrpt-dev/usr/")
646641
SET(mrpt_apps_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/mrpt-apps/usr/")
647642
SET(mrpt_doc_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/mrpt-doc/usr/")
648643
SET(mrpt_common_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/mrpt-common/usr/")
@@ -668,7 +663,7 @@ STRING(REGEX REPLACE "/STACK:[0-9]+" "/STACK:1000000" CMAKE_SHARED_LINKER_FLAGS
668663
# dependencies stored in "mrpt-${name}_LIB_DEPS"
669664
SET(ALL_MRPT_LIBS "" CACHE INTERNAL "") # This emulates global vars
670665

671-
IF (NOT CMAKE_VERSION VERSION_LESS "2.8.12")
666+
IF (NOT MSVC AND NOT CMAKE_VERSION VERSION_LESS "2.8.12")
672667
include(cmakemodules/cotire.cmake REQUIRED) # COmpiler TIme REducer helper for PCH
673668
set_directory_properties(PROPERTIES COTIRE_ADD_UNITY_BUILD FALSE) # Disable unity targets
674669
ENDIF()

cmakemodules/DeclareAppDependencies.cmake

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ macro(DeclareAppDependencies name)
4141
TARGET_LINK_LIBRARIES(${name} ${_DEP}${MRPT_LINKER_LIBS_POSTFIX})
4242
LIST(APPEND AUX_EXTRA_LINK_LIBS
4343
optimized ${MRPT_LIB_PREFIX}${DEP}${MRPT_DLL_VERSION_POSTFIX}
44-
debug ${MRPT_LIB_PREFIX}${DEP}${MRPT_DLL_VERSION_POSTFIX}-dbg) #Old: ${DEP}${MRPT_LINKER_LIBS_POSTFIX})
44+
debug ${MRPT_LIB_PREFIX}${DEP}${MRPT_DLL_VERSION_POSTFIX}${CMAKE_DEBUG_POSTFIX})
4545
endif (NOT _LIB_HDRONLY)
46-
46+
4747
# Include:
4848
STRING(REGEX REPLACE "mrpt-(.*)" "\\1" DEP_MRPT_NAME ${_DEP})
4949
IF(NOT "${DEP_MRPT_NAME}" STREQUAL "")

cmakemodules/DeclareMRPTLib.cmake

+3-3
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ macro(internal_define_mrpt_lib name headers_only is_metalib)
187187
#MESSAGE(STATUS "adding link dep: mrpt-${name} -> ${DEP}")
188188
LIST(APPEND AUX_EXTRA_LINK_LIBS
189189
optimized ${MRPT_LIB_PREFIX}${DEP}${MRPT_DLL_VERSION_POSTFIX}
190-
debug ${MRPT_LIB_PREFIX}${DEP}${MRPT_DLL_VERSION_POSTFIX}-dbg) #Old: ${DEP}${MRPT_LINKER_LIBS_POSTFIX})
190+
debug ${MRPT_LIB_PREFIX}${DEP}${MRPT_DLL_VERSION_POSTFIX}${CMAKE_DEBUG_POSTFIX})
191191
ENDIF(NOT _LIB_HDRONLY)
192192
ENDIF(NOT ${headers_only})
193193

@@ -239,7 +239,7 @@ macro(internal_define_mrpt_lib name headers_only is_metalib)
239239
SET_TARGET_PROPERTIES(mrpt-${name} PROPERTIES
240240
OUTPUT_NAME ${MRPT_LIB_PREFIX}mrpt-${name}${MRPT_DLL_VERSION_POSTFIX}
241241
COMPILE_PDB_NAME "${MRPT_LIB_PREFIX}mrpt-${name}${MRPT_DLL_VERSION_POSTFIX}"
242-
COMPILE_PDB_NAME_DEBUG "${MRPT_LIB_PREFIX}mrpt-${name}${MRPT_DLL_VERSION_POSTFIX}-dbg"
242+
COMPILE_PDB_NAME_DEBUG "${MRPT_LIB_PREFIX}mrpt-${name}${MRPT_DLL_VERSION_POSTFIX}${CMAKE_DEBUG_POSTFIX}"
243243
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/"
244244
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin/"
245245
VERSION "${CMAKE_MRPT_VERSION_NUMBER_MAJOR}.${CMAKE_MRPT_VERSION_NUMBER_MINOR}.${CMAKE_MRPT_VERSION_NUMBER_PATCH}"
@@ -328,7 +328,7 @@ macro(internal_define_mrpt_lib name headers_only is_metalib)
328328
# Collect .pdb debug files for optional installation:
329329
IF (MSVC)
330330
SET(PDB_FILE
331-
"${CMAKE_BINARY_DIR}/bin/Debug/${MRPT_LIB_PREFIX}mrpt-${name}${MRPT_DLL_VERSION_POSTFIX}-dbg.pdb")
331+
"${CMAKE_BINARY_DIR}/bin/Debug/${MRPT_LIB_PREFIX}mrpt-${name}${MRPT_DLL_VERSION_POSTFIX}${CMAKE_DEBUG_POSTFIX}.pdb")
332332
IF (EXISTS "${PDB_FILE}")
333333
INSTALL(FILES ${PDB_FILE} DESTINATION bin COMPONENT LibrariesDebugInfoPDB)
334334
ENDIF ()

parse-files/MRPTConfig.cmake.in

+5-5
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@
3030
# - MRPT_VERSION_{MAJOR,MINOR,PATCH}: 3 variables for the version parts
3131
#
3232
# Optional input variables:
33-
# - MRPT_DONT_USE_DBG_LIBS: If defined at input, before the
34-
# "FIND_PACKAGE(MRPT...)", and set to "1", the release libraries
35-
# will be used even for linking against "Debug" CMake builds.
33+
# - (Windows only) MRPT_DONT_USE_DBG_LIBS: If defined at input, before the
34+
# "FIND_PACKAGE(MRPT...)", and set to "1", will not search for `-dbg`
35+
# libraries when linking in "Debug" CMake builds.
3636
#
3737
# =========================================================================
3838

@@ -180,10 +180,10 @@ FOREACH(MRPTLIB ${MRPT_FIND_COMPONENTS})
180180
# If the required lib is header-only, don't add to the list of libs to link!
181181
get_property(_LIB_HDRONLY GLOBAL PROPERTY "mrpt-${MRPTLIB}_LIB_IS_HEADERS_ONLY")
182182
IF(NOT _LIB_HDRONLY)
183-
IF(NOT MRPT_DONT_USE_DBG_LIBS)
183+
IF(WIN32 AND NOT MRPT_DONT_USE_DBG_LIBS)
184184
LIST(APPEND MRPT_LIBRARIES
185185
optimized @MRPT_LIB_PREFIX@mrpt-${MRPTLIB}@MRPT_DLL_VERSION_POSTFIX@
186-
debug @MRPT_LIB_PREFIX@mrpt-${MRPTLIB}@MRPT_DLL_VERSION_POSTFIX@-dbg)
186+
debug @MRPT_LIB_PREFIX@mrpt-${MRPTLIB}@MRPT_DLL_VERSION_POSTFIX@@CMAKE_DEBUG_POSTFIX@)
187187
ELSE()
188188
LIST(APPEND MRPT_LIBRARIES @MRPT_LIB_PREFIX@mrpt-${MRPTLIB}@MRPT_DLL_VERSION_POSTFIX@)
189189
ENDIF()

0 commit comments

Comments
 (0)