export-build-database-setup.cmake 1.5 KB

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