CMakeLists.txt 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. cmake_minimum_required(VERSION 2.8)
  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. if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
  15. set(NOTYPE_RELONLY_LIBRARY_RELEASE "opt")
  16. check_slc(NOTYPE_RELONLY "opt")
  17. set(NOTYPE_DBGONLY_LIBRARY_DEBUG "dbg")
  18. check_slc(NOTYPE_DBGONLY "dbg")
  19. set(NOTYPE_RELDBG_LIBRARY_RELEASE "opt")
  20. set(NOTYPE_RELDBG_LIBRARY_DEBUG "dbg")
  21. check_slc(NOTYPE_RELDBG "opt")
  22. set(CMAKE_BUILD_TYPE Debug)
  23. endif ()
  24. check_slc(empty "")
  25. set(OPTONLY_LIBRARY_RELEASE "opt")
  26. check_slc(OPTONLY "opt")
  27. set(DBGONLY_LIBRARY_RELEASE "dbg")
  28. check_slc(DBGONLY "dbg")
  29. set(SAME_LIBRARY_RELEASE "same")
  30. set(SAME_LIBRARY_DEBUG "same")
  31. check_slc(SAME "same")
  32. set(OPTONLYLIST_LIBRARY_RELEASE "opt1;opt2")
  33. check_slc(OPTONLYLIST "opt1;opt2")
  34. set(DBGONLYLIST_LIBRARY_RELEASE "dbg1;dbg2")
  35. check_slc(DBGONLYLIST "dbg1;dbg2")
  36. set(OPT1DBG1_LIBRARY_RELEASE "opt")
  37. set(OPT1DBG1_LIBRARY_DEBUG "dbg")
  38. check_slc(OPT1DBG1 "optimized;opt;debug;dbg")
  39. set(OPT1DBG2_LIBRARY_RELEASE "opt")
  40. set(OPT1DBG2_LIBRARY_DEBUG "dbg1;dbg2")
  41. check_slc(OPT1DBG2 "optimized;opt;debug;dbg1;debug;dbg2")
  42. set(OPT2DBG1_LIBRARY_RELEASE "opt1;opt2")
  43. set(OPT2DBG1_LIBRARY_DEBUG "dbg")
  44. check_slc(OPT2DBG1 "optimized;opt1;optimized;opt2;debug;dbg")
  45. set(OPT2DBG2_LIBRARY_RELEASE "opt1;opt2")
  46. set(OPT2DBG2_LIBRARY_DEBUG "dbg1;dbg2")
  47. check_slc(OPT2DBG2 "optimized;opt1;optimized;opt2;debug;dbg1;debug;dbg2")