Merge topic 'test-SelectLibraryConfigurations'
a22f4fa
SelectLibraryConfigurations: fix for release and debug libs being the same5052fbc
SelectLibraryConfigurations: add testcase
This commit is contained in:
commit
23a257628b
|
@ -48,6 +48,15 @@ macro( select_library_configurations basename )
|
||||||
# if only the debug version was found, set the release value to be the
|
# if only the debug version was found, set the release value to be the
|
||||||
# debug value.
|
# debug value.
|
||||||
_set_library_name( ${basename} DEBUG RELEASE )
|
_set_library_name( ${basename} DEBUG RELEASE )
|
||||||
|
|
||||||
|
# Set a default case, which will come into effect if
|
||||||
|
# -no build type is set and the generator only supports one build type
|
||||||
|
# at a time (i.e. CMAKE_CONFIGURATION_TYPES is false)
|
||||||
|
# -${basename}_LIBRARY_DEBUG and ${basename}_LIBRARY_RELEASE are the same
|
||||||
|
# -${basename}_LIBRARY_DEBUG and ${basename}_LIBRARY_RELEASE are both empty
|
||||||
|
set( ${basename}_LIBRARY ${${basename}_LIBRARY_RELEASE} )
|
||||||
|
set( ${basename}_LIBRARIES ${${basename}_LIBRARY_RELEASE} )
|
||||||
|
|
||||||
if( ${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE AND
|
if( ${basename}_LIBRARY_DEBUG AND ${basename}_LIBRARY_RELEASE AND
|
||||||
NOT ${basename}_LIBRARY_DEBUG STREQUAL ${basename}_LIBRARY_RELEASE )
|
NOT ${basename}_LIBRARY_DEBUG STREQUAL ${basename}_LIBRARY_RELEASE )
|
||||||
# if the generator supports configuration types or CMAKE_BUILD_TYPE
|
# if the generator supports configuration types or CMAKE_BUILD_TYPE
|
||||||
|
@ -61,11 +70,6 @@ macro( select_library_configurations basename )
|
||||||
list( APPEND ${basename}_LIBRARY debug "${_libname}" )
|
list( APPEND ${basename}_LIBRARY debug "${_libname}" )
|
||||||
endforeach()
|
endforeach()
|
||||||
set( ${basename}_LIBRARIES "${${basename}_LIBRARY}" )
|
set( ${basename}_LIBRARIES "${${basename}_LIBRARY}" )
|
||||||
else()
|
|
||||||
# If there are no configuration types or build type, just use
|
|
||||||
# the release version
|
|
||||||
set( ${basename}_LIBRARY ${${basename}_LIBRARY_RELEASE} )
|
|
||||||
set( ${basename}_LIBRARIES ${${basename}_LIBRARY_RELEASE} )
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,8 @@ endif()
|
||||||
|
|
||||||
add_CMakeOnly_test(AllFindModules)
|
add_CMakeOnly_test(AllFindModules)
|
||||||
|
|
||||||
|
add_CMakeOnly_test(SelectLibraryConfigurations)
|
||||||
|
|
||||||
add_CMakeOnly_test(TargetScope)
|
add_CMakeOnly_test(TargetScope)
|
||||||
|
|
||||||
add_CMakeOnly_test(find_library)
|
add_CMakeOnly_test(find_library)
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
|
||||||
|
project(SelectLibraryConfigurations NONE)
|
||||||
|
|
||||||
|
include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
|
||||||
|
|
||||||
|
macro(check_slc basename expect)
|
||||||
|
message(STATUS "checking select_library_configurations(${basename})")
|
||||||
|
select_library_configurations(${basename})
|
||||||
|
if (NOT ${basename}_LIBRARY STREQUAL "${expect}")
|
||||||
|
message(SEND_ERROR "select_library_configurations(${basename}) returned '${${basename}_LIBRARY}' but '${expect}' was expected")
|
||||||
|
endif ()
|
||||||
|
if (NOT ${basename}_LIBRARY STREQUAL "${${basename}_LIBRARIES}")
|
||||||
|
message(SEND_ERROR "select_library_configurations(${basename}) LIBRARY: '${${basename}_LIBRARY}' LIBRARIES: '${${basename}_LIBRARIES}'")
|
||||||
|
endif ()
|
||||||
|
endmacro(check_slc)
|
||||||
|
|
||||||
|
if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
|
||||||
|
set(NOTYPE_RELONLY_LIBRARY_RELEASE "opt")
|
||||||
|
check_slc(NOTYPE_RELONLY "opt")
|
||||||
|
|
||||||
|
set(NOTYPE_DBGONLY_LIBRARY_DEBUG "dbg")
|
||||||
|
check_slc(NOTYPE_DBGONLY "dbg")
|
||||||
|
|
||||||
|
set(NOTYPE_RELDBG_LIBRARY_RELEASE "opt")
|
||||||
|
set(NOTYPE_RELDBG_LIBRARY_DEBUG "dbg")
|
||||||
|
check_slc(NOTYPE_RELDBG "opt")
|
||||||
|
|
||||||
|
set(CMAKE_BUILD_TYPE Debug)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
check_slc(empty "")
|
||||||
|
|
||||||
|
set(OPTONLY_LIBRARY_RELEASE "opt")
|
||||||
|
check_slc(OPTONLY "opt")
|
||||||
|
|
||||||
|
set(DBGONLY_LIBRARY_RELEASE "dbg")
|
||||||
|
check_slc(DBGONLY "dbg")
|
||||||
|
|
||||||
|
set(SAME_LIBRARY_RELEASE "same")
|
||||||
|
set(SAME_LIBRARY_DEBUG "same")
|
||||||
|
check_slc(SAME "same")
|
||||||
|
|
||||||
|
set(OPTONLYLIST_LIBRARY_RELEASE "opt1;opt2")
|
||||||
|
check_slc(OPTONLYLIST "opt1;opt2")
|
||||||
|
|
||||||
|
set(DBGONLYLIST_LIBRARY_RELEASE "dbg1;dbg2")
|
||||||
|
check_slc(DBGONLYLIST "dbg1;dbg2")
|
||||||
|
|
||||||
|
set(OPT1DBG1_LIBRARY_RELEASE "opt")
|
||||||
|
set(OPT1DBG1_LIBRARY_DEBUG "dbg")
|
||||||
|
check_slc(OPT1DBG1 "optimized;opt;debug;dbg")
|
||||||
|
|
||||||
|
set(OPT1DBG2_LIBRARY_RELEASE "opt")
|
||||||
|
set(OPT1DBG2_LIBRARY_DEBUG "dbg1;dbg2")
|
||||||
|
check_slc(OPT1DBG2 "optimized;opt;debug;dbg1;debug;dbg2")
|
||||||
|
|
||||||
|
set(OPT2DBG1_LIBRARY_RELEASE "opt1;opt2")
|
||||||
|
set(OPT2DBG1_LIBRARY_DEBUG "dbg")
|
||||||
|
check_slc(OPT2DBG1 "optimized;opt1;optimized;opt2;debug;dbg")
|
||||||
|
|
||||||
|
set(OPT2DBG2_LIBRARY_RELEASE "opt1;opt2")
|
||||||
|
set(OPT2DBG2_LIBRARY_DEBUG "dbg1;dbg2")
|
||||||
|
check_slc(OPT2DBG2 "optimized;opt1;optimized;opt2;debug;dbg1;debug;dbg2")
|
Loading…
Reference in New Issue