CMakeLists.txt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. project(Cxx)
  2. enable_language(CXX)
  3. add_library(cxx_lib ../empty.cxx)
  4. add_executable(cxx_exe ../empty.cxx)
  5. target_link_libraries(cxx_exe PRIVATE cxx_lib)
  6. set_property(TARGET cxx_exe PROPERTY FOLDER bin)
  7. add_library(cxx_shared_lib SHARED ../empty.cxx)
  8. add_executable(cxx_shared_exe ../empty.cxx)
  9. target_link_libraries(cxx_shared_exe PRIVATE cxx_shared_lib)
  10. add_library(cxx_static_lib STATIC ../empty.cxx)
  11. add_executable(cxx_static_exe ../empty.cxx)
  12. target_link_libraries(cxx_static_exe PRIVATE cxx_static_lib)
  13. target_compile_options(cxx_exe PUBLIC TargetCompileOptions)
  14. target_link_options(cxx_exe PUBLIC TargetLinkOptions)
  15. target_link_directories(cxx_exe PUBLIC "$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/TargetLinkDir>")
  16. target_precompile_headers(cxx_exe PUBLIC ../empty.h)
  17. add_executable(cxx_standard_exe ../empty.cxx)
  18. set_property(TARGET cxx_standard_exe PROPERTY CXX_STANDARD 17)
  19. add_executable(cxx_standard_compile_feature_exe ../empty.cxx)
  20. set_property(TARGET cxx_standard_compile_feature_exe PROPERTY CXX_STANDARD 98)
  21. if(CMAKE_CXX_STANDARD_DEFAULT AND DEFINED CMAKE_CXX11_STANDARD_COMPILE_OPTION)
  22. target_compile_features(cxx_standard_compile_feature_exe PRIVATE cxx_std_11)
  23. target_compile_features(cxx_standard_compile_feature_exe PRIVATE cxx_decltype)
  24. file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cxx_std_11.txt" "")
  25. endif()
  26. set(_rdeps)
  27. if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Windows|Darwin)$")
  28. set(_rdeps RUNTIME_DEPENDENCIES)
  29. endif()
  30. install(TARGETS cxx_exe ${_rdeps}
  31. DESTINATION lib
  32. FRAMEWORK DESTINATION fw
  33. )
  34. if(_rdeps)
  35. install(RUNTIME_DEPENDENCY_SET deps
  36. DESTINATION lib
  37. FRAMEWORK DESTINATION fw
  38. )
  39. endif()