export-build-database-setup.cmake 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. set(CMAKE_EXPERIMENTAL_EXPORT_BUILD_DATABASE "73194a1d-c0b5-41b9-9190-a4512925e192")
  2. get_property(is_multiconfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
  3. if (is_multiconfig)
  4. set(CMAKE_CONFIGURATION_TYPES "Debug" "Release")
  5. endif ()
  6. set(CMAKE_EXPORT_BUILD_DATABASE 1)
  7. # Mock up depfile flags to keep things consistent; we don't need accurate
  8. # dependency tracking for this test case anyways.
  9. set(CMAKE_CXX_DEPFILE_FORMAT gcc)
  10. set(CMAKE_DEPFILE_FLAGS_CXX "-Ddepflag=\\\"<DEP_FILE>\\\"")
  11. unset(CMAKE_CXX_DEPFILE_EXTENSION_REPLACE)
  12. # Disable MSVC flag injection from CMake abstractions.
  13. set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "")
  14. set(CMAKE_MSVC_RUNTIME_LIBRARY "")
  15. if (CMAKE_CXX_MODULE_BMI_ONLY_FLAG MATCHES "ifcOutput")
  16. # Make a single flag for BMI-only to make the JSON expectations simpler.
  17. set(CMAKE_CXX_MODULE_BMI_ONLY_FLAG
  18. "-ifcOnly;-ifcOutput<OBJECT>")
  19. endif ()
  20. # Disable extensions to keep flag selection simpler.
  21. set(CMAKE_CXX_EXTENSIONS 0)
  22. if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC")
  23. set(output_flag "-Fo")
  24. else ()
  25. set(output_flag "-o")
  26. endif ()
  27. set(CMAKE_CXX_COMPILE_OBJECT
  28. "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> ${output_flag}<OBJECT> -c <SOURCE>")
  29. set(CMAKE_CXX_FLAGS "-Dfrom_cmake_cxx_flags")
  30. set(CMAKE_CXX_FLAGS_DEBUG "-Dfrom_cmake_cxx_debug_flags")
  31. set(CMAKE_CXX_FLAGS_RELEASE "-Dfrom_cmake_cxx_release_flags")