| # Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| # file LICENSE.rst or https://cmake.org/licensing for details. | |
| # This module is shared by multiple languages; use include blocker. | |
| if(__COMPILER_IBMClang) | |
| return() | |
| endif() | |
| set(__COMPILER_IBMClang 1) | |
| # Macro to set ibm-clang unique config. This should be called after common | |
| # clang config is included and include only what isn't common. | |
| macro(__compiler_ibmclang lang) | |
| # Feature flags. | |
| set(CMAKE_${lang}_VERBOSE_FLAG "-v") | |
| set(CMAKE_${lang}_COMPILE_OPTIONS_PIC "-fPIC") | |
| set(CMAKE_${lang}_COMPILE_OPTIONS_PIE "-fPIC") | |
| set(CMAKE_${lang}_RESPONSE_FILE_FLAG "@") | |
| set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "@") | |
| if(CMAKE_${lang}_COMPILER_TARGET AND "${lang}" STREQUAL "CXX") | |
| list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "--target=${CMAKE_${lang}_COMPILER_TARGET}") | |
| endif() | |
| # Thin LTO is not yet supported on AIX. | |
| if(NOT (CMAKE_SYSTEM_NAME STREQUAL "AIX")) | |
| set(_CMAKE_LTO_THIN TRUE) | |
| endif() | |
| if("${lang}" STREQUAL "CXX") | |
| list(APPEND CMAKE_${lang}_COMPILER_PREDEFINES_COMMAND "-w" "-dM" "-E" "${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp") | |
| endif() | |
| endmacro() |