CMakeLists.txt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. cmake_minimum_required(VERSION 3.9)
  2. project(SelectLibraryConfigurations NONE)
  3. include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
  4. macro(check_slc basename expect)
  5. message(STATUS "checking select_library_configurations(${basename})")
  6. select_library_configurations(${basename})
  7. if (NOT ${basename}_LIBRARY STREQUAL "${expect}")
  8. message(SEND_ERROR "select_library_configurations(${basename}) returned '${${basename}_LIBRARY}' but '${expect}' was expected")
  9. endif ()
  10. if (NOT ${basename}_LIBRARY STREQUAL "${${basename}_LIBRARIES}")
  11. message(SEND_ERROR "select_library_configurations(${basename}) LIBRARY: '${${basename}_LIBRARY}' LIBRARIES: '${${basename}_LIBRARIES}'")
  12. endif ()
  13. endmacro(check_slc)
  14. get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
  15. if (NOT _isMultiConfig AND NOT CMAKE_BUILD_TYPE)
  16. set(NOTYPE_RELONLY_LIBRARY_RELEASE "opt")
  17. check_slc(NOTYPE_RELONLY "opt")
  18. set(NOTYPE_DBGONLY_LIBRARY_DEBUG "dbg")
  19. check_slc(NOTYPE_DBGONLY "dbg")
  20. set(NOTYPE_RELDBG_LIBRARY_RELEASE "opt")
  21. set(NOTYPE_RELDBG_LIBRARY_DEBUG "dbg")
  22. check_slc(NOTYPE_RELDBG "opt")
  23. set(CMAKE_BUILD_TYPE Debug)
  24. endif ()
  25. check_slc(empty "empty_LIBRARY-NOTFOUND")
  26. set(OPTONLY_LIBRARY_RELEASE "opt")
  27. check_slc(OPTONLY "opt")
  28. set(DBGONLY_LIBRARY_RELEASE "dbg")
  29. check_slc(DBGONLY "dbg")
  30. set(SAME_LIBRARY_RELEASE "same")
  31. set(SAME_LIBRARY_DEBUG "same")
  32. check_slc(SAME "same")
  33. set(OPTONLYLIST_LIBRARY_RELEASE "opt1;opt2")
  34. check_slc(OPTONLYLIST "opt1;opt2")
  35. set(DBGONLYLIST_LIBRARY_RELEASE "dbg1;dbg2")
  36. check_slc(DBGONLYLIST "dbg1;dbg2")
  37. set(OPT1DBG1_LIBRARY_RELEASE "opt")
  38. set(OPT1DBG1_LIBRARY_DEBUG "dbg")
  39. check_slc(OPT1DBG1 "optimized;opt;debug;dbg")
  40. set(OPT1DBG2_LIBRARY_RELEASE "opt")
  41. set(OPT1DBG2_LIBRARY_DEBUG "dbg1;dbg2")
  42. check_slc(OPT1DBG2 "optimized;opt;debug;dbg1;debug;dbg2")
  43. set(OPT2DBG1_LIBRARY_RELEASE "opt1;opt2")
  44. set(OPT2DBG1_LIBRARY_DEBUG "dbg")
  45. check_slc(OPT2DBG1 "optimized;opt1;optimized;opt2;debug;dbg")
  46. set(OPT2DBG2_LIBRARY_RELEASE "opt1;opt2")
  47. set(OPT2DBG2_LIBRARY_DEBUG "dbg1;dbg2")
  48. check_slc(OPT2DBG2 "optimized;opt1;optimized;opt2;debug;dbg1;debug;dbg2")