Changeset View
Changeset View
Standalone View
Standalone View
CMakeLists.txt
| Show First 20 Lines • Show All 1,656 Lines • ▼ Show 20 Lines | |||||
| if(UNIX AND NOT APPLE) | if(UNIX AND NOT APPLE) | ||||
| if(NOT WITH_CXX11_ABI) | if(NOT WITH_CXX11_ABI) | ||||
| set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") | set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") | ||||
| endif() | endif() | ||||
| endif() | endif() | ||||
| if(WITH_COMPILER_SHORT_FILE_MACRO) | if(WITH_COMPILER_SHORT_FILE_MACRO) | ||||
| # Use '-fmacro-prefix-map' for Clang and GCC (MSVC doesn't support this). | # Use '-fmacro-prefix-map' for Clang and GCC (MSVC doesn't support this). | ||||
| if((CMAKE_COMPILER_IS_GNUCC AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 8.4) OR | ADD_CHECK_C_COMPILER_FLAG(C_PREFIX_MAP_FLAGS C_MACRO_PREFIX_MAP -fmacro-prefix-map=foo=bar) | ||||
| (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0) OR | ADD_CHECK_CXX_COMPILER_FLAG(CXX_PREFIX_MAP_FLAGS CXX_MACRO_PREFIX_MAP -fmacro-prefix-map=foo=bar) | ||||
| (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12.0) | if(C_MACRO_PREFIX_MAP AND CXX_MACRO_PREFIX_MAP) | ||||
| ) | |||||
| if(APPLE) | if(APPLE) | ||||
| if(XCODE AND ${XCODE_VERSION} VERSION_LESS 12.0) | if(XCODE AND ${XCODE_VERSION} VERSION_LESS 12.0) | ||||
| # Developers may have say LLVM Clang-10.0.1 toolchain with Xcode-11. | # Developers may have say LLVM Clang-10.0.1 toolchain (which supports the flag) | ||||
| # with Xcode-11 (the Clang of which doesn't support the flag). | |||||
| message_first_run(WARNING | message_first_run(WARNING | ||||
| "-fmacro-prefix-map flag is NOT supported by Clang shipped with Xcode-${XCODE_VERSION}." | "-fmacro-prefix-map flag is NOT supported by Clang shipped with Xcode-${XCODE_VERSION}." | ||||
| " Some Xcode functionality in Product menu may not work. Disabling WITH_COMPILER_SHORT_FILE_MACRO." | " Some Xcode functionality in Product menu may not work. Disabling WITH_COMPILER_SHORT_FILE_MACRO." | ||||
| ) | ) | ||||
| set(WITH_COMPILER_SHORT_FILE_MACRO OFF) | set(WITH_COMPILER_SHORT_FILE_MACRO OFF) | ||||
| endif() | endif() | ||||
| endif() | endif() | ||||
| if(WITH_COMPILER_SHORT_FILE_MACRO) | if(WITH_COMPILER_SHORT_FILE_MACRO) | ||||
| path_ensure_trailing_slash(_src_dir "${CMAKE_SOURCE_DIR}") | path_ensure_trailing_slash(_src_dir "${CMAKE_SOURCE_DIR}") | ||||
| path_ensure_trailing_slash(_bin_dir "${CMAKE_BINARY_DIR}") | path_ensure_trailing_slash(_bin_dir "${CMAKE_BINARY_DIR}") | ||||
| # Keep this variable so it can be stripped from build-info. | # Keep this variable so it can be stripped from build-info. | ||||
| set(PLATFORM_CFLAGS_FMACRO_PREFIX_MAP | set(PLATFORM_CFLAGS_FMACRO_PREFIX_MAP | ||||
| "-fmacro-prefix-map=\"${_src_dir}\"=\"\" -fmacro-prefix-map=\"${_bin_dir}\"=\"\"") | "-fmacro-prefix-map=\"${_src_dir}\"=\"\" -fmacro-prefix-map=\"${_bin_dir}\"=\"\"") | ||||
| set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} ${PLATFORM_CFLAGS_FMACRO_PREFIX_MAP}") | set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} ${PLATFORM_CFLAGS_FMACRO_PREFIX_MAP}") | ||||
| unset(_src_dir) | unset(_src_dir) | ||||
| unset(_bin_dir) | unset(_bin_dir) | ||||
| endif() | endif() | ||||
| else() | else() | ||||
| message_first_run(WARNING | message_first_run(WARNING | ||||
| "-fmacro-prefix-map flag is NOT supported by ${CMAKE_C_COMPILER_ID} version-${CMAKE_C_COMPILER_VERSION}." | "-fmacro-prefix-map flag is NOT supported by C/C++ compiler." | ||||
| " Disabling WITH_COMPILER_SHORT_FILE_MACRO." | " Disabling WITH_COMPILER_SHORT_FILE_MACRO." | ||||
| ) | ) | ||||
| set(WITH_COMPILER_SHORT_FILE_MACRO OFF) | set(WITH_COMPILER_SHORT_FILE_MACRO OFF) | ||||
| endif() | endif() | ||||
| endif() | endif() | ||||
| # Include warnings first, so its possible to disable them with user defined flags | # Include warnings first, so its possible to disable them with user defined flags | ||||
| # eg: -Wno-uninitialized | # eg: -Wno-uninitialized | ||||
| ▲ Show 20 Lines • Show All 202 Lines • Show Last 20 Lines | |||||