mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-15 20:46:37 +08:00
Modules:Check,GenerateExportHeader: include only what's needed
GenerateExportHeader had a hidden state requirement that other modules were included first. Considering include_guard, Modules should include all they actually use.
This commit is contained in:
@@ -33,7 +33,6 @@ effect or even a specific one is beyond the scope of this module.
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(CheckCSourceCompiles)
|
||||
include(Internal/CheckCompilerFlag)
|
||||
|
||||
macro (CHECK_C_COMPILER_FLAG _FLAG _RESULT)
|
||||
|
@@ -33,7 +33,6 @@ effect or even a specific one is beyond the scope of this module.
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(CheckCXXSourceCompiles)
|
||||
include(Internal/CheckCompilerFlag)
|
||||
|
||||
macro (CHECK_CXX_COMPILER_FLAG _FLAG _RESULT)
|
||||
|
@@ -35,7 +35,6 @@ effect or even a specific one is beyond the scope of this module.
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(CheckFortranSourceCompiles)
|
||||
include(Internal/CheckCompilerFlag)
|
||||
|
||||
macro (CHECK_FORTRAN_COMPILER_FLAG _FLAG _RESULT)
|
||||
|
@@ -35,7 +35,6 @@ effect or even a specific one is beyond the scope of this module.
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(CheckOBJCSourceCompiles)
|
||||
include(Internal/CheckCompilerFlag)
|
||||
|
||||
macro (CHECK_OBJC_COMPILER_FLAG _FLAG _RESULT)
|
||||
|
@@ -35,7 +35,6 @@ effect or even a specific one is beyond the scope of this module.
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(CheckOBJCXXSourceCompiles)
|
||||
include(Internal/CheckCompilerFlag)
|
||||
|
||||
macro (CHECK_OBJCXX_COMPILER_FLAG _FLAG _RESULT)
|
||||
|
@@ -51,8 +51,7 @@ Example:
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(CheckCSourceCompiles)
|
||||
include(CheckCXXSourceCompiles)
|
||||
include(CheckSourceCompiles)
|
||||
|
||||
macro (CHECK_STRUCT_HAS_MEMBER _STRUCT _MEMBER _HEADER _RESULT)
|
||||
set(_INCLUDE_FILES)
|
||||
@@ -78,9 +77,9 @@ int main()
|
||||
")
|
||||
|
||||
if("${_lang}" STREQUAL "C")
|
||||
CHECK_C_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT})
|
||||
CHECK_SOURCE_COMPILES(C "${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT})
|
||||
elseif("${_lang}" STREQUAL "CXX")
|
||||
CHECK_CXX_SOURCE_COMPILES("${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT})
|
||||
CHECK_SOURCE_COMPILES(CXX "${_CHECK_STRUCT_MEMBER_SOURCE_CODE}" ${_RESULT})
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown language:\n ${_lang}\nSupported languages: C, CXX.\n")
|
||||
endif()
|
||||
|
@@ -6,11 +6,11 @@ project(FortranCInterface C Fortran)
|
||||
include(${FortranCInterface_BINARY_DIR}/Input.cmake OPTIONAL)
|
||||
|
||||
# Check if the C compiler supports '$' in identifiers.
|
||||
include(CheckCSourceCompiles)
|
||||
check_c_source_compiles("
|
||||
extern int dollar$(void);
|
||||
int main() { return 0; }
|
||||
" C_SUPPORTS_DOLLAR)
|
||||
include(CheckSourceCompiles)
|
||||
check_source_compiles(C
|
||||
"extern int dollar$(void);
|
||||
int main() { return 0; }"
|
||||
C_SUPPORTS_DOLLAR)
|
||||
|
||||
# List manglings of global symbol names to try.
|
||||
set(global_symbols
|
||||
|
@@ -198,19 +198,19 @@ that will be populated with the ``CXX_FLAGS`` required to enable visibility
|
||||
support for the compiler/architecture in use.
|
||||
#]=======================================================================]
|
||||
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckCXXCompilerFlag)
|
||||
include(CheckCompilerFlag)
|
||||
include(CheckSourceCompiles)
|
||||
|
||||
# TODO: Install this macro separately?
|
||||
macro(_check_cxx_compiler_attribute _ATTRIBUTE _RESULT)
|
||||
check_cxx_source_compiles("${_ATTRIBUTE} int somefunc() { return 0; }
|
||||
check_source_compiles(CXX "${_ATTRIBUTE} int somefunc() { return 0; }
|
||||
int main() { return somefunc();}" ${_RESULT}
|
||||
)
|
||||
endmacro()
|
||||
|
||||
# TODO: Install this macro separately?
|
||||
macro(_check_c_compiler_attribute _ATTRIBUTE _RESULT)
|
||||
check_c_source_compiles("${_ATTRIBUTE} int somefunc() { return 0; }
|
||||
check_source_compiles(C "${_ATTRIBUTE} int somefunc() { return 0; }
|
||||
int main() { return somefunc();}" ${_RESULT}
|
||||
)
|
||||
endmacro()
|
||||
@@ -226,7 +226,7 @@ macro(_test_compiler_hidden_visibility)
|
||||
endif()
|
||||
|
||||
# Exclude XL here because it misinterprets -fvisibility=hidden even though
|
||||
# the check_cxx_compiler_flag passes
|
||||
# the check_compiler_flag passes
|
||||
if(NOT GCC_TOO_OLD
|
||||
AND NOT _INTEL_TOO_OLD
|
||||
AND NOT WIN32
|
||||
@@ -235,12 +235,12 @@ macro(_test_compiler_hidden_visibility)
|
||||
AND NOT CMAKE_CXX_COMPILER_ID MATCHES "^(PGI|NVHPC)$"
|
||||
AND NOT CMAKE_CXX_COMPILER_ID MATCHES Watcom)
|
||||
if (CMAKE_CXX_COMPILER_LOADED)
|
||||
check_cxx_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY)
|
||||
check_cxx_compiler_flag(-fvisibility-inlines-hidden
|
||||
check_compiler_flag(CXX -fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY)
|
||||
check_compiler_flag(CXX -fvisibility-inlines-hidden
|
||||
COMPILER_HAS_HIDDEN_INLINE_VISIBILITY)
|
||||
else()
|
||||
check_c_compiler_flag(-fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY)
|
||||
check_c_compiler_flag(-fvisibility-inlines-hidden
|
||||
check_compiler_flag(C -fvisibility=hidden COMPILER_HAS_HIDDEN_VISIBILITY)
|
||||
check_compiler_flag(C -fvisibility-inlines-hidden
|
||||
COMPILER_HAS_HIDDEN_INLINE_VISIBILITY)
|
||||
endif()
|
||||
endif()
|
||||
|
Reference in New Issue
Block a user