mirror of
https://github.com/Fishwaldo/bl_mcu_sdk.git
synced 2025-03-15 19:31:43 +00:00
[chore][cmake] update cmake to v2.25
This commit is contained in:
parent
93116cbb91
commit
75abaf7f71
1183 changed files with 21404 additions and 8680 deletions
Binary file not shown.
Binary file not shown.
|
@ -1,28 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
AddFileDependencies
|
||||
-------------------
|
||||
|
||||
Add dependencies to a source file.
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
ADD_FILE_DEPENDENCIES(<source> <files>)
|
||||
|
||||
Adds the given ``<files>`` to the dependencies of file ``<source>``.
|
||||
#]=======================================================================]
|
||||
|
||||
macro(ADD_FILE_DEPENDENCIES _file)
|
||||
|
||||
get_source_file_property(_deps ${_file} OBJECT_DEPENDS)
|
||||
if (_deps)
|
||||
set(_deps ${_deps} ${ARGN})
|
||||
else ()
|
||||
set(_deps ${ARGN})
|
||||
endif ()
|
||||
|
||||
set_source_files_properties(${_file} PROPERTIES OBJECT_DEPENDS "${_deps}")
|
||||
|
||||
endmacro()
|
|
@ -1,64 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
CMakeDependentOption
|
||||
--------------------
|
||||
|
||||
Macro to provide an option dependent on other options.
|
||||
|
||||
This macro presents an option to the user only if a set of other
|
||||
conditions are true.
|
||||
|
||||
Usage:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
cmake_dependent_option(<option> "<help_text>" <value> <depends> <force>)
|
||||
|
||||
Where ``<option>`` is available to the user if ``<depends>`` is true. When
|
||||
``<option>`` is available, the given ``<help_text>`` and initial ``<value>``
|
||||
are used. If the ``<depends>`` condition is not true, ``<option>`` will not be
|
||||
presented and will always have the value given by ``<force>``. Any value set by
|
||||
the user is preserved for when the option is presented again. Each element in
|
||||
the fourth parameter is evaluated as an if-condition, so
|
||||
:ref:`Condition Syntax` can be used.
|
||||
|
||||
Example invocation:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
cmake_dependent_option(USE_FOO "Use Foo" ON
|
||||
"USE_BAR;NOT USE_ZOT" OFF)
|
||||
|
||||
If ``USE_BAR`` is true and ``USE_ZOT`` is false, this provides an option called
|
||||
``USE_FOO`` that defaults to ON. Otherwise, it sets ``USE_FOO`` to OFF and
|
||||
hides the option from the user. If the status of ``USE_BAR`` or ``USE_ZOT``
|
||||
ever changes, any value for the ``USE_FOO`` option is saved so that when the
|
||||
option is re-enabled it retains its old value.
|
||||
#]=======================================================================]
|
||||
|
||||
macro(CMAKE_DEPENDENT_OPTION option doc default depends force)
|
||||
if(${option}_ISSET MATCHES "^${option}_ISSET$")
|
||||
set(${option}_AVAILABLE 1)
|
||||
foreach(d ${depends})
|
||||
string(REGEX REPLACE " +" ";" CMAKE_DEPENDENT_OPTION_DEP "${d}")
|
||||
if(${CMAKE_DEPENDENT_OPTION_DEP})
|
||||
else()
|
||||
set(${option}_AVAILABLE 0)
|
||||
endif()
|
||||
endforeach()
|
||||
if(${option}_AVAILABLE)
|
||||
option(${option} "${doc}" "${default}")
|
||||
set(${option} "${${option}}" CACHE BOOL "${doc}" FORCE)
|
||||
else()
|
||||
if(${option} MATCHES "^${option}$")
|
||||
else()
|
||||
set(${option} "${${option}}" CACHE INTERNAL "${doc}")
|
||||
endif()
|
||||
set(${option} ${force})
|
||||
endif()
|
||||
else()
|
||||
set(${option} "${${option}_ISSET}")
|
||||
endif()
|
||||
endmacro()
|
|
@ -1,163 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
|
||||
# search for additional tools required for C/C++ (and other languages ?)
|
||||
#
|
||||
# If the internal cmake variable _CMAKE_TOOLCHAIN_PREFIX is set, this is used
|
||||
# as prefix for the tools (e.g. arm-elf-gcc etc.)
|
||||
# If the cmake variable _CMAKE_TOOLCHAIN_LOCATION is set, the compiler is
|
||||
# searched only there. The other tools are at first searched there, then
|
||||
# also in the default locations.
|
||||
#
|
||||
# Sets the following variables:
|
||||
# CMAKE_AR
|
||||
# CMAKE_RANLIB
|
||||
# CMAKE_LINKER
|
||||
# CMAKE_MT
|
||||
# CMAKE_STRIP
|
||||
# CMAKE_INSTALL_NAME_TOOL
|
||||
|
||||
# on UNIX, cygwin and mingw
|
||||
|
||||
# Resolve full path of CMAKE_TOOL from user-defined name and SEARCH_PATH.
|
||||
function(__resolve_tool_path CMAKE_TOOL SEARCH_PATH DOCSTRING)
|
||||
|
||||
if(${CMAKE_TOOL})
|
||||
# We only get here if CMAKE_TOOL was
|
||||
# specified using -D or a pre-made CMakeCache.txt (e.g. via ctest)
|
||||
# or set in CMAKE_TOOLCHAIN_FILE.
|
||||
|
||||
get_filename_component(_CMAKE_USER_TOOL_PATH "${${CMAKE_TOOL}}" DIRECTORY)
|
||||
# Is CMAKE_TOOL a user-defined name instead of a full path?
|
||||
if(NOT _CMAKE_USER_TOOL_PATH)
|
||||
|
||||
# Find CMAKE_TOOL in the SEARCH_PATH directory by user-defined name.
|
||||
find_program(_CMAKE_TOOL_WITH_PATH NAMES ${${CMAKE_TOOL}} HINTS ${SEARCH_PATH})
|
||||
if(_CMAKE_TOOL_WITH_PATH)
|
||||
|
||||
# Overwrite CMAKE_TOOL with full path found in SEARCH_PATH.
|
||||
set(${CMAKE_TOOL} ${_CMAKE_TOOL_WITH_PATH} PARENT_SCOPE)
|
||||
|
||||
get_property(_CMAKE_TOOL_CACHED CACHE ${CMAKE_TOOL} PROPERTY TYPE)
|
||||
# If CMAKE_TOOL is present in the CMake Cache, then overwrit it as well.
|
||||
if(_CMAKE_TOOL_CACHED)
|
||||
set(${CMAKE_TOOL} "${_CMAKE_TOOL_WITH_PATH}" CACHE STRING ${DOCSTRING} FORCE)
|
||||
endif()
|
||||
|
||||
endif()
|
||||
unset(_CMAKE_TOOL_WITH_PATH CACHE)
|
||||
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
__resolve_tool_path(CMAKE_LINKER "${_CMAKE_TOOLCHAIN_LOCATION}" "Default Linker")
|
||||
__resolve_tool_path(CMAKE_MT "${_CMAKE_TOOLCHAIN_LOCATION}" "Default Manifest Tool")
|
||||
|
||||
set(_CMAKE_TOOL_VARS "")
|
||||
|
||||
# if it's the MS C/CXX compiler, search for link
|
||||
if(("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC" AND
|
||||
("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC"
|
||||
OR NOT "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xClang"))
|
||||
OR "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xMSVC"
|
||||
OR (CMAKE_HOST_WIN32 AND "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xPGI")
|
||||
OR (CMAKE_HOST_WIN32 AND "x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xNVIDIA")
|
||||
OR (CMAKE_HOST_WIN32 AND "x${_CMAKE_PROCESSING_LANGUAGE}" STREQUAL "xISPC")
|
||||
OR (CMAKE_GENERATOR MATCHES "Visual Studio"
|
||||
AND NOT CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android"))
|
||||
|
||||
if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xClang")
|
||||
find_program(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm llvm-nm HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
set(_CMAKE_ADDITIONAL_LINKER_NAMES "lld-link")
|
||||
set(_CMAKE_ADDITIONAL_AR_NAMES "llvm-lib")
|
||||
endif()
|
||||
|
||||
find_program(CMAKE_LINKER NAMES ${_CMAKE_ADDITIONAL_LINKER_NAMES} link HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_AR NAMES ${_CMAKE_ADDITIONAL_AR_NAMES} lib HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_MT NAMES mt HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
|
||||
list(APPEND _CMAKE_TOOL_VARS LINKER MT)
|
||||
|
||||
# in all other cases search for ar, ranlib, etc.
|
||||
else()
|
||||
if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN)
|
||||
set(_CMAKE_TOOLCHAIN_LOCATION ${_CMAKE_TOOLCHAIN_LOCATION} ${CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN}/bin)
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN)
|
||||
set(_CMAKE_TOOLCHAIN_LOCATION ${_CMAKE_TOOLCHAIN_LOCATION} ${CMAKE_CXX_COMPILER_EXTERNAL_TOOLCHAIN}/bin)
|
||||
endif()
|
||||
|
||||
if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL Clang)
|
||||
set(_CMAKE_ADDITIONAL_AR_NAMES "llvm-ar")
|
||||
set(_CMAKE_ADDITIONAL_RANLIB_NAMES "llvm-ranlib")
|
||||
set(_CMAKE_ADDITIONAL_STRIP_NAMES "llvm-strip")
|
||||
if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
set(_CMAKE_ADDITIONAL_LINKER_NAMES "lld-link")
|
||||
else()
|
||||
set(_CMAKE_ADDITIONAL_LINKER_NAMES "ld.lld")
|
||||
endif()
|
||||
set(_CMAKE_ADDITIONAL_NM_NAMES "llvm-nm")
|
||||
set(_CMAKE_ADDITIONAL_OBJDUMP_NAMES "llvm-objdump")
|
||||
set(_CMAKE_ADDITIONAL_OBJCOPY_NAMES "llvm-objcopy")
|
||||
set(_CMAKE_ADDITIONAL_READELF_NAMES "llvm-readelf")
|
||||
set(_CMAKE_ADDITIONAL_DLLTOOL_NAMES "llvm-dlltool")
|
||||
set(_CMAKE_ADDITIONAL_ADDR2LINE_NAMES "llvm-addr2line")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_CROSSCOMPILING AND NOT "${_CMAKE_TOOLCHAIN_PREFIX}" STREQUAL "")
|
||||
list(APPEND _CMAKE_ADDITIONAL_AR_NAMES "ar")
|
||||
list(APPEND _CMAKE_ADDITIONAL_RANLIB_NAMES "ranlib")
|
||||
list(APPEND _CMAKE_ADDITIONAL_STRIP_NAMES "strip")
|
||||
list(APPEND _CMAKE_ADDITIONAL_LINKER_NAMES "ld")
|
||||
list(APPEND _CMAKE_ADDITIONAL_NM_NAMES "nm")
|
||||
list(APPEND _CMAKE_ADDITIONAL_OBJDUMP_NAMES "objdump")
|
||||
list(APPEND _CMAKE_ADDITIONAL_OBJCOPY_NAMES "objcopy")
|
||||
list(APPEND _CMAKE_ADDITIONAL_READELF_NAMES "readelf")
|
||||
list(APPEND _CMAKE_ADDITIONAL_DLLTOOL_NAMES "dlltool")
|
||||
list(APPEND _CMAKE_ADDITIONAL_ADDR2LINE_NAMES "addr2line")
|
||||
endif()
|
||||
|
||||
find_program(CMAKE_AR NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ar${_CMAKE_TOOLCHAIN_SUFFIX} ${_CMAKE_ADDITIONAL_AR_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
|
||||
find_program(CMAKE_RANLIB NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ranlib ${_CMAKE_ADDITIONAL_RANLIB_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
if(NOT CMAKE_RANLIB)
|
||||
set(CMAKE_RANLIB : CACHE INTERNAL "noop for ranlib")
|
||||
endif()
|
||||
|
||||
|
||||
find_program(CMAKE_STRIP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}strip${_CMAKE_TOOLCHAIN_SUFFIX} ${_CMAKE_ADDITIONAL_STRIP_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_LINKER NAMES ${_CMAKE_TOOLCHAIN_PREFIX}ld ${_CMAKE_ADDITIONAL_LINKER_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_NM NAMES ${_CMAKE_TOOLCHAIN_PREFIX}nm ${_CMAKE_ADDITIONAL_NM_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_OBJDUMP NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objdump ${_CMAKE_ADDITIONAL_OBJDUMP_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_OBJCOPY NAMES ${_CMAKE_TOOLCHAIN_PREFIX}objcopy ${_CMAKE_ADDITIONAL_OBJCOPY_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_READELF NAMES ${_CMAKE_TOOLCHAIN_PREFIX}readelf ${_CMAKE_ADDITIONAL_READELF_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_DLLTOOL NAMES ${_CMAKE_TOOLCHAIN_PREFIX}dlltool ${_CMAKE_ADDITIONAL_DLLTOOL_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
find_program(CMAKE_ADDR2LINE NAMES ${_CMAKE_TOOLCHAIN_PREFIX}addr2line ${_CMAKE_ADDITIONAL_ADDR2LINE_NAMES} HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
|
||||
list(APPEND _CMAKE_TOOL_VARS AR RANLIB STRIP LINKER NM OBJDUMP OBJCOPY READELF DLLTOOL ADDR2LINE)
|
||||
endif()
|
||||
|
||||
if(CMAKE_PLATFORM_HAS_INSTALLNAME)
|
||||
find_program(CMAKE_INSTALL_NAME_TOOL NAMES ${_CMAKE_TOOLCHAIN_PREFIX}install_name_tool HINTS ${_CMAKE_TOOLCHAIN_LOCATION})
|
||||
|
||||
if(NOT CMAKE_INSTALL_NAME_TOOL)
|
||||
message(FATAL_ERROR "Could not find install_name_tool, please check your installation.")
|
||||
endif()
|
||||
|
||||
list(APPEND _CMAKE_TOOL_VARS INSTALL_NAME_TOOL)
|
||||
endif()
|
||||
|
||||
# Mark any tool cache entries as advanced.
|
||||
foreach(var IN LISTS _CMAKE_TOOL_VARS)
|
||||
get_property(_CMAKE_TOOL_CACHED CACHE CMAKE_${var} PROPERTY TYPE)
|
||||
if(_CMAKE_TOOL_CACHED)
|
||||
mark_as_advanced(CMAKE_${var})
|
||||
endif()
|
||||
unset(_CMAKE_ADDITIONAL_${var}_NAMES)
|
||||
endforeach()
|
||||
unset(_CMAKE_TOOL_VARS)
|
||||
unset(_CMAKE_TOOL_CACHED)
|
|
@ -1,9 +0,0 @@
|
|||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
|
||||
void THIS_IS_GNU();
|
||||
#endif
|
||||
#ifdef __MINGW32__
|
||||
void THIS_IS_MINGW();
|
||||
#endif
|
||||
#ifdef __CYGWIN__
|
||||
void THIS_IS_CYGWIN();
|
||||
#endif
|
|
@ -1,10 +0,0 @@
|
|||
|
||||
set(_compiler_id_pp_test "defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)")
|
||||
|
||||
set(_compiler_id_version_compute "
|
||||
#if defined(__VISUALDSPVERSION__)
|
||||
/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_HEX@(__VISUALDSPVERSION__>>24)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_HEX@(__VISUALDSPVERSION__>>16 & 0xFF)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_HEX@(__VISUALDSPVERSION__>>8 & 0xFF)
|
||||
#endif")
|
|
@ -1,3 +0,0 @@
|
|||
include(Compiler/Clang-CXX)
|
||||
include(Compiler/ARMClang)
|
||||
__compiler_armclang(CXX)
|
|
@ -1,18 +0,0 @@
|
|||
include(Compiler/Clang)
|
||||
__compiler_clang(C)
|
||||
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0)
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
|
||||
set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
|
||||
set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
|
||||
set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
|
||||
__compiler_check_default_language_standard(C 4.0 99)
|
|
@ -1,17 +0,0 @@
|
|||
include(Compiler/Clang-OBJC)
|
||||
|
||||
if(NOT CMAKE_OBJC_COMPILER_VERSION VERSION_LESS 4.0)
|
||||
set(CMAKE_OBJC90_STANDARD_COMPILE_OPTION "-std=c90")
|
||||
set(CMAKE_OBJC90_EXTENSION_COMPILE_OPTION "-std=gnu90")
|
||||
set(CMAKE_OBJC90_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_OBJC99_STANDARD_COMPILE_OPTION "-std=c99")
|
||||
set(CMAKE_OBJC99_EXTENSION_COMPILE_OPTION "-std=gnu99")
|
||||
set(CMAKE_OBJC99_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_OBJC11_STANDARD_COMPILE_OPTION "-std=c11")
|
||||
set(CMAKE_OBJC11_EXTENSION_COMPILE_OPTION "-std=gnu11")
|
||||
set(CMAKE_OBJC11_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
|
||||
__compiler_check_default_language_standard(OBJC 4.0 99)
|
|
@ -1,46 +0,0 @@
|
|||
include(Compiler/Clang)
|
||||
__compiler_clang(C)
|
||||
|
||||
cmake_policy(GET CMP0025 appleClangPolicy)
|
||||
if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if("x${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
|
||||
set(CMAKE_C_CLANG_TIDY_DRIVER_MODE "cl")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
|
||||
if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
|
||||
set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
|
||||
set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
|
||||
set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
else()
|
||||
# clang-cl doesn't have any of these
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_C90_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_C99_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_C11_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
__compiler_check_default_language_standard(C 3.4 99 3.6 11)
|
||||
else()
|
||||
set(CMAKE_C_STANDARD_DEFAULT "")
|
||||
endif()
|
|
@ -1,16 +0,0 @@
|
|||
include(Compiler/Clang)
|
||||
__compiler_clang(CXX)
|
||||
__compiler_clang_cxx_standards(CXX)
|
||||
|
||||
if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xGNU")
|
||||
set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
|
||||
endif()
|
||||
|
||||
cmake_policy(GET CMP0025 appleClangPolicy)
|
||||
if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if("x${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
|
||||
set(CMAKE_CXX_CLANG_TIDY_DRIVER_MODE "cl")
|
||||
endif()
|
|
@ -1,18 +0,0 @@
|
|||
include(Compiler/Clang)
|
||||
__compiler_clang(OBJC)
|
||||
|
||||
if(NOT CMAKE_OBJC_COMPILER_VERSION VERSION_LESS 3.4)
|
||||
set(CMAKE_OBJC90_STANDARD_COMPILE_OPTION "-std=c90")
|
||||
set(CMAKE_OBJC90_EXTENSION_COMPILE_OPTION "-std=gnu90")
|
||||
set(CMAKE_OBJC90_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_OBJC99_STANDARD_COMPILE_OPTION "-std=c99")
|
||||
set(CMAKE_OBJC99_EXTENSION_COMPILE_OPTION "-std=gnu99")
|
||||
set(CMAKE_OBJC99_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
|
||||
set(CMAKE_OBJC11_STANDARD_COMPILE_OPTION "-std=c11")
|
||||
set(CMAKE_OBJC11_EXTENSION_COMPILE_OPTION "-std=gnu11")
|
||||
set(CMAKE_OBJC11_STANDARD__HAS_FULL_SUPPORT ON)
|
||||
endif()
|
||||
|
||||
__compiler_check_default_language_standard(OBJC 3.4 99 3.6 11)
|
|
@ -1,3 +0,0 @@
|
|||
include(Compiler/Clang)
|
||||
__compiler_clang(OBJCXX)
|
||||
__compiler_clang_cxx_standards(OBJCXX)
|
|
@ -1,2 +0,0 @@
|
|||
|
||||
set(_compiler_id_pp_test "defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)")
|
|
@ -1,2 +0,0 @@
|
|||
include(Compiler/GNU)
|
||||
__compiler_gnu(OBJC)
|
|
@ -1,10 +0,0 @@
|
|||
include(Compiler/GNU)
|
||||
__compiler_gnu(OBJCXX)
|
||||
|
||||
if(NOT CMAKE_OBJCXX_COMPILER_VERSION VERSION_LESS 4.2)
|
||||
set(CMAKE_OBJCXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN "-fvisibility-inlines-hidden")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_OBJCXX_LINK_FLAGS)
|
||||
set(CMAKE_OBCXX_LINK_FLAGS "-lstdc++")
|
||||
endif()
|
|
@ -1,52 +0,0 @@
|
|||
# This file is processed when the IAR compiler is used for an assembler file
|
||||
|
||||
include(Compiler/IAR)
|
||||
|
||||
if("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
__compiler_iar_ilink(ASM)
|
||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
||||
|
||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
__compiler_iar_ilink(ASM)
|
||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
||||
|
||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RH850")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
__compiler_iar_ilink(ASM)
|
||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
||||
|
||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RL78")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
__compiler_iar_ilink(ASM)
|
||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
||||
|
||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RISC-V")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
__compiler_iar_ilink(ASM)
|
||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
|
||||
|
||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
__compiler_iar_xlink(ASM)
|
||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s90;asm;msa)
|
||||
|
||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "MSP430")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
__compiler_iar_xlink(ASM)
|
||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s43;asm;msa)
|
||||
|
||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "V850")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
__compiler_iar_xlink(ASM)
|
||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s85;asm;msa)
|
||||
|
||||
elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "8051")
|
||||
set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
__compiler_iar_xlink(ASM)
|
||||
set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s51;asm;msa)
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID not detected. This should be automatic.")
|
||||
endif()
|
|
@ -1,83 +0,0 @@
|
|||
# This file is processed when the IAR compiler is used for a C++ file
|
||||
|
||||
include(Compiler/IAR)
|
||||
include(Compiler/CMakeCommonCompilerMacros)
|
||||
|
||||
# Common
|
||||
if(NOT CMAKE_CXX_COMPILER_VERSION)
|
||||
message(FATAL_ERROR "CMAKE_CXX_COMPILER_VERSION not detected. This should be automatic.")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_IAR_CXX_FLAG)
|
||||
# The --c++ flag was introduced in platform version 9 for all architectures except ARM where it was introduced already in version 7
|
||||
if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 8 OR
|
||||
(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 6 AND "${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM") )
|
||||
set(CMAKE_IAR_CXX_FLAG --c++)
|
||||
else()
|
||||
set(CMAKE_IAR_CXX_FLAG --eec++)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_EXTENSION_COMPILE_OPTION -e)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 7)
|
||||
set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION -e)
|
||||
set(CMAKE_CXX03_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX03_EXTENSION_COMPILE_OPTION -e)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_GREATER 8)
|
||||
set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION -e)
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION -e)
|
||||
endif()
|
||||
|
||||
# Architecture specific
|
||||
if("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM")
|
||||
if(CMAKE_CXX_COMPILER_VERSION_INTERNAL VERSION_LESS 7)
|
||||
# IAR ARM 4.X uses xlink.exe, detection is not yet implemented
|
||||
message(FATAL_ERROR "CMAKE_CXX_COMPILER_VERSION = ${CMAKE_C_COMPILER_VERSION} not supported by CMake.")
|
||||
endif()
|
||||
__compiler_iar_ilink(CXX)
|
||||
__compiler_check_default_language_standard(CXX 6.10 98 8.10 14)
|
||||
|
||||
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX")
|
||||
__compiler_iar_ilink(CXX)
|
||||
__compiler_check_default_language_standard(CXX 2.10 98 4.10 14)
|
||||
|
||||
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "RH850")
|
||||
__compiler_iar_ilink(CXX)
|
||||
__compiler_check_default_language_standard(CXX 1.10 98 2.10 14)
|
||||
|
||||
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "RL78")
|
||||
__compiler_iar_ilink(CXX)
|
||||
__compiler_check_default_language_standard(CXX 1.10 98 4.10 14)
|
||||
|
||||
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "RISCV")
|
||||
__compiler_iar_ilink(CXX)
|
||||
__compiler_check_default_language_standard(CXX 1.10 98 1.10 14)
|
||||
|
||||
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
|
||||
__compiler_iar_xlink(CXX)
|
||||
__compiler_check_default_language_standard(CXX 7.10 98)
|
||||
|
||||
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "MSP430")
|
||||
__compiler_iar_xlink(CXX)
|
||||
__compiler_check_default_language_standard(CXX 5.10 98)
|
||||
set(CMAKE_CXX_OUTPUT_EXTENSION ".r43")
|
||||
|
||||
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "V850")
|
||||
__compiler_iar_xlink(CXX)
|
||||
__compiler_check_default_language_standard(CXX 1.10 98)
|
||||
set(CMAKE_C_OUTPUT_EXTENSION ".r85")
|
||||
|
||||
elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "8051")
|
||||
__compiler_iar_xlink(CXX)
|
||||
__compiler_check_default_language_standard(CXX 6.10 98)
|
||||
set(CMAKE_C_OUTPUT_EXTENSION ".r51")
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "CMAKE_CXX_COMPILER_ARCHITECTURE_ID not detected. This should be automatic." )
|
||||
endif()
|
|
@ -1,39 +0,0 @@
|
|||
# IAR Systems compiler for ARM embedded systems.
|
||||
# http://www.iar.com
|
||||
# http://supp.iar.com/FilesPublic/UPDINFO/004916/arm/doc/EWARM_DevelopmentGuide.ENU.pdf
|
||||
#
|
||||
# __IAR_SYSTEMS_ICC__ An integer that identifies the IAR compiler platform:
|
||||
# 9 and higher means C11 and C++14 as language default
|
||||
# 8 means C99 and C++03 as language default
|
||||
# 7 and lower means C89 and EC++ as language default.
|
||||
# __ICCARM__ An integer that is set to 1 when the code is compiled with the IAR C/C++ Compiler for ARM
|
||||
# __VER__ An integer that identifies the version number of the IAR compiler in use. For example,
|
||||
# version 5.11.3 is returned as 5011003.
|
||||
#
|
||||
# IAR Systems Compiler for AVR embedded systems
|
||||
# http://supp.iar.com/FilesPublic/UPDINFO/007051/ew/doc/EWAVR_CompilerReference.pdf
|
||||
#
|
||||
# __IAR_SYSTEMS_ICC__ An integer that identifies the IAR compiler platform.
|
||||
# __ICCAVR__ An integer that is set to 1 when the code is compiled with the IAR C/C++ Compiler for AVR
|
||||
# __VER__ An integer that identifies the version number of the IAR compiler in use.
|
||||
# The value is calculated by (100 * VERSION_MAJOR + VERSION_MINOR). For example the version
|
||||
# 3.34 is given as 334
|
||||
# __SUBVERSION__ An integer that identifies the subversion number of the compiler version number
|
||||
# for example 3 in 1.2.3.4. THis is used as the patch version, as seen when running iccavr
|
||||
# from the command line
|
||||
#
|
||||
|
||||
set(_compiler_id_pp_test "defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)")
|
||||
|
||||
set(_compiler_id_version_compute "
|
||||
# if defined(__VER__) && defined(__ICCARM__)
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@((__VER__) / 1000000)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(((__VER__) / 1000) % 1000)
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@((__VER__) % 1000)
|
||||
# define @PREFIX@COMPILER_VERSION_INTERNAL @MACRO_DEC@(__IAR_SYSTEMS_ICC__)
|
||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__))
|
||||
# define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@((__VER__) / 100)
|
||||
# define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@((__VER__) - (((__VER__) / 100)*100))
|
||||
# define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@(__SUBVERSION__)
|
||||
# define @PREFIX@COMPILER_VERSION_INTERNAL @MACRO_DEC@(__IAR_SYSTEMS_ICC__)
|
||||
# endif")
|
|
@ -1,63 +0,0 @@
|
|||
if(NOT DEFINED _CMAKE_PROCESSING_LANGUAGE OR _CMAKE_PROCESSING_LANGUAGE STREQUAL "")
|
||||
message(FATAL_ERROR "Internal error: _CMAKE_PROCESSING_LANGUAGE is not set")
|
||||
endif()
|
||||
|
||||
# Try to find tools in the same directory as the compiler itself
|
||||
get_filename_component(__iar_hint_1 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" REALPATH)
|
||||
get_filename_component(__iar_hint_1 "${__iar_hint_1}" DIRECTORY)
|
||||
|
||||
get_filename_component(__iar_hint_2 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
|
||||
|
||||
set(__iar_hints "${__iar_hint_1}" "${__iar_hint_2}")
|
||||
|
||||
if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM" OR
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RX" OR
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RH850" OR
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RL78" OR
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "RISCV")
|
||||
|
||||
string(TOLOWER "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" _archid_lower)
|
||||
|
||||
# Find linker
|
||||
find_program(CMAKE_IAR_LINKER ilink${_archid_lower} HINTS ${__iar_hints}
|
||||
DOC "The IAR ILINK linker")
|
||||
find_program(CMAKE_IAR_ARCHIVE iarchive HINTS ${__iar_hints}
|
||||
DOC "The IAR archiver")
|
||||
|
||||
# Find utility tools
|
||||
find_program(CMAKE_IAR_ELFTOOL ielftool HINTS ${__iar_hints}
|
||||
DOC "The IAR ELF Tool")
|
||||
find_program(CMAKE_IAR_ELFDUMP ielfdump${_archid_lower} HINTS ${__iar_hints}
|
||||
DOC "The IAR ELF Dumper")
|
||||
find_program(CMAKE_IAR_OBJMANIP iobjmanip HINTS ${__iar_hints}
|
||||
DOC "The IAR ELF Object Tool")
|
||||
find_program(CMAKE_IAR_SYMEXPORT isymexport HINTS ${__iar_hints}
|
||||
DOC "The IAR Absolute Symbol Exporter")
|
||||
mark_as_advanced(CMAKE_IAR_LINKER CMAKE_IAR_ARCHIVE CMAKE_IAR_ELFTOOL CMAKE_IAR_ELFDUMP CMAKE_IAR_OBJMANIP CMAKE_IAR_SYMEXPORT)
|
||||
|
||||
set(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_CUSTOM_CODE
|
||||
"set(CMAKE_IAR_LINKER \"${CMAKE_IAR_LINKER}\")
|
||||
set(CMAKE_IAR_ARCHIVE \"${CMAKE_IAR_ARCHIVE}\")
|
||||
set(CMAKE_IAR_ELFTOOL \"${CMAKE_IAR_ELFTOOL}\")
|
||||
set(CMAKE_IAR_ELFDUMP \"${CMAKE_IAR_ELFDUMP}\")
|
||||
set(CMAKE_IAR_OBJMANIP \"${CMAKE_IAR_OBJMANIP}\")
|
||||
set(CMAKE_IAR_LINKER \"${CMAKE_IAR_LINKER}\")
|
||||
")
|
||||
|
||||
elseif("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR" OR
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "MSP430" OR
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "V850" OR
|
||||
"${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ARCHITECTURE_ID}" STREQUAL "8051")
|
||||
|
||||
# Find the "xlink" linker and "xar" archiver:
|
||||
find_program(CMAKE_IAR_LINKER xlink HINTS ${__iar_hints}
|
||||
DOC "The IAR XLINK linker")
|
||||
find_program(CMAKE_IAR_AR xar HINTS ${__iar_hints}
|
||||
DOC "The IAR archiver")
|
||||
mark_as_advanced(CMAKE_IAR_LINKER CMAKE_IAR_AR)
|
||||
|
||||
set(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_CUSTOM_CODE
|
||||
"set(CMAKE_IAR_LINKER \"${CMAKE_IAR_LINKER}\")
|
||||
set(CMAKE_IAR_AR \"${CMAKE_IAR_AR}\")
|
||||
")
|
||||
endif()
|
|
@ -1,115 +0,0 @@
|
|||
# This file is processed when the IAR compiler is used for a C or C++ file
|
||||
# Documentation can be downloaded here: http://www.iar.com/website1/1.0.1.0/675/1/
|
||||
# The initial feature request is here: https://gitlab.kitware.com/cmake/cmake/-/issues/10176
|
||||
# It also contains additional links and information.
|
||||
# See USER GUIDES -> C/C++ Development Guide and ReleaseNotes for EWARM:
|
||||
# version 6.30.8: http://supp.iar.com/FilesPublic/UPDINFO/006607/arm/doc/infocenter/index.ENU.html
|
||||
# version 7.60.1: http://supp.iar.com/FilesPublic/UPDINFO/011006/arm/doc/infocenter/index.ENU.html
|
||||
# version 8.10.1: http://netstorage.iar.com/SuppDB/Public/UPDINFO/011854/arm/doc/infocenter/index.ENU.html
|
||||
|
||||
# The IAR internal compiler platform generations (Predefined symbol __IAR_SYSTEMS_ICC__):
|
||||
# 9 and higher means C11 and C++14 as language default (EWARM v8.x, EWRX v4.x and higher)
|
||||
# 8 means C99 and C++03 as language default (EWARM v6.x, v7.x. EWRX v2.x, 3.x)
|
||||
# 7 and lower means C89 and EC++ as language default. (EWARM v5.x and lower)
|
||||
|
||||
# C/C++ Standard versions
|
||||
#
|
||||
# IAR typically only supports one C and C++ Standard version,
|
||||
# the exception is C89 which is always supported and can be selected
|
||||
# if its not the default
|
||||
#
|
||||
# C++ is trickier, there were historically 3 switches,
|
||||
# and some IAR versions support multiple of those.
|
||||
# they are --eec++, --ec++ and --c++ and where used to
|
||||
# enable various language features like exceptions
|
||||
#
|
||||
# recent versions only have --c++ for full support
|
||||
# but can choose to disable features with further arguments
|
||||
#
|
||||
# C/C++ Standard compliance
|
||||
#
|
||||
# IAR has 3 modes: default, strict and extended
|
||||
# the extended mode is needed for popular libraries like CMSIS
|
||||
#
|
||||
# "Silent" Operation
|
||||
#
|
||||
# this really is different to most programs I know.
|
||||
# nothing meaningful from the operation is lost, just some redundant
|
||||
# code and data size printouts (that can be inspected with common tools).
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
include_guard()
|
||||
|
||||
macro(__compiler_iar_ilink lang)
|
||||
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
|
||||
set(CMAKE_${lang}_OUTPUT_EXTENSION ".o")
|
||||
if (${lang} STREQUAL "C" OR ${lang} STREQUAL "CXX")
|
||||
set(CMAKE_${lang}_COMPILE_OBJECT "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
|
||||
set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
|
||||
|
||||
set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-f ")
|
||||
set(CMAKE_DEPFILE_FLAGS_${lang} "--dependencies=ns <DEPFILE>")
|
||||
|
||||
string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -r")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Ohz -DNDEBUG")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -Oh -DNDEBUG")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
|
||||
endif()
|
||||
|
||||
if (${lang} STREQUAL "ASM")
|
||||
string(APPEND CMAKE_ASM_FLAGS_INIT " ")
|
||||
string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
|
||||
string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
|
||||
string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
|
||||
string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
|
||||
endif()
|
||||
|
||||
set(CMAKE_${lang}_LINK_EXECUTABLE "\"${CMAKE_IAR_LINKER}\" --silent <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
|
||||
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --create <LINK_FLAGS> <OBJECTS>")
|
||||
set(CMAKE_${lang}_ARCHIVE_CREATE "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --create <LINK_FLAGS> <OBJECTS>")
|
||||
set(CMAKE_${lang}_ARCHIVE_APPEND "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --replace <LINK_FLAGS> <OBJECTS>")
|
||||
set(CMAKE_${lang}_ARCHIVE_FINISH "")
|
||||
|
||||
set(CMAKE_LINKER "${CMAKE_IAR_LINKER}" CACHE FILEPATH "The IAR linker" FORCE)
|
||||
set(CMAKE_AR "${CMAKE_IAR_ARCHIVE}" CACHE FILEPATH "The IAR archiver" FORCE)
|
||||
endmacro()
|
||||
|
||||
macro(__compiler_iar_xlink lang)
|
||||
set(CMAKE_EXECUTABLE_SUFFIX ".bin")
|
||||
if (${lang} STREQUAL "C" OR ${lang} STREQUAL "CXX")
|
||||
|
||||
set(CMAKE_${lang}_COMPILE_OBJECT "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
|
||||
set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
|
||||
set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
|
||||
|
||||
set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-f ")
|
||||
set(CMAKE_DEPFILE_FLAGS_${lang} "--dependencies=ns <DEPFILE>")
|
||||
|
||||
string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -r")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Ohz -DNDEBUG")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -Oh -DNDEBUG")
|
||||
string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
|
||||
endif()
|
||||
|
||||
if (${lang} STREQUAL "ASM")
|
||||
string(APPEND CMAKE_ASM_FLAGS_INIT " ")
|
||||
string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
|
||||
string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
|
||||
string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
|
||||
string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
|
||||
endif()
|
||||
|
||||
set(CMAKE_${lang}_LINK_EXECUTABLE "\"${CMAKE_IAR_LINKER}\" -S <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
|
||||
set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "\"${CMAKE_IAR_AR}\" <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||
set(CMAKE_${lang}_ARCHIVE_CREATE "\"${CMAKE_IAR_AR}\" <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||
set(CMAKE_${lang}_ARCHIVE_APPEND "")
|
||||
set(CMAKE_${lang}_ARCHIVE_FINISH "")
|
||||
|
||||
set(CMAKE_LIBRARY_PATH_FLAG "-I")
|
||||
|
||||
set(CMAKE_LINKER "${CMAKE_IAR_LINKER}" CACHE FILEPATH "The IAR linker" FORCE)
|
||||
set(CMAKE_AR "${CMAKE_IAR_AR}" CACHE FILEPATH "The IAR archiver" FORCE)
|
||||
endmacro()
|
|
@ -1,64 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
include(Compiler/CMakeCommonCompilerMacros)
|
||||
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.27)
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std:c11")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std:c11")
|
||||
|
||||
__compiler_check_default_language_standard(C 19.27 99)
|
||||
else()
|
||||
# MSVC has no specific options to set C language standards, but set them as
|
||||
# empty strings anyways so the feature test infrastructure can at least check
|
||||
# to see if they are defined.
|
||||
set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
|
||||
set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
|
||||
set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
|
||||
|
||||
# There is no meaningful default for this
|
||||
set(CMAKE_C_STANDARD_DEFAULT "")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_CLANG_TIDY_DRIVER_MODE "cl")
|
||||
|
||||
# There are no C compiler modes so we hard-code the known compiler supported
|
||||
# features. Override the default macro for this special case. Pretend that
|
||||
# all language standards are available so that at least compilation
|
||||
# can be attempted.
|
||||
macro(cmake_record_c_compile_features)
|
||||
list(APPEND CMAKE_C_COMPILE_FEATURES
|
||||
c_std_90
|
||||
c_std_99
|
||||
c_std_11
|
||||
c_function_prototypes
|
||||
)
|
||||
list(APPEND CMAKE_C90_COMPILE_FEATURES c_std_90 c_function_prototypes)
|
||||
list(APPEND CMAKE_C99_COMPILE_FEATURES c_std_99)
|
||||
list(APPEND CMAKE_C11_COMPILE_FEATURES c_std_11)
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0)
|
||||
list(APPEND CMAKE_C_COMPILE_FEATURES c_variadic_macros)
|
||||
list(APPEND CMAKE_C99_COMPILE_FEATURES c_variadic_macros)
|
||||
endif()
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.27)
|
||||
list(APPEND CMAKE_C_COMPILE_FEATURES c_restrict)
|
||||
list(APPEND CMAKE_C99_COMPILE_FEATURES c_restrict)
|
||||
endif()
|
||||
if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.28)
|
||||
list(APPEND CMAKE_C_COMPILE_FEATURES c_static_assert)
|
||||
list(APPEND CMAKE_C11_COMPILE_FEATURES c_static_assert)
|
||||
endif()
|
||||
set(_result 0) # expected by cmake_determine_compile_features
|
||||
endmacro()
|
||||
|
||||
# /JMC "Just My Code" is only supported by MSVC 19.05 onward.
|
||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.05)
|
||||
set(CMAKE_C_COMPILE_OPTIONS_JMC "-JMC")
|
||||
endif()
|
|
@ -1,216 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" rev-list --max-count=1 HEAD
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
OUTPUT_VARIABLE head_sha
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
if(error_code)
|
||||
message(FATAL_ERROR "Failed to get the hash for HEAD")
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" show-ref "@git_tag@"
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
OUTPUT_VARIABLE show_ref_output
|
||||
)
|
||||
# If a remote ref is asked for, which can possibly move around,
|
||||
# we must always do a fetch and checkout.
|
||||
if("${show_ref_output}" MATCHES "remotes")
|
||||
set(is_remote_ref 1)
|
||||
else()
|
||||
set(is_remote_ref 0)
|
||||
endif()
|
||||
|
||||
# Tag is in the form <remote>/<tag> (i.e. origin/master) we must strip
|
||||
# the remote from the tag.
|
||||
if("${show_ref_output}" MATCHES "refs/remotes/@git_tag@")
|
||||
string(REGEX MATCH "^([^/]+)/(.+)$" _unused "@git_tag@")
|
||||
set(git_remote "${CMAKE_MATCH_1}")
|
||||
set(git_tag "${CMAKE_MATCH_2}")
|
||||
else()
|
||||
set(git_remote "@git_remote_name@")
|
||||
set(git_tag "@git_tag@")
|
||||
endif()
|
||||
|
||||
# This will fail if the tag does not exist (it probably has not been fetched
|
||||
# yet).
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" rev-list --max-count=1 "${git_tag}"
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
OUTPUT_VARIABLE tag_sha
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
# Is the hash checkout out that we want?
|
||||
if(error_code OR is_remote_ref OR NOT ("${tag_sha}" STREQUAL "${head_sha}"))
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" fetch
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
if(error_code)
|
||||
message(FATAL_ERROR "Failed to fetch repository '@git_repository@'")
|
||||
endif()
|
||||
|
||||
if(is_remote_ref)
|
||||
# Check if stash is needed
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" status --porcelain
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
OUTPUT_VARIABLE repo_status
|
||||
)
|
||||
if(error_code)
|
||||
message(FATAL_ERROR "Failed to get the status")
|
||||
endif()
|
||||
string(LENGTH "${repo_status}" need_stash)
|
||||
|
||||
# If not in clean state, stash changes in order to be able to perform a
|
||||
# rebase or checkout without losing those changes permanently
|
||||
if(need_stash)
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" stash save @git_stash_save_options@
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
if(error_code)
|
||||
message(FATAL_ERROR "Failed to stash changes")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("@git_update_strategy@" STREQUAL "CHECKOUT")
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" checkout "${git_remote}/${git_tag}"
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
if(error_code)
|
||||
message(FATAL_ERROR "Failed to checkout tag: '${git_remote}/${git_tag}'")
|
||||
endif()
|
||||
else()
|
||||
# Pull changes from the remote branch
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" rebase "${git_remote}/${git_tag}"
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
OUTPUT_VARIABLE rebase_output
|
||||
ERROR_VARIABLE rebase_output
|
||||
)
|
||||
if(error_code)
|
||||
# Rebase failed, undo the rebase attempt before continuing
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" rebase --abort
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
)
|
||||
|
||||
if(NOT "@git_update_strategy@" STREQUAL "REBASE_CHECKOUT")
|
||||
# Not allowed to do a checkout as a fallback, so cannot proceed
|
||||
if(need_stash)
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" stash pop --index --quiet
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
)
|
||||
endif()
|
||||
message(FATAL_ERROR "\nFailed to rebase in: '@work_dir@'."
|
||||
"\nOutput from the attempted rebase follows:"
|
||||
"\n${rebase_output}"
|
||||
"\n\nYou will have to resolve the conflicts manually")
|
||||
endif()
|
||||
|
||||
# Fall back to checkout. We create an annotated tag so that the user
|
||||
# can manually inspect the situation and revert if required.
|
||||
# We can't log the failed rebase output because MSVC sees it and
|
||||
# intervenes, causing the build to fail even though it completes.
|
||||
# Write it to a file instead.
|
||||
string(TIMESTAMP tag_timestamp "%Y%m%dT%H%M%S" UTC)
|
||||
set(tag_name _cmake_ExternalProject_moved_from_here_${tag_timestamp}Z)
|
||||
set(error_log_file ${CMAKE_CURRENT_LIST_DIR}/rebase_error_${tag_timestamp}Z.log)
|
||||
file(WRITE ${error_log_file} "${rebase_output}")
|
||||
message(WARNING "Rebase failed, output has been saved to ${error_log_file}"
|
||||
"\nFalling back to checkout, previous commit tagged as ${tag_name}")
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" tag -a
|
||||
-m "ExternalProject attempting to move from here to ${git_remote}/${git_tag}"
|
||||
${tag_name}
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
if(error_code)
|
||||
message(FATAL_ERROR "Failed to add marker tag")
|
||||
endif()
|
||||
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" checkout "${git_remote}/${git_tag}"
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
if(error_code)
|
||||
message(FATAL_ERROR "Failed to checkout : '${git_remote}/${git_tag}'")
|
||||
endif()
|
||||
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(need_stash)
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" stash pop --index --quiet
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
if(error_code)
|
||||
# Stash pop --index failed: Try again dropping the index
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" reset --hard --quiet
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" stash pop --quiet
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
if(error_code)
|
||||
# Stash pop failed: Restore previous state.
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" reset --hard --quiet ${head_sha}
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
)
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" stash pop --index --quiet
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
)
|
||||
message(FATAL_ERROR "\nFailed to unstash changes in: '@work_dir@'."
|
||||
"\nYou will have to resolve the conflicts manually")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" checkout "${git_tag}"
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
if(error_code)
|
||||
message(FATAL_ERROR "Failed to checkout tag: '${git_tag}'")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(init_submodules "@init_submodules@")
|
||||
if(init_submodules)
|
||||
execute_process(
|
||||
COMMAND "@git_EXECUTABLE@" submodule update @git_submodules_recurse@ --init @git_submodules@
|
||||
WORKING_DIRECTORY "@work_dir@"
|
||||
RESULT_VARIABLE error_code
|
||||
)
|
||||
endif()
|
||||
if(error_code)
|
||||
message(FATAL_ERROR "Failed to update submodules in: '@work_dir@'")
|
||||
endif()
|
||||
endif()
|
File diff suppressed because it is too large
Load diff
|
@ -1,75 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindDevIL
|
||||
---------
|
||||
|
||||
|
||||
|
||||
This module locates the developer's image library.
|
||||
http://openil.sourceforge.net/
|
||||
|
||||
This module sets:
|
||||
|
||||
::
|
||||
|
||||
IL_LIBRARIES - the name of the IL library. These include the full path to
|
||||
the core DevIL library. This one has to be linked into the
|
||||
application.
|
||||
ILU_LIBRARIES - the name of the ILU library. Again, the full path. This
|
||||
library is for filters and effects, not actual loading. It
|
||||
doesn't have to be linked if the functionality it provides
|
||||
is not used.
|
||||
ILUT_LIBRARIES - the name of the ILUT library. Full path. This part of the
|
||||
library interfaces with OpenGL. It is not strictly needed
|
||||
in applications.
|
||||
IL_INCLUDE_DIR - where to find the il.h, ilu.h and ilut.h files.
|
||||
DevIL_FOUND - this is set to TRUE if all the above variables were set.
|
||||
This will be set to false if ILU or ILUT are not found,
|
||||
even if they are not needed. In most systems, if one
|
||||
library is found all the others are as well. That's the
|
||||
way the DevIL developers release it.
|
||||
#]=======================================================================]
|
||||
|
||||
# TODO: Add version support.
|
||||
# Tested under Linux and Windows (MSVC)
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
|
||||
find_path(IL_INCLUDE_DIR il.h
|
||||
PATH_SUFFIXES include IL
|
||||
DOC "The path to the directory that contains il.h"
|
||||
)
|
||||
|
||||
#message("IL_INCLUDE_DIR is ${IL_INCLUDE_DIR}")
|
||||
|
||||
find_library(IL_LIBRARIES
|
||||
NAMES IL DEVIL
|
||||
PATH_SUFFIXES libx32 lib64 lib lib32
|
||||
DOC "The file that corresponds to the base il library."
|
||||
)
|
||||
|
||||
#message("IL_LIBRARIES is ${IL_LIBRARIES}")
|
||||
|
||||
find_library(ILUT_LIBRARIES
|
||||
NAMES ILUT
|
||||
PATH_SUFFIXES libx32 lib64 lib lib32
|
||||
DOC "The file that corresponds to the il (system?) utility library."
|
||||
)
|
||||
|
||||
#message("ILUT_LIBRARIES is ${ILUT_LIBRARIES}")
|
||||
|
||||
find_library(ILU_LIBRARIES
|
||||
NAMES ILU
|
||||
PATH_SUFFIXES libx32 lib64 lib lib32
|
||||
DOC "The file that corresponds to the il utility library."
|
||||
)
|
||||
|
||||
#message("ILU_LIBRARIES is ${ILU_LIBRARIES}")
|
||||
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(DevIL DEFAULT_MSG
|
||||
IL_LIBRARIES ILU_LIBRARIES
|
||||
IL_INCLUDE_DIR)
|
||||
# provide legacy variable for compatibility
|
||||
set(IL_FOUND ${DevIL_FOUND})
|
|
@ -1,201 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindGLUT
|
||||
--------
|
||||
|
||||
Find OpenGL Utility Toolkit (GLUT) library and include files.
|
||||
|
||||
IMPORTED Targets
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines the :prop_tgt:`IMPORTED` targets:
|
||||
|
||||
``GLUT::GLUT``
|
||||
Defined if the system has GLUT.
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module sets the following variables:
|
||||
|
||||
::
|
||||
|
||||
GLUT_INCLUDE_DIR, where to find GL/glut.h, etc.
|
||||
GLUT_LIBRARIES, the libraries to link against
|
||||
GLUT_FOUND, If false, do not try to use GLUT.
|
||||
|
||||
Also defined, but not for general use are:
|
||||
|
||||
::
|
||||
|
||||
GLUT_glut_LIBRARY = the full path to the glut library.
|
||||
GLUT_Xmu_LIBRARY = the full path to the Xmu library.
|
||||
GLUT_Xi_LIBRARY = the full path to the Xi Library.
|
||||
#]=======================================================================]
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
|
||||
|
||||
if (WIN32)
|
||||
find_path( GLUT_INCLUDE_DIR NAMES GL/glut.h
|
||||
PATHS ${GLUT_ROOT_PATH}/include )
|
||||
find_library( GLUT_glut_LIBRARY_RELEASE NAMES glut glut32 freeglut
|
||||
PATHS
|
||||
${OPENGL_LIBRARY_DIR}
|
||||
${GLUT_ROOT_PATH}/Release
|
||||
)
|
||||
find_library( GLUT_glut_LIBRARY_DEBUG NAMES freeglutd
|
||||
PATHS
|
||||
${OPENGL_LIBRARY_DIR}
|
||||
${GLUT_ROOT_PATH}/Debug
|
||||
)
|
||||
mark_as_advanced(GLUT_glut_LIBRARY_RELEASE GLUT_glut_LIBRARY_DEBUG)
|
||||
select_library_configurations(GLUT_glut)
|
||||
else ()
|
||||
|
||||
if (APPLE)
|
||||
find_path(GLUT_INCLUDE_DIR glut.h ${OPENGL_LIBRARY_DIR})
|
||||
find_library(GLUT_glut_LIBRARY GLUT DOC "GLUT library for OSX")
|
||||
find_library(GLUT_cocoa_LIBRARY Cocoa DOC "Cocoa framework for OSX")
|
||||
mark_as_advanced(GLUT_glut_LIBRARY GLUT_cocoa_LIBRARY)
|
||||
|
||||
if(GLUT_cocoa_LIBRARY AND NOT TARGET GLUT::Cocoa)
|
||||
add_library(GLUT::Cocoa UNKNOWN IMPORTED)
|
||||
# Cocoa should always be a Framework, but we check to make sure.
|
||||
if(GLUT_cocoa_LIBRARY MATCHES "/([^/]+)\\.framework$")
|
||||
set(_glut_cocoa "${GLUT_cocoa_LIBRARY}/${CMAKE_MATCH_1}")
|
||||
if(EXISTS "${_glut_cocoa}.tbd")
|
||||
string(APPEND _glut_cocoa ".tbd")
|
||||
endif()
|
||||
set_target_properties(GLUT::Cocoa PROPERTIES
|
||||
IMPORTED_LOCATION "${_glut_cocoa}")
|
||||
else()
|
||||
set_target_properties(GLUT::Cocoa PROPERTIES
|
||||
IMPORTED_LOCATION "${GLUT_cocoa_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
else ()
|
||||
|
||||
if (BEOS)
|
||||
|
||||
set(_GLUT_INC_DIR /boot/develop/headers/os/opengl)
|
||||
set(_GLUT_glut_LIB_DIR /boot/develop/lib/x86)
|
||||
|
||||
else()
|
||||
|
||||
find_library( GLUT_Xi_LIBRARY Xi
|
||||
/usr/openwin/lib
|
||||
)
|
||||
mark_as_advanced(GLUT_Xi_LIBRARY)
|
||||
|
||||
find_library( GLUT_Xmu_LIBRARY Xmu
|
||||
/usr/openwin/lib
|
||||
)
|
||||
mark_as_advanced(GLUT_Xmu_LIBRARY)
|
||||
|
||||
if(GLUT_Xi_LIBRARY AND NOT TARGET GLUT::Xi)
|
||||
add_library(GLUT::Xi UNKNOWN IMPORTED)
|
||||
set_target_properties(GLUT::Xi PROPERTIES
|
||||
IMPORTED_LOCATION "${GLUT_Xi_LIBRARY}")
|
||||
endif()
|
||||
|
||||
if(GLUT_Xmu_LIBRARY AND NOT TARGET GLUT::Xmu)
|
||||
add_library(GLUT::Xmu UNKNOWN IMPORTED)
|
||||
set_target_properties(GLUT::Xmu PROPERTIES
|
||||
IMPORTED_LOCATION "${GLUT_Xmu_LIBRARY}")
|
||||
endif()
|
||||
|
||||
endif ()
|
||||
|
||||
find_path( GLUT_INCLUDE_DIR GL/glut.h
|
||||
/usr/include/GL
|
||||
/usr/openwin/share/include
|
||||
/usr/openwin/include
|
||||
/opt/graphics/OpenGL/include
|
||||
/opt/graphics/OpenGL/contrib/libglut
|
||||
${_GLUT_INC_DIR}
|
||||
)
|
||||
|
||||
find_library( GLUT_glut_LIBRARY glut
|
||||
/usr/openwin/lib
|
||||
${_GLUT_glut_LIB_DIR}
|
||||
)
|
||||
mark_as_advanced(GLUT_glut_LIBRARY)
|
||||
|
||||
unset(_GLUT_INC_DIR)
|
||||
unset(_GLUT_glut_LIB_DIR)
|
||||
|
||||
endif ()
|
||||
|
||||
endif ()
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GLUT REQUIRED_VARS GLUT_glut_LIBRARY GLUT_INCLUDE_DIR)
|
||||
|
||||
if (GLUT_FOUND)
|
||||
# Is -lXi and -lXmu required on all platforms that have it?
|
||||
# If not, we need some way to figure out what platform we are on.
|
||||
set( GLUT_LIBRARIES
|
||||
${GLUT_glut_LIBRARY}
|
||||
)
|
||||
foreach(v GLUT_Xmu_LIBRARY GLUT_Xi_LIBRARY GLUT_cocoa_LIBRARY)
|
||||
if(${v})
|
||||
list(APPEND GLUT_LIBRARIES ${${v}})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(NOT TARGET GLUT::GLUT)
|
||||
add_library(GLUT::GLUT UNKNOWN IMPORTED)
|
||||
set_target_properties(GLUT::GLUT PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GLUT_INCLUDE_DIR}")
|
||||
if(GLUT_glut_LIBRARY MATCHES "/([^/]+)\\.framework$")
|
||||
set(_glut_glut "${GLUT_glut_LIBRARY}/${CMAKE_MATCH_1}")
|
||||
if(EXISTS "${_glut_glut}.tbd")
|
||||
string(APPEND _glut_glut ".tbd")
|
||||
endif()
|
||||
set_target_properties(GLUT::GLUT PROPERTIES
|
||||
IMPORTED_LOCATION "${_glut_glut}")
|
||||
else()
|
||||
if(GLUT_glut_LIBRARY_RELEASE)
|
||||
set_property(TARGET GLUT::GLUT APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS RELEASE)
|
||||
set_target_properties(GLUT::GLUT PROPERTIES
|
||||
IMPORTED_LOCATION_RELEASE "${GLUT_glut_LIBRARY_RELEASE}")
|
||||
endif()
|
||||
|
||||
if(GLUT_glut_LIBRARY_DEBUG)
|
||||
set_property(TARGET GLUT::GLUT APPEND PROPERTY
|
||||
IMPORTED_CONFIGURATIONS DEBUG)
|
||||
set_target_properties(GLUT::GLUT PROPERTIES
|
||||
IMPORTED_LOCATION_DEBUG "${GLUT_glut_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
|
||||
if(NOT GLUT_glut_LIBRARY_RELEASE AND NOT GLUT_glut_LIBRARY_DEBUG)
|
||||
set_property(TARGET GLUT::GLUT APPEND PROPERTY
|
||||
IMPORTED_LOCATION "${GLUT_glut_LIBRARY}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(TARGET GLUT::Xmu)
|
||||
set_property(TARGET GLUT::GLUT APPEND
|
||||
PROPERTY INTERFACE_LINK_LIBRARIES GLUT::Xmu)
|
||||
endif()
|
||||
|
||||
if(TARGET GLUT::Xi)
|
||||
set_property(TARGET GLUT::GLUT APPEND
|
||||
PROPERTY INTERFACE_LINK_LIBRARIES GLUT::Xi)
|
||||
endif()
|
||||
|
||||
if(TARGET GLUT::Cocoa)
|
||||
set_property(TARGET GLUT::GLUT APPEND
|
||||
PROPERTY INTERFACE_LINK_LIBRARIES GLUT::Cocoa)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#The following deprecated settings are for backwards compatibility with CMake1.4
|
||||
set (GLUT_LIBRARY ${GLUT_LIBRARIES})
|
||||
set (GLUT_INCLUDE_PATH ${GLUT_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(GLUT_INCLUDE_DIR)
|
|
@ -1,62 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindIntl
|
||||
--------
|
||||
|
||||
.. versionadded:: 3.2
|
||||
|
||||
Find the Gettext libintl headers and libraries.
|
||||
|
||||
This module reports information about the Gettext libintl
|
||||
installation in several variables. General variables::
|
||||
|
||||
Intl_FOUND - true if the libintl headers and libraries were found
|
||||
Intl_INCLUDE_DIRS - the directory containing the libintl headers
|
||||
Intl_LIBRARIES - libintl libraries to be linked
|
||||
|
||||
The following cache variables may also be set::
|
||||
|
||||
Intl_INCLUDE_DIR - the directory containing the libintl headers
|
||||
Intl_LIBRARY - the libintl library (if any)
|
||||
|
||||
.. note::
|
||||
On some platforms, such as Linux with GNU libc, the gettext
|
||||
functions are present in the C standard library and libintl
|
||||
is not required. ``Intl_LIBRARIES`` will be empty in this
|
||||
case.
|
||||
|
||||
.. note::
|
||||
If you wish to use the Gettext tools (``msgmerge``,
|
||||
``msgfmt``, etc.), use :module:`FindGettext`.
|
||||
#]=======================================================================]
|
||||
|
||||
|
||||
# Written by Roger Leigh <rleigh@codelibre.net>
|
||||
|
||||
# Find include directory
|
||||
find_path(Intl_INCLUDE_DIR
|
||||
NAMES "libintl.h"
|
||||
DOC "libintl include directory")
|
||||
mark_as_advanced(Intl_INCLUDE_DIR)
|
||||
|
||||
# Find all Intl libraries
|
||||
find_library(Intl_LIBRARY "intl" NAMES_PER_DIR
|
||||
DOC "libintl libraries (if not in the C library)")
|
||||
mark_as_advanced(Intl_LIBRARY)
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Intl
|
||||
FOUND_VAR Intl_FOUND
|
||||
REQUIRED_VARS Intl_INCLUDE_DIR
|
||||
FAIL_MESSAGE "Failed to find Gettext libintl")
|
||||
|
||||
if(Intl_FOUND)
|
||||
set(Intl_INCLUDE_DIRS "${Intl_INCLUDE_DIR}")
|
||||
if(Intl_LIBRARY)
|
||||
set(Intl_LIBRARIES "${Intl_LIBRARY}")
|
||||
else()
|
||||
unset(Intl_LIBRARIES)
|
||||
endif()
|
||||
endif()
|
|
@ -1,405 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindJNI
|
||||
-------
|
||||
|
||||
Find Java Native Interface (JNI) libraries.
|
||||
|
||||
JNI enables Java code running in a Java Virtual Machine (JVM) to call
|
||||
and be called by native applications and libraries written in other
|
||||
languages such as C, C++.
|
||||
|
||||
This module finds if Java is installed and determines where the
|
||||
include files and libraries are. It also determines what the name of
|
||||
the library is. The caller may set variable ``JAVA_HOME`` to specify a
|
||||
Java installation prefix explicitly.
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module sets the following result variables:
|
||||
|
||||
``JNI_INCLUDE_DIRS``
|
||||
the include dirs to use
|
||||
``JNI_LIBRARIES``
|
||||
the libraries to use (JAWT and JVM)
|
||||
``JNI_FOUND``
|
||||
TRUE if JNI headers and libraries were found.
|
||||
|
||||
Cache Variables
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
The following cache variables are also available to set or use:
|
||||
|
||||
``JAVA_AWT_LIBRARY``
|
||||
the path to the Java AWT Native Interface (JAWT) library
|
||||
``JAVA_JVM_LIBRARY``
|
||||
the path to the Java Virtual Machine (JVM) library
|
||||
``JAVA_INCLUDE_PATH``
|
||||
the include path to jni.h
|
||||
``JAVA_INCLUDE_PATH2``
|
||||
the include path to jni_md.h and jniport.h
|
||||
``JAVA_AWT_INCLUDE_PATH``
|
||||
the include path to jawt.h
|
||||
#]=======================================================================]
|
||||
|
||||
# Expand {libarch} occurrences to java_libarch subdirectory(-ies) and set ${_var}
|
||||
macro(java_append_library_directories _var)
|
||||
# Determine java arch-specific library subdir
|
||||
# Mostly based on openjdk/jdk/make/common/shared/Platform.gmk as of openjdk
|
||||
# 1.6.0_18 + icedtea patches. However, it would be much better to base the
|
||||
# guess on the first part of the GNU config.guess platform triplet.
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
|
||||
if(CMAKE_LIBRARY_ARCHITECTURE STREQUAL "x86_64-linux-gnux32")
|
||||
set(_java_libarch "x32" "amd64" "i386")
|
||||
else()
|
||||
set(_java_libarch "amd64" "i386")
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
|
||||
set(_java_libarch "i386")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
|
||||
set(_java_libarch "arm64" "aarch64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^alpha")
|
||||
set(_java_libarch "alpha")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
|
||||
# Subdir is "arm" for both big-endian (arm) and little-endian (armel).
|
||||
set(_java_libarch "arm" "aarch32")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
|
||||
# mips* machines are bi-endian mostly so processor does not tell
|
||||
# endianness of the underlying system.
|
||||
set(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}"
|
||||
"mips" "mipsel" "mipseb" "mipsr6" "mipsr6el"
|
||||
"mips64" "mips64el" "mips64r6" "mips64r6el"
|
||||
"mipsn32" "mipsn32el" "mipsn32r6" "mipsn32r6el")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64le")
|
||||
set(_java_libarch "ppc64" "ppc64le")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64")
|
||||
set(_java_libarch "ppc64" "ppc")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)")
|
||||
set(_java_libarch "ppc" "ppc64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^sparc")
|
||||
# Both flavours can run on the same processor
|
||||
set(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}" "sparc" "sparcv9")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(parisc|hppa)")
|
||||
set(_java_libarch "parisc" "parisc64")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^s390")
|
||||
# s390 binaries can run on s390x machines
|
||||
set(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}" "s390" "s390x")
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^sh")
|
||||
set(_java_libarch "sh")
|
||||
else()
|
||||
set(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}")
|
||||
endif()
|
||||
|
||||
# Append default list architectures if CMAKE_SYSTEM_PROCESSOR was empty or
|
||||
# system is non-Linux (where the code above has not been well tested)
|
||||
if(NOT _java_libarch OR NOT (CMAKE_SYSTEM_NAME MATCHES "Linux"))
|
||||
list(APPEND _java_libarch "i386" "amd64" "ppc")
|
||||
endif()
|
||||
|
||||
# Sometimes ${CMAKE_SYSTEM_PROCESSOR} is added to the list to prefer
|
||||
# current value to a hardcoded list. Remove possible duplicates.
|
||||
list(REMOVE_DUPLICATES _java_libarch)
|
||||
|
||||
foreach(_path ${ARGN})
|
||||
if(_path MATCHES "{libarch}")
|
||||
foreach(_libarch ${_java_libarch})
|
||||
string(REPLACE "{libarch}" "${_libarch}" _newpath "${_path}")
|
||||
if(EXISTS ${_newpath})
|
||||
list(APPEND ${_var} "${_newpath}")
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
if(EXISTS ${_path})
|
||||
list(APPEND ${_var} "${_path}")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/CMakeFindJavaCommon.cmake)
|
||||
|
||||
# Save CMAKE_FIND_FRAMEWORK
|
||||
if(DEFINED CMAKE_FIND_FRAMEWORK)
|
||||
set(_JNI_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK})
|
||||
else()
|
||||
unset(_JNI_CMAKE_FIND_FRAMEWORK)
|
||||
endif()
|
||||
|
||||
if(_JAVA_HOME_EXPLICIT)
|
||||
set(CMAKE_FIND_FRAMEWORK NEVER)
|
||||
endif()
|
||||
|
||||
set(JAVA_AWT_LIBRARY_DIRECTORIES)
|
||||
if(_JAVA_HOME)
|
||||
JAVA_APPEND_LIBRARY_DIRECTORIES(JAVA_AWT_LIBRARY_DIRECTORIES
|
||||
${_JAVA_HOME}/jre/lib/{libarch}
|
||||
${_JAVA_HOME}/jre/lib
|
||||
${_JAVA_HOME}/lib/{libarch}
|
||||
${_JAVA_HOME}/lib
|
||||
${_JAVA_HOME}
|
||||
)
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
set (_JNI_HINTS)
|
||||
execute_process(COMMAND REG QUERY HKLM\\SOFTWARE\\JavaSoft\\JDK
|
||||
RESULT_VARIABLE _JNI_RESULT
|
||||
OUTPUT_VARIABLE _JNI_VERSIONS
|
||||
ERROR_QUIET)
|
||||
if (NOT _JNI_RESULT)
|
||||
string (REGEX MATCHALL "HKEY_LOCAL_MACHINE\\\\SOFTWARE\\\\JavaSoft\\\\JDK\\\\[0-9.]+" _JNI_VERSIONS "${_JNI_VERSIONS}")
|
||||
if (_JNI_VERSIONS)
|
||||
# sort versions. Most recent first
|
||||
## handle version 9 apart from other versions to get correct ordering
|
||||
set (_JNI_V9 ${_JNI_VERSIONS})
|
||||
list (FILTER _JNI_VERSIONS EXCLUDE REGEX "JDK\\\\9")
|
||||
list (SORT _JNI_VERSIONS)
|
||||
list (REVERSE _JNI_VERSIONS)
|
||||
list (FILTER _JNI_V9 INCLUDE REGEX "JDK\\\\9")
|
||||
list (SORT _JNI_V9)
|
||||
list (REVERSE _JNI_V9)
|
||||
list (APPEND _JNI_VERSIONS ${_JNI_V9})
|
||||
foreach (_JNI_HINT IN LISTS _JNI_VERSIONS)
|
||||
list(APPEND _JNI_HINTS "[${_JNI_HINT};JavaHome]")
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
foreach (_JNI_HINT IN LISTS _JNI_HINTS)
|
||||
list(APPEND JAVA_AWT_LIBRARY_DIRECTORIES "${_JNI_HINT}/lib")
|
||||
endforeach()
|
||||
|
||||
get_filename_component(java_install_version
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit;CurrentVersion]" NAME)
|
||||
|
||||
list(APPEND JAVA_AWT_LIBRARY_DIRECTORIES
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/lib"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/lib"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(_JNI_JAVA_DIRECTORIES_BASE
|
||||
/usr/lib/jvm/java
|
||||
/usr/lib/java
|
||||
/usr/lib/jvm
|
||||
/usr/local/lib/java
|
||||
/usr/local/share/java
|
||||
/usr/lib/j2sdk1.4-sun
|
||||
/usr/lib/j2sdk1.5-sun
|
||||
/opt/sun-jdk-1.5.0.04
|
||||
/usr/lib/jvm/java-6-sun
|
||||
/usr/lib/jvm/java-1.5.0-sun
|
||||
/usr/lib/jvm/java-6-sun-1.6.0.00 # can this one be removed according to #8821 ? Alex
|
||||
/usr/lib/jvm/java-6-openjdk
|
||||
/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0 # fedora
|
||||
# Debian specific paths for default JVM
|
||||
/usr/lib/jvm/default-java
|
||||
# Arch Linux specific paths for default JVM
|
||||
/usr/lib/jvm/default
|
||||
# Ubuntu specific paths for default JVM
|
||||
/usr/lib/jvm/java-11-openjdk-{libarch} # Ubuntu 18.04 LTS
|
||||
/usr/lib/jvm/java-8-openjdk-{libarch} # Ubuntu 15.10
|
||||
/usr/lib/jvm/java-7-openjdk-{libarch} # Ubuntu 15.10
|
||||
/usr/lib/jvm/java-6-openjdk-{libarch} # Ubuntu 15.10
|
||||
# OpenBSD specific paths for default JVM
|
||||
/usr/local/jdk-1.7.0
|
||||
/usr/local/jre-1.7.0
|
||||
/usr/local/jdk-1.6.0
|
||||
/usr/local/jre-1.6.0
|
||||
# FreeBSD specific paths for default JVM
|
||||
/usr/local/openjdk15
|
||||
/usr/local/openjdk14
|
||||
/usr/local/openjdk13
|
||||
/usr/local/openjdk12
|
||||
/usr/local/openjdk11
|
||||
/usr/local/openjdk8
|
||||
/usr/local/openjdk7
|
||||
# SuSE specific paths for default JVM
|
||||
/usr/lib64/jvm/java
|
||||
/usr/lib64/jvm/jre
|
||||
)
|
||||
|
||||
set(_JNI_JAVA_AWT_LIBRARY_TRIES)
|
||||
set(_JNI_JAVA_INCLUDE_TRIES)
|
||||
|
||||
foreach(_java_dir IN LISTS _JNI_JAVA_DIRECTORIES_BASE)
|
||||
list(APPEND _JNI_JAVA_AWT_LIBRARY_TRIES
|
||||
${_java_dir}/jre/lib/{libarch}
|
||||
${_java_dir}/jre/lib
|
||||
${_java_dir}/lib/{libarch}
|
||||
${_java_dir}/lib
|
||||
${_java_dir}
|
||||
)
|
||||
list(APPEND _JNI_JAVA_INCLUDE_TRIES
|
||||
${_java_dir}/include
|
||||
)
|
||||
endforeach()
|
||||
|
||||
JAVA_APPEND_LIBRARY_DIRECTORIES(JAVA_AWT_LIBRARY_DIRECTORIES
|
||||
${_JNI_JAVA_AWT_LIBRARY_TRIES}
|
||||
)
|
||||
|
||||
set(JAVA_JVM_LIBRARY_DIRECTORIES)
|
||||
foreach(dir ${JAVA_AWT_LIBRARY_DIRECTORIES})
|
||||
list(APPEND JAVA_JVM_LIBRARY_DIRECTORIES
|
||||
"${dir}"
|
||||
"${dir}/client"
|
||||
"${dir}/server"
|
||||
# IBM SDK, Java Technology Edition, specific paths
|
||||
"${dir}/j9vm"
|
||||
"${dir}/default"
|
||||
)
|
||||
endforeach()
|
||||
|
||||
set(JAVA_AWT_INCLUDE_DIRECTORIES)
|
||||
if(_JAVA_HOME)
|
||||
list(APPEND JAVA_AWT_INCLUDE_DIRECTORIES ${_JAVA_HOME}/include)
|
||||
endif()
|
||||
if (WIN32)
|
||||
foreach (_JNI_HINT IN LISTS _JNI_HINTS)
|
||||
list(APPEND JAVA_AWT_INCLUDE_DIRECTORIES "${_JNI_HINT}/include")
|
||||
endforeach()
|
||||
list(APPEND JAVA_AWT_INCLUDE_DIRECTORIES
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/include"
|
||||
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\${java_install_version};JavaHome]/include"
|
||||
)
|
||||
endif()
|
||||
|
||||
JAVA_APPEND_LIBRARY_DIRECTORIES(JAVA_AWT_INCLUDE_DIRECTORIES
|
||||
${_JNI_JAVA_INCLUDE_TRIES}
|
||||
)
|
||||
|
||||
foreach(JAVA_PROG "${JAVA_RUNTIME}" "${JAVA_COMPILE}" "${JAVA_ARCHIVE}")
|
||||
get_filename_component(jpath "${JAVA_PROG}" PATH)
|
||||
foreach(JAVA_INC_PATH ../include ../java/include ../share/java/include)
|
||||
if(EXISTS ${jpath}/${JAVA_INC_PATH})
|
||||
list(APPEND JAVA_AWT_INCLUDE_DIRECTORIES "${jpath}/${JAVA_INC_PATH}")
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(JAVA_LIB_PATH
|
||||
../lib ../jre/lib ../jre/lib/i386
|
||||
../java/lib ../java/jre/lib ../java/jre/lib/i386
|
||||
../share/java/lib ../share/java/jre/lib ../share/java/jre/lib/i386)
|
||||
if(EXISTS ${jpath}/${JAVA_LIB_PATH})
|
||||
list(APPEND JAVA_AWT_LIBRARY_DIRECTORIES "${jpath}/${JAVA_LIB_PATH}")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
if(APPLE)
|
||||
if(CMAKE_FIND_FRAMEWORK STREQUAL "ONLY")
|
||||
set(_JNI_SEARCHES FRAMEWORK)
|
||||
elseif(CMAKE_FIND_FRAMEWORK STREQUAL "NEVER")
|
||||
set(_JNI_SEARCHES NORMAL)
|
||||
elseif(CMAKE_FIND_FRAMEWORK STREQUAL "LAST")
|
||||
set(_JNI_SEARCHES NORMAL FRAMEWORK)
|
||||
else()
|
||||
set(_JNI_SEARCHES FRAMEWORK NORMAL)
|
||||
endif()
|
||||
set(_JNI_FRAMEWORK_JVM NAMES JavaVM)
|
||||
set(_JNI_FRAMEWORK_JAWT "${_JNI_FRAMEWORK_JVM}")
|
||||
else()
|
||||
set(_JNI_SEARCHES NORMAL)
|
||||
endif()
|
||||
|
||||
set(_JNI_NORMAL_JVM
|
||||
NAMES jvm
|
||||
PATHS ${JAVA_JVM_LIBRARY_DIRECTORIES}
|
||||
)
|
||||
|
||||
set(_JNI_NORMAL_JAWT
|
||||
NAMES jawt
|
||||
PATHS ${JAVA_AWT_LIBRARY_DIRECTORIES}
|
||||
)
|
||||
|
||||
foreach(search ${_JNI_SEARCHES})
|
||||
find_library(JAVA_JVM_LIBRARY ${_JNI_${search}_JVM})
|
||||
find_library(JAVA_AWT_LIBRARY ${_JNI_${search}_JAWT})
|
||||
if(JAVA_JVM_LIBRARY)
|
||||
break()
|
||||
endif()
|
||||
endforeach()
|
||||
unset(_JNI_SEARCHES)
|
||||
unset(_JNI_FRAMEWORK_JVM)
|
||||
unset(_JNI_FRAMEWORK_JAWT)
|
||||
unset(_JNI_NORMAL_JVM)
|
||||
unset(_JNI_NORMAL_JAWT)
|
||||
|
||||
# Find headers matching the library.
|
||||
if("${JAVA_JVM_LIBRARY};${JAVA_AWT_LIBRARY};" MATCHES "(/JavaVM.framework|-framework JavaVM);")
|
||||
set(CMAKE_FIND_FRAMEWORK ONLY)
|
||||
else()
|
||||
set(CMAKE_FIND_FRAMEWORK NEVER)
|
||||
endif()
|
||||
|
||||
# add in the include path
|
||||
find_path(JAVA_INCLUDE_PATH jni.h
|
||||
${JAVA_AWT_INCLUDE_DIRECTORIES}
|
||||
)
|
||||
|
||||
find_path(JAVA_INCLUDE_PATH2 NAMES jni_md.h jniport.h
|
||||
PATHS
|
||||
${JAVA_INCLUDE_PATH}
|
||||
${JAVA_INCLUDE_PATH}/darwin
|
||||
${JAVA_INCLUDE_PATH}/win32
|
||||
${JAVA_INCLUDE_PATH}/linux
|
||||
${JAVA_INCLUDE_PATH}/freebsd
|
||||
${JAVA_INCLUDE_PATH}/openbsd
|
||||
${JAVA_INCLUDE_PATH}/solaris
|
||||
${JAVA_INCLUDE_PATH}/hp-ux
|
||||
${JAVA_INCLUDE_PATH}/alpha
|
||||
${JAVA_INCLUDE_PATH}/aix
|
||||
)
|
||||
|
||||
find_path(JAVA_AWT_INCLUDE_PATH jawt.h
|
||||
${JAVA_INCLUDE_PATH}
|
||||
)
|
||||
|
||||
# Restore CMAKE_FIND_FRAMEWORK
|
||||
if(DEFINED _JNI_CMAKE_FIND_FRAMEWORK)
|
||||
set(CMAKE_FIND_FRAMEWORK ${_JNI_CMAKE_FIND_FRAMEWORK})
|
||||
unset(_JNI_CMAKE_FIND_FRAMEWORK)
|
||||
else()
|
||||
unset(CMAKE_FIND_FRAMEWORK)
|
||||
endif()
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(JNI DEFAULT_MSG JAVA_AWT_LIBRARY
|
||||
JAVA_JVM_LIBRARY
|
||||
JAVA_INCLUDE_PATH
|
||||
JAVA_INCLUDE_PATH2
|
||||
JAVA_AWT_INCLUDE_PATH)
|
||||
|
||||
mark_as_advanced(
|
||||
JAVA_AWT_LIBRARY
|
||||
JAVA_JVM_LIBRARY
|
||||
JAVA_AWT_INCLUDE_PATH
|
||||
JAVA_INCLUDE_PATH
|
||||
JAVA_INCLUDE_PATH2
|
||||
)
|
||||
|
||||
set(JNI_LIBRARIES
|
||||
${JAVA_AWT_LIBRARY}
|
||||
${JAVA_JVM_LIBRARY}
|
||||
)
|
||||
|
||||
set(JNI_INCLUDE_DIRS
|
||||
${JAVA_INCLUDE_PATH}
|
||||
${JAVA_INCLUDE_PATH2}
|
||||
${JAVA_AWT_INCLUDE_PATH}
|
||||
)
|
|
@ -1,47 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindJasper
|
||||
----------
|
||||
|
||||
Try to find the Jasper JPEG2000 library
|
||||
|
||||
Once done this will define
|
||||
|
||||
::
|
||||
|
||||
JASPER_FOUND - system has Jasper
|
||||
JASPER_INCLUDE_DIR - the Jasper include directory
|
||||
JASPER_LIBRARIES - the libraries needed to use Jasper
|
||||
JASPER_VERSION_STRING - the version of Jasper found (since CMake 2.8.8)
|
||||
#]=======================================================================]
|
||||
|
||||
find_path(JASPER_INCLUDE_DIR jasper/jasper.h)
|
||||
|
||||
if (NOT JASPER_LIBRARIES)
|
||||
find_package(JPEG)
|
||||
|
||||
find_library(JASPER_LIBRARY_RELEASE NAMES jasper libjasper)
|
||||
find_library(JASPER_LIBRARY_DEBUG NAMES jasperd)
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake)
|
||||
SELECT_LIBRARY_CONFIGURATIONS(JASPER)
|
||||
endif ()
|
||||
|
||||
if (JASPER_INCLUDE_DIR AND EXISTS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h")
|
||||
file(STRINGS "${JASPER_INCLUDE_DIR}/jasper/jas_config.h" jasper_version_str REGEX "^#define[\t ]+JAS_VERSION[\t ]+\".*\".*")
|
||||
|
||||
string(REGEX REPLACE "^#define[\t ]+JAS_VERSION[\t ]+\"([^\"]+)\".*" "\\1" JASPER_VERSION_STRING "${jasper_version_str}")
|
||||
endif ()
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Jasper
|
||||
REQUIRED_VARS JASPER_LIBRARIES JASPER_INCLUDE_DIR JPEG_LIBRARIES
|
||||
VERSION_VAR JASPER_VERSION_STRING)
|
||||
|
||||
if (JASPER_FOUND)
|
||||
set(JASPER_LIBRARIES ${JASPER_LIBRARIES} ${JPEG_LIBRARIES} )
|
||||
endif ()
|
||||
|
||||
mark_as_advanced(JASPER_INCLUDE_DIR)
|
|
@ -1,555 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindLAPACK
|
||||
----------
|
||||
|
||||
Find Linear Algebra PACKage (LAPACK) library
|
||||
|
||||
This module finds an installed Fortran library that implements the
|
||||
LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).
|
||||
|
||||
The approach follows that taken for the ``autoconf`` macro file,
|
||||
``acx_lapack.m4`` (distributed at
|
||||
http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).
|
||||
|
||||
Input Variables
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
The following variables may be set to influence this module's behavior:
|
||||
|
||||
``BLA_STATIC``
|
||||
if ``ON`` use static linkage
|
||||
|
||||
``BLA_VENDOR``
|
||||
If set, checks only the specified vendor, if not set checks all the
|
||||
possibilities. List of vendors valid in this module:
|
||||
|
||||
* ``FlexiBLAS``
|
||||
* ``OpenBLAS``
|
||||
* ``FLAME``
|
||||
* ``Intel10_32`` (intel mkl v10 32 bit, threaded code)
|
||||
* ``Intel10_64lp`` (intel mkl v10+ 64 bit, threaded code, lp64 model)
|
||||
* ``Intel10_64lp_seq`` (intel mkl v10+ 64 bit, sequential code, lp64 model)
|
||||
* ``Intel10_64ilp`` (intel mkl v10+ 64 bit, threaded code, ilp64 model)
|
||||
* ``Intel10_64ilp_seq`` (intel mkl v10+ 64 bit, sequential code, ilp64 model)
|
||||
* ``Intel10_64_dyn`` (intel mkl v10+ 64 bit, single dynamic library)
|
||||
* ``Intel`` (obsolete versions of mkl 32 and 64 bit)
|
||||
* ``ACML``
|
||||
* ``Apple``
|
||||
* ``NAS``
|
||||
* ``Arm``
|
||||
* ``Arm_mp``
|
||||
* ``Arm_ilp64``
|
||||
* ``Arm_ilp64_mp``
|
||||
* ``Generic``
|
||||
|
||||
``BLA_F95``
|
||||
if ``ON`` tries to find the BLAS95/LAPACK95 interfaces
|
||||
|
||||
Imported targets
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines the following :prop_tgt:`IMPORTED` target:
|
||||
|
||||
``LAPACK::LAPACK``
|
||||
The libraries to use for LAPACK, if found.
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines the following variables:
|
||||
|
||||
``LAPACK_FOUND``
|
||||
library implementing the LAPACK interface is found
|
||||
``LAPACK_LINKER_FLAGS``
|
||||
uncached list of required linker flags (excluding ``-l`` and ``-L``).
|
||||
``LAPACK_LIBRARIES``
|
||||
uncached list of libraries (using full path name) to link against
|
||||
to use LAPACK
|
||||
``LAPACK95_LIBRARIES``
|
||||
uncached list of libraries (using full path name) to link against
|
||||
to use LAPACK95
|
||||
``LAPACK95_FOUND``
|
||||
library implementing the LAPACK95 interface is found
|
||||
|
||||
.. note::
|
||||
|
||||
C, CXX or Fortran must be enabled to detect a BLAS/LAPACK library.
|
||||
C or CXX must be enabled to use Intel Math Kernel Library (MKL).
|
||||
|
||||
For example, to use Intel MKL libraries and/or Intel compiler:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set(BLA_VENDOR Intel10_64lp)
|
||||
find_package(LAPACK)
|
||||
#]=======================================================================]
|
||||
|
||||
if(CMAKE_Fortran_COMPILER_LOADED)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/CheckFortranFunctionExists.cmake)
|
||||
else()
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/CheckFunctionExists.cmake)
|
||||
endif()
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/CMakePushCheckState.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
|
||||
macro(_lapack_find_library_setup)
|
||||
cmake_push_check_state()
|
||||
set(CMAKE_REQUIRED_QUIET ${LAPACK_FIND_QUIETLY})
|
||||
|
||||
set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
if(BLA_STATIC)
|
||||
if(WIN32)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
else()
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
endif()
|
||||
else()
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
# for ubuntu's libblas3gf and liblapack3gf packages
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(_lapack_find_library_teardown)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
unset(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
|
||||
cmake_pop_check_state()
|
||||
endmacro()
|
||||
|
||||
# TODO: move this stuff to a separate module
|
||||
|
||||
macro(CHECK_LAPACK_LIBRARIES LIBRARIES _prefix _name _flags _list _threadlibs _addlibdir _subdirs _blas)
|
||||
# This macro checks for the existence of the combination of fortran libraries
|
||||
# given by _list. If the combination is found, this macro checks (using the
|
||||
# Check_Fortran_Function_Exists macro) whether can link against that library
|
||||
# combination using the name of a routine given by _name using the linker
|
||||
# flags given by _flags. If the combination of libraries is found and passes
|
||||
# the link test, LIBRARIES is set to the list of complete library paths that
|
||||
# have been found. Otherwise, LIBRARIES is set to FALSE.
|
||||
|
||||
# N.B. _prefix is the prefix applied to the names of all cached variables that
|
||||
# are generated internally and marked advanced by this macro.
|
||||
# _addlibdir is a list of additional search paths. _subdirs is a list of path
|
||||
# suffixes to be used by find_library().
|
||||
|
||||
set(_libraries_work TRUE)
|
||||
set(${LIBRARIES})
|
||||
set(_combined_name)
|
||||
|
||||
set(_extaddlibdir "${_addlibdir}")
|
||||
if(WIN32)
|
||||
list(APPEND _extaddlibdir ENV LIB)
|
||||
elseif(APPLE)
|
||||
list(APPEND _extaddlibdir ENV DYLD_LIBRARY_PATH)
|
||||
else()
|
||||
list(APPEND _extaddlibdir ENV LD_LIBRARY_PATH)
|
||||
endif()
|
||||
list(APPEND _extaddlibdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
|
||||
|
||||
foreach(_library ${_list})
|
||||
if(_library MATCHES "^-Wl,--(start|end)-group$")
|
||||
# Respect linker flags like --start/end-group (required by MKL)
|
||||
set(${LIBRARIES} ${${LIBRARIES}} "${_library}")
|
||||
else()
|
||||
set(_combined_name ${_combined_name}_${_library})
|
||||
if(_libraries_work)
|
||||
find_library(${_prefix}_${_library}_LIBRARY
|
||||
NAMES ${_library}
|
||||
NAMES_PER_DIR
|
||||
PATHS ${_extaddlibdir}
|
||||
PATH_SUFFIXES ${_subdirs}
|
||||
)
|
||||
#message("DEBUG: find_library(${_library}) got ${${_prefix}_${_library}_LIBRARY}")
|
||||
mark_as_advanced(${_prefix}_${_library}_LIBRARY)
|
||||
set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
|
||||
set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
unset(_library)
|
||||
|
||||
if(_libraries_work)
|
||||
# Test this combination of libraries.
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_blas} ${_threadlibs})
|
||||
#message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
|
||||
if(CMAKE_Fortran_COMPILER_LOADED)
|
||||
check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS)
|
||||
else()
|
||||
check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
|
||||
endif()
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
|
||||
endif()
|
||||
|
||||
if(_libraries_work)
|
||||
if("${_list}${_blas}" STREQUAL "")
|
||||
set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
|
||||
else()
|
||||
set(${LIBRARIES} ${${LIBRARIES}} ${_blas} ${_threadlibs})
|
||||
endif()
|
||||
else()
|
||||
set(${LIBRARIES} FALSE)
|
||||
endif()
|
||||
|
||||
unset(_extaddlibdir)
|
||||
unset(_libraries_work)
|
||||
unset(_combined_name)
|
||||
#message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
|
||||
endmacro()
|
||||
|
||||
macro(_lapack_find_dependency dep)
|
||||
set(_lapack_quiet_arg)
|
||||
if(LAPACK_FIND_QUIETLY)
|
||||
set(_lapack_quiet_arg QUIET)
|
||||
endif()
|
||||
set(_lapack_required_arg)
|
||||
if(LAPACK_FIND_REQUIRED)
|
||||
set(_lapack_required_arg REQUIRED)
|
||||
endif()
|
||||
find_package(${dep} ${ARGN}
|
||||
${_lapack_quiet_arg}
|
||||
${_lapack_required_arg}
|
||||
)
|
||||
if (NOT ${dep}_FOUND)
|
||||
set(LAPACK_NOT_FOUND_MESSAGE "LAPACK could not be found because dependency ${dep} could not be found.")
|
||||
endif()
|
||||
|
||||
set(_lapack_required_arg)
|
||||
set(_lapack_quiet_arg)
|
||||
endmacro()
|
||||
|
||||
_lapack_find_library_setup()
|
||||
|
||||
set(LAPACK_LINKER_FLAGS)
|
||||
set(LAPACK_LIBRARIES)
|
||||
set(LAPACK95_LIBRARIES)
|
||||
|
||||
# Check the language being used
|
||||
if(NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED))
|
||||
set(LAPACK_NOT_FOUND_MESSAGE
|
||||
"FindLAPACK requires Fortran, C, or C++ to be enabled.")
|
||||
endif()
|
||||
|
||||
# Load BLAS
|
||||
if(NOT LAPACK_NOT_FOUND_MESSAGE)
|
||||
_lapack_find_dependency(BLAS)
|
||||
endif()
|
||||
|
||||
# Search for different LAPACK distributions if BLAS is found
|
||||
if(NOT LAPACK_NOT_FOUND_MESSAGE)
|
||||
set(LAPACK_LINKER_FLAGS ${BLAS_LINKER_FLAGS})
|
||||
if(NOT $ENV{BLA_VENDOR} STREQUAL "")
|
||||
set(BLA_VENDOR $ENV{BLA_VENDOR})
|
||||
elseif(NOT BLA_VENDOR)
|
||||
set(BLA_VENDOR "All")
|
||||
endif()
|
||||
|
||||
# LAPACK in the Intel MKL 10+ library?
|
||||
if(NOT LAPACK_LIBRARIES
|
||||
AND (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
|
||||
AND (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED))
|
||||
# System-specific settings
|
||||
if(NOT WIN32)
|
||||
set(LAPACK_mkl_LM "-lm")
|
||||
set(LAPACK_mkl_LDL "-ldl")
|
||||
endif()
|
||||
|
||||
_lapack_find_dependency(Threads)
|
||||
|
||||
if(BLA_VENDOR MATCHES "_64ilp")
|
||||
set(LAPACK_mkl_ILP_MODE "ilp64")
|
||||
else()
|
||||
set(LAPACK_mkl_ILP_MODE "lp64")
|
||||
endif()
|
||||
|
||||
set(LAPACK_SEARCH_LIBS "")
|
||||
|
||||
if(BLA_F95)
|
||||
set(LAPACK_mkl_SEARCH_SYMBOL "cheev_f95")
|
||||
set(_LIBRARIES LAPACK95_LIBRARIES)
|
||||
set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
|
||||
|
||||
# old
|
||||
list(APPEND LAPACK_SEARCH_LIBS
|
||||
"mkl_lapack95")
|
||||
# new >= 10.3
|
||||
list(APPEND LAPACK_SEARCH_LIBS
|
||||
"mkl_intel_c")
|
||||
list(APPEND LAPACK_SEARCH_LIBS
|
||||
"mkl_lapack95_${LAPACK_mkl_ILP_MODE}")
|
||||
else()
|
||||
set(LAPACK_mkl_SEARCH_SYMBOL "cheev")
|
||||
set(_LIBRARIES LAPACK_LIBRARIES)
|
||||
set(_BLAS_LIBRARIES ${BLAS_LIBRARIES})
|
||||
|
||||
# old and new >= 10.3
|
||||
list(APPEND LAPACK_SEARCH_LIBS
|
||||
"mkl_lapack")
|
||||
endif()
|
||||
|
||||
# MKL uses a multitude of partially platform-specific subdirectories:
|
||||
if(BLA_VENDOR STREQUAL "Intel10_32")
|
||||
set(LAPACK_mkl_ARCH_NAME "ia32")
|
||||
else()
|
||||
set(LAPACK_mkl_ARCH_NAME "intel64")
|
||||
endif()
|
||||
if(WIN32)
|
||||
set(LAPACK_mkl_OS_NAME "win")
|
||||
elseif(APPLE)
|
||||
set(LAPACK_mkl_OS_NAME "mac")
|
||||
else()
|
||||
set(LAPACK_mkl_OS_NAME "lin")
|
||||
endif()
|
||||
if(DEFINED ENV{MKLROOT})
|
||||
file(TO_CMAKE_PATH "$ENV{MKLROOT}" LAPACK_mkl_MKLROOT)
|
||||
# If MKLROOT points to the subdirectory 'mkl', use the parent directory instead
|
||||
# so we can better detect other relevant libraries in 'compiler' or 'tbb':
|
||||
get_filename_component(LAPACK_mkl_MKLROOT_LAST_DIR "${LAPACK_mkl_MKLROOT}" NAME)
|
||||
if(LAPACK_mkl_MKLROOT_LAST_DIR STREQUAL "mkl")
|
||||
get_filename_component(LAPACK_mkl_MKLROOT "${LAPACK_mkl_MKLROOT}" DIRECTORY)
|
||||
endif()
|
||||
endif()
|
||||
set(LAPACK_mkl_LIB_PATH_SUFFIXES
|
||||
"compiler/lib" "compiler/lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}"
|
||||
"compiler/lib/${LAPACK_mkl_ARCH_NAME}"
|
||||
"mkl/lib" "mkl/lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}"
|
||||
"mkl/lib/${LAPACK_mkl_ARCH_NAME}"
|
||||
"lib/${LAPACK_mkl_ARCH_NAME}_${LAPACK_mkl_OS_NAME}")
|
||||
|
||||
# First try empty lapack libs
|
||||
if(NOT ${_LIBRARIES})
|
||||
check_lapack_libraries(
|
||||
${_LIBRARIES}
|
||||
LAPACK
|
||||
${LAPACK_mkl_SEARCH_SYMBOL}
|
||||
""
|
||||
""
|
||||
"${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}"
|
||||
"${LAPACK_mkl_MKLROOT}"
|
||||
"${LAPACK_mkl_LIB_PATH_SUFFIXES}"
|
||||
"${_BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Then try the search libs
|
||||
foreach(IT ${LAPACK_SEARCH_LIBS})
|
||||
string(REPLACE " " ";" SEARCH_LIBS ${IT})
|
||||
if(NOT ${_LIBRARIES})
|
||||
check_lapack_libraries(
|
||||
${_LIBRARIES}
|
||||
LAPACK
|
||||
${LAPACK_mkl_SEARCH_SYMBOL}
|
||||
""
|
||||
"${SEARCH_LIBS}"
|
||||
"${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}"
|
||||
"${LAPACK_mkl_MKLROOT}"
|
||||
"${LAPACK_mkl_LIB_PATH_SUFFIXES}"
|
||||
"${_BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
unset(LAPACK_mkl_ILP_MODE)
|
||||
unset(LAPACK_mkl_SEARCH_SYMBOL)
|
||||
unset(LAPACK_mkl_LM)
|
||||
unset(LAPACK_mkl_LDL)
|
||||
unset(LAPACK_mkl_MKLROOT)
|
||||
unset(LAPACK_mkl_ARCH_NAME)
|
||||
unset(LAPACK_mkl_OS_NAME)
|
||||
unset(LAPACK_mkl_LIB_PATH_SUFFIXES)
|
||||
endif()
|
||||
|
||||
# gotoblas? (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
|
||||
if(NOT LAPACK_LIBRARIES
|
||||
AND (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All"))
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"goto2"
|
||||
""
|
||||
""
|
||||
""
|
||||
"${BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# FlexiBLAS? (http://www.mpi-magdeburg.mpg.de/mpcsc/software/FlexiBLAS/)
|
||||
if(NOT LAPACK_LIBRARIES
|
||||
AND (BLA_VENDOR STREQUAL "FlexiBLAS" OR BLA_VENDOR STREQUAL "All"))
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"flexiblas"
|
||||
""
|
||||
""
|
||||
""
|
||||
"${BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# OpenBLAS? (http://www.openblas.net)
|
||||
if(NOT LAPACK_LIBRARIES
|
||||
AND (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All"))
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"openblas"
|
||||
""
|
||||
""
|
||||
""
|
||||
"${BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# ArmPL? (https://developer.arm.com/tools-and-software/server-and-hpc/compile/arm-compiler-for-linux/arm-performance-libraries)
|
||||
if(NOT LAPACK_LIBRARIES
|
||||
AND (BLA_VENDOR MATCHES "Arm" OR BLA_VENDOR STREQUAL "All"))
|
||||
# Check for 64bit Integer support
|
||||
if(BLA_VENDOR MATCHES "_ilp64")
|
||||
set(LAPACK_armpl_LIB "armpl_ilp64")
|
||||
else()
|
||||
set(LAPACK_armpl_LIB "armpl_lp64")
|
||||
endif()
|
||||
|
||||
# Check for OpenMP support, VIA BLA_VENDOR of Arm_mp or Arm_ipl64_mp
|
||||
if(BLA_VENDOR MATCHES "_mp")
|
||||
set(LAPACK_armpl_LIB "${LAPACK_armpl_LIB}_mp")
|
||||
endif()
|
||||
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"${LAPACK_armpl_LIB}"
|
||||
""
|
||||
""
|
||||
""
|
||||
"${BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# FLAME's blis library? (https://github.com/flame/blis)
|
||||
if(NOT LAPACK_LIBRARIES
|
||||
AND (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All"))
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"flame"
|
||||
""
|
||||
""
|
||||
""
|
||||
"${BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# BLAS in acml library?
|
||||
if(BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
|
||||
if(BLAS_LIBRARIES MATCHES ".+acml.+")
|
||||
set(LAPACK_LIBRARIES ${BLAS_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Apple LAPACK library?
|
||||
if(NOT LAPACK_LIBRARIES
|
||||
AND (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All"))
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"Accelerate"
|
||||
""
|
||||
""
|
||||
""
|
||||
"${BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Apple NAS (vecLib) library?
|
||||
if(NOT LAPACK_LIBRARIES
|
||||
AND (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All"))
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"vecLib"
|
||||
""
|
||||
""
|
||||
""
|
||||
"${BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Generic LAPACK library?
|
||||
if(NOT LAPACK_LIBRARIES
|
||||
AND (BLA_VENDOR STREQUAL "Generic"
|
||||
OR BLA_VENDOR STREQUAL "ATLAS"
|
||||
OR BLA_VENDOR STREQUAL "All"))
|
||||
check_lapack_libraries(
|
||||
LAPACK_LIBRARIES
|
||||
LAPACK
|
||||
cheev
|
||||
""
|
||||
"lapack"
|
||||
""
|
||||
""
|
||||
""
|
||||
"${BLAS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(BLA_F95)
|
||||
set(LAPACK_LIBRARIES "${LAPACK95_LIBRARIES}")
|
||||
endif()
|
||||
|
||||
if(LAPACK_NOT_FOUND_MESSAGE)
|
||||
set(LAPACK_NOT_FOUND_MESSAGE
|
||||
REASON_FAILURE_MESSAGE ${LAPACK_NOT_FOUND_MESSAGE})
|
||||
endif()
|
||||
find_package_handle_standard_args(LAPACK REQUIRED_VARS LAPACK_LIBRARIES
|
||||
${LAPACK_NOT_FOUND_MESSAGE})
|
||||
unset(LAPACK_NOT_FOUND_MESSAGE)
|
||||
|
||||
if(BLA_F95)
|
||||
set(LAPACK95_FOUND ${LAPACK_FOUND})
|
||||
endif()
|
||||
|
||||
# On compilers that implicitly link LAPACK (such as ftn, cc, and CC on Cray HPC machines)
|
||||
# we used a placeholder for empty LAPACK_LIBRARIES to get through our logic above.
|
||||
if(LAPACK_LIBRARIES STREQUAL "LAPACK_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
|
||||
set(LAPACK_LIBRARIES "")
|
||||
endif()
|
||||
|
||||
if(LAPACK_FOUND AND NOT TARGET LAPACK::LAPACK)
|
||||
add_library(LAPACK::LAPACK INTERFACE IMPORTED)
|
||||
set(_lapack_libs "${LAPACK_LIBRARIES}")
|
||||
if(_lapack_libs AND TARGET BLAS::BLAS)
|
||||
# remove the ${BLAS_LIBRARIES} from the interface and replace it
|
||||
# with the BLAS::BLAS target
|
||||
list(REMOVE_ITEM _lapack_libs "${BLAS_LIBRARIES}")
|
||||
endif()
|
||||
|
||||
if(_lapack_libs)
|
||||
set_target_properties(LAPACK::LAPACK PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "${_lapack_libs}"
|
||||
)
|
||||
endif()
|
||||
unset(_lapack_libs)
|
||||
endif()
|
||||
|
||||
_lapack_find_library_teardown()
|
|
@ -1,112 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
FindVulkan
|
||||
----------
|
||||
|
||||
.. versionadded:: 3.7
|
||||
|
||||
Find Vulkan, which is a low-overhead, cross-platform 3D graphics
|
||||
and computing API.
|
||||
|
||||
IMPORTED Targets
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines :prop_tgt:`IMPORTED` target ``Vulkan::Vulkan``, if
|
||||
Vulkan has been found.
|
||||
|
||||
This module defines :prop_tgt:`IMPORTED` target ``Vulkan::glslc``, if
|
||||
Vulkan and the GLSLC SPIR-V compiler has been found.
|
||||
|
||||
Result Variables
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
This module defines the following variables::
|
||||
|
||||
Vulkan_FOUND - "True" if Vulkan was found
|
||||
Vulkan_INCLUDE_DIRS - include directories for Vulkan
|
||||
Vulkan_LIBRARIES - link against this library to use Vulkan
|
||||
|
||||
The module will also define three cache variables::
|
||||
|
||||
Vulkan_INCLUDE_DIR - the Vulkan include directory
|
||||
Vulkan_LIBRARY - the path to the Vulkan library
|
||||
Vulkan_GLSLC_EXECUTABLE - the path to the GLSL SPIR-V compiler
|
||||
|
||||
Hints
|
||||
^^^^^
|
||||
|
||||
The ``VULKAN_SDK`` environment variable optionally specifies the
|
||||
location of the Vulkan SDK root directory for the given
|
||||
architecture. It is typically set by sourcing the toplevel
|
||||
``setup-env.sh`` script of the Vulkan SDK directory into the shell
|
||||
environment.
|
||||
|
||||
#]=======================================================================]
|
||||
|
||||
if(WIN32)
|
||||
find_path(Vulkan_INCLUDE_DIR
|
||||
NAMES vulkan/vulkan.h
|
||||
HINTS
|
||||
"$ENV{VULKAN_SDK}/Include"
|
||||
)
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
find_library(Vulkan_LIBRARY
|
||||
NAMES vulkan-1
|
||||
HINTS
|
||||
"$ENV{VULKAN_SDK}/Lib"
|
||||
"$ENV{VULKAN_SDK}/Bin"
|
||||
)
|
||||
find_program(Vulkan_GLSLC_EXECUTABLE
|
||||
NAMES glslc
|
||||
HINTS
|
||||
"$ENV{VULKAN_SDK}/Bin"
|
||||
)
|
||||
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
find_library(Vulkan_LIBRARY
|
||||
NAMES vulkan-1
|
||||
HINTS
|
||||
"$ENV{VULKAN_SDK}/Lib32"
|
||||
"$ENV{VULKAN_SDK}/Bin32"
|
||||
)
|
||||
find_program(Vulkan_GLSLC_EXECUTABLE
|
||||
NAMES glslc
|
||||
HINTS
|
||||
"$ENV{VULKAN_SDK}/Bin32"
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
find_path(Vulkan_INCLUDE_DIR
|
||||
NAMES vulkan/vulkan.h
|
||||
HINTS "$ENV{VULKAN_SDK}/include")
|
||||
find_library(Vulkan_LIBRARY
|
||||
NAMES vulkan
|
||||
HINTS "$ENV{VULKAN_SDK}/lib")
|
||||
find_program(Vulkan_GLSLC_EXECUTABLE
|
||||
NAMES glslc
|
||||
HINTS "$ENV{VULKAN_SDK}/bin")
|
||||
endif()
|
||||
|
||||
set(Vulkan_LIBRARIES ${Vulkan_LIBRARY})
|
||||
set(Vulkan_INCLUDE_DIRS ${Vulkan_INCLUDE_DIR})
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
|
||||
find_package_handle_standard_args(Vulkan
|
||||
DEFAULT_MSG
|
||||
Vulkan_LIBRARY Vulkan_INCLUDE_DIR)
|
||||
|
||||
mark_as_advanced(Vulkan_INCLUDE_DIR Vulkan_LIBRARY Vulkan_GLSLC_EXECUTABLE)
|
||||
|
||||
if(Vulkan_FOUND AND NOT TARGET Vulkan::Vulkan)
|
||||
add_library(Vulkan::Vulkan UNKNOWN IMPORTED)
|
||||
set_target_properties(Vulkan::Vulkan PROPERTIES
|
||||
IMPORTED_LOCATION "${Vulkan_LIBRARIES}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Vulkan_INCLUDE_DIRS}")
|
||||
endif()
|
||||
|
||||
if(Vulkan_FOUND AND Vulkan_GLSLC_EXECUTABLE AND NOT TARGET Vulkan::glslc)
|
||||
add_executable(Vulkan::glslc IMPORTED)
|
||||
set_property(TARGET Vulkan::glslc PROPERTY IMPORTED_LOCATION "${Vulkan_GLSLC_EXECUTABLE}")
|
||||
endif()
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 362 B |
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<installer-gui-script minSpecVersion="1.0">
|
||||
<title>@CPACK_PACKAGE_NAME@</title>
|
||||
<welcome file="@CPACK_RESOURCE_FILE_WELCOME_NOPATH@"/>
|
||||
<readme file="@CPACK_RESOURCE_FILE_README_NOPATH@"/>
|
||||
<license file="@CPACK_RESOURCE_FILE_LICENSE_NOPATH@"/>
|
||||
<options allow-external-scripts="no" customize="allow" rootVolumeOnly="false"></options>
|
||||
@CPACK_PACKAGEMAKER_CHOICES@
|
||||
</installer-gui-script>
|
|
@ -1,79 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(Internal/CheckSourceCompiles)
|
||||
include(CMakeCheckCompilerFlagCommonPatterns)
|
||||
|
||||
cmake_policy(PUSH)
|
||||
cmake_policy(SET CMP0054 NEW) # if() quoted variables not dereferenced
|
||||
cmake_policy(SET CMP0057 NEW) # if() supports IN_LIST
|
||||
|
||||
function(CMAKE_CHECK_COMPILER_FLAG _lang _flag _var)
|
||||
|
||||
if(_lang STREQUAL "C")
|
||||
set(_lang_src "int main(void) { return 0; }")
|
||||
set(_lang_fail_regex FAIL_REGEX "command[ -]line option .* is valid for .* but not for C")
|
||||
elseif(_lang STREQUAL "CXX")
|
||||
set(_lang_src "int main() { return 0; }")
|
||||
set(_lang_fail_regex FAIL_REGEX "command[ -]line option .* is valid for .* but not for C\\+\\+")
|
||||
elseif(_lang STREQUAL "CUDA")
|
||||
set(_lang_src "__host__ int main() { return 0; }")
|
||||
set(_lang_fail_regex FAIL_REGEX "command[ -]line option .* is valid for .* but not for C\\+\\+" # Host GNU
|
||||
FAIL_REGEX "argument unused during compilation: .*") # Clang
|
||||
elseif(_lang STREQUAL "Fortran")
|
||||
set(_lang_src " program test\n stop\n end program")
|
||||
set(_lang_fail_regex FAIL_REGEX "command[ -]line option .* is valid for .* but not for Fortran")
|
||||
elseif(_lang STREQUAL "OBJC")
|
||||
set(_lang_src [=[
|
||||
#ifndef __OBJC__
|
||||
# error "Not an Objective-C compiler"
|
||||
#endif
|
||||
int main(void) { return 0; }]=])
|
||||
set(_lang_fail_regex FAIL_REGEX "command[ -]line option .* is valid for .* but not for Objective-C" # GNU
|
||||
FAIL_REGEX "argument unused during compilation: .*") # Clang
|
||||
elseif(_lang STREQUAL "OBJCXX")
|
||||
set(_lang_src [=[
|
||||
#ifndef __OBJC__
|
||||
# error "Not an Objective-C++ compiler"
|
||||
#endif
|
||||
int main(void) { return 0; }]=])
|
||||
set(_lang_fail_regex FAIL_REGEX "command[ -]line option .* is valid for .* but not for Objective-C\\+\\+" # GNU
|
||||
FAIL_REGEX "argument unused during compilation: .*") # Clang
|
||||
elseif(_lang STREQUAL "ISPC")
|
||||
set(_lang_src "float func(uniform int32, float a) { return a / 2.25; }")
|
||||
else()
|
||||
message (SEND_ERROR "check_compiler_flag: ${_lang}: unknown language.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
get_property (_supported_languages GLOBAL PROPERTY ENABLED_LANGUAGES)
|
||||
if (NOT _lang IN_LIST _supported_languages)
|
||||
message (SEND_ERROR "check_compiler_flag: ${_lang}: needs to be enabled before use.")
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(CMAKE_REQUIRED_DEFINITIONS ${_flag})
|
||||
|
||||
# Normalize locale during test compilation.
|
||||
set(_locale_vars LC_ALL LC_MESSAGES LANG)
|
||||
foreach(v IN LISTS _locale_vars)
|
||||
set(_locale_vars_saved_${v} "$ENV{${v}}")
|
||||
set(ENV{${v}} C)
|
||||
endforeach()
|
||||
|
||||
check_compiler_flag_common_patterns(_common_patterns)
|
||||
cmake_check_source_compiles(${_lang}
|
||||
"${_lang_src}"
|
||||
${_var}
|
||||
${_lang_fail_regex}
|
||||
${_common_patterns}
|
||||
)
|
||||
|
||||
foreach(v IN LISTS _locale_vars)
|
||||
set(ENV{${v}} ${_locale_vars_saved_${v}})
|
||||
endforeach()
|
||||
set(${_var} "${${_var}}" PARENT_SCOPE)
|
||||
endfunction ()
|
||||
|
||||
cmake_policy(POP)
|
|
@ -1,30 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
MacroAddFileDependencies
|
||||
------------------------
|
||||
|
||||
MACRO_ADD_FILE_DEPENDENCIES(<_file> depend_files...)
|
||||
|
||||
Using the macro MACRO_ADD_FILE_DEPENDENCIES() is discouraged. There
|
||||
are usually better ways to specify the correct dependencies.
|
||||
|
||||
MACRO_ADD_FILE_DEPENDENCIES(<_file> depend_files...) is just a
|
||||
convenience wrapper around the OBJECT_DEPENDS source file property.
|
||||
You can just use set_property(SOURCE <file> APPEND PROPERTY
|
||||
OBJECT_DEPENDS depend_files) instead.
|
||||
#]=======================================================================]
|
||||
|
||||
macro (MACRO_ADD_FILE_DEPENDENCIES _file)
|
||||
|
||||
get_source_file_property(_deps ${_file} OBJECT_DEPENDS)
|
||||
if (_deps)
|
||||
set(_deps ${_deps} ${ARGN})
|
||||
else ()
|
||||
set(_deps ${ARGN})
|
||||
endif ()
|
||||
|
||||
set_source_files_properties(${_file} PROPERTIES OBJECT_DEPENDS "${_deps}")
|
||||
|
||||
endmacro ()
|
|
@ -1,60 +0,0 @@
|
|||
#!/bin/sh
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
# This script is internal to CMake and meant only to be
|
||||
# invoked by CMake-generated build systems on AIX.
|
||||
|
||||
usage='usage: ExportImportList -o <out-file> [-l <lib>] [-n] [--] <objects>...'
|
||||
|
||||
die() {
|
||||
echo "$@" 1>&2; exit 1
|
||||
}
|
||||
|
||||
# Process command-line arguments.
|
||||
out=''
|
||||
lib=''
|
||||
no_objects=''
|
||||
while test "$#" != 0; do
|
||||
case "$1" in
|
||||
-l) shift; lib="$1" ;;
|
||||
-o) shift; out="$1" ;;
|
||||
-n) no_objects='1' ;;
|
||||
--) shift; break ;;
|
||||
-*) die "$usage" ;;
|
||||
*) break ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
test -n "$out" || die "$usage"
|
||||
|
||||
# Build a temporary file that atomically replaces the output later.
|
||||
out_tmp="$out.tmp$$"
|
||||
trap 'rm -f "$out_tmp"' EXIT INT TERM
|
||||
> "$out_tmp"
|
||||
|
||||
# Collect symbols exported from all object files.
|
||||
if test -z "$no_objects"; then
|
||||
for f in "$@"; do
|
||||
dump -tov -X 32_64 "$f" |
|
||||
awk '
|
||||
BEGIN {
|
||||
V["EXPORTED"]=" export"
|
||||
V["PROTECTED"]=" protected"
|
||||
}
|
||||
/^\[[0-9]+\]\tm +[^ ]+ +\.(text|data|bss) +[^ ]+ +(extern|weak) +(EXPORTED|PROTECTED| ) / {
|
||||
if (!match($NF,/^(\.|__sinit|__sterm|__[0-9]+__)/)) {
|
||||
print $NF V[$(NF-1)]
|
||||
}
|
||||
}
|
||||
'
|
||||
done >> "$out_tmp"
|
||||
fi
|
||||
|
||||
# Generate the export/import file.
|
||||
{
|
||||
if test -n "$lib"; then
|
||||
echo "#! $lib"
|
||||
fi
|
||||
sort -u "$out_tmp"
|
||||
} > "$out"
|
|
@ -1,55 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
# When CMAKE_SYSTEM_NAME is "Android", CMakeSystemSpecificInitialize loads this
|
||||
# module.
|
||||
|
||||
# Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
|
||||
# implemented in the CMake VS IDE generators. Avoid interfering with
|
||||
# that functionality for now.
|
||||
if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Commonly used Android toolchain files that pre-date CMake upstream support
|
||||
# set CMAKE_SYSTEM_VERSION to 1. Avoid interfering with them.
|
||||
if(CMAKE_SYSTEM_VERSION EQUAL 1)
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(CMAKE_BUILD_TYPE_INIT Debug)
|
||||
|
||||
# Skip sysroot selection if the NDK has a unified toolchain.
|
||||
if(CMAKE_ANDROID_NDK_TOOLCHAIN_UNIFIED)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Natively compiling on an Android host doesn't use the NDK cross-compilation
|
||||
# tools.
|
||||
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_SYSROOT)
|
||||
if(CMAKE_ANDROID_NDK)
|
||||
set(CMAKE_SYSROOT "${CMAKE_ANDROID_NDK}/platforms/android-${CMAKE_SYSTEM_VERSION}/arch-${CMAKE_ANDROID_ARCH}")
|
||||
if(NOT CMAKE_ANDROID_NDK_DEPRECATED_HEADERS)
|
||||
set(CMAKE_SYSROOT_COMPILE "${CMAKE_ANDROID_NDK}/sysroot")
|
||||
endif()
|
||||
elseif(CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
|
||||
set(CMAKE_SYSROOT "${CMAKE_ANDROID_STANDALONE_TOOLCHAIN}/sysroot")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSROOT)
|
||||
if(NOT IS_DIRECTORY "${CMAKE_SYSROOT}")
|
||||
message(FATAL_ERROR
|
||||
"Android: The system root directory needed for the selected Android version and architecture does not exist:\n"
|
||||
" ${CMAKE_SYSROOT}\n"
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR
|
||||
"Android: No CMAKE_SYSROOT was selected."
|
||||
)
|
||||
endif()
|
|
@ -1,24 +0,0 @@
|
|||
include(Platform/Linux)
|
||||
|
||||
set(ANDROID 1)
|
||||
|
||||
# Natively compiling on an Android host doesn't need these flags to be reset.
|
||||
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Android")
|
||||
return()
|
||||
endif()
|
||||
|
||||
# Conventionally Android does not use versioned soname
|
||||
# But in modern versions it is acceptable
|
||||
if(NOT DEFINED CMAKE_PLATFORM_NO_VERSIONED_SONAME)
|
||||
set(CMAKE_PLATFORM_NO_VERSIONED_SONAME 1)
|
||||
endif()
|
||||
|
||||
# Android reportedly ignores RPATH, and we cannot predict the install
|
||||
# location anyway.
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "")
|
||||
|
||||
# Nsight Tegra Visual Studio Edition takes care of
|
||||
# prefixing library names with '-l'.
|
||||
if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
|
||||
set(CMAKE_LINK_LIBRARY_FLAG "")
|
||||
endif()
|
|
@ -1,4 +0,0 @@
|
|||
# <ndk>/build/core/toolchains/mipsel-linux-android-clang/setup.mk
|
||||
set(_ANDROID_ABI_CLANG_TARGET "mipsel-none-linux-android")
|
||||
|
||||
include(Platform/Android/abi-common-Clang)
|
|
@ -1,4 +0,0 @@
|
|||
# <ndk>/build/core/toolchains/mips64el-linux-android-clang/setup.mk
|
||||
set(_ANDROID_ABI_CLANG_TARGET "mips64el-none-linux-android")
|
||||
|
||||
include(Platform/Android/abi-common-Clang)
|
|
@ -1,4 +0,0 @@
|
|||
# <ndk>/build/core/toolchains/x86-clang/setup.mk
|
||||
set(_ANDROID_ABI_CLANG_TARGET "i686-none-linux-android")
|
||||
|
||||
include(Platform/Android/abi-common-Clang)
|
|
@ -1,4 +0,0 @@
|
|||
# <ndk>/build/core/toolchains/x86_64-clang/setup.mk
|
||||
set(_ANDROID_ABI_CLANG_TARGET "x86_64-none-linux-android")
|
||||
|
||||
include(Platform/Android/abi-common-Clang)
|
|
@ -1,29 +0,0 @@
|
|||
set(CMAKE_DL_LIBS "")
|
||||
set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC")
|
||||
set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE")
|
||||
# PIE link options are managed in Compiler/<compiler>.cmake file
|
||||
set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic
|
||||
set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared
|
||||
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty
|
||||
# Does not require -z origin since 10.2-RELEASE
|
||||
set(CMAKE_SHARED_LIBRARY_RPATH_ORIGIN_TOKEN "\$ORIGIN")
|
||||
set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,")
|
||||
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
|
||||
set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic")
|
||||
|
||||
# Shared libraries with no builtin soname may not be linked safely by
|
||||
# specifying the file path.
|
||||
set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
|
||||
|
||||
# Initialize C link type selection flags. These flags are used when
|
||||
# building a shared library, shared module, or executable that links
|
||||
# to other libraries to select whether to use the static or shared
|
||||
# versions of the libraries.
|
||||
foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
|
||||
set(CMAKE_${type}_LINK_STATIC_C_FLAGS "-Wl,-Bstatic")
|
||||
set(CMAKE_${type}_LINK_DYNAMIC_C_FLAGS "-Wl,-Bdynamic")
|
||||
endforeach()
|
||||
|
||||
include(Platform/UnixPaths)
|
|
@ -1,56 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#Setup Green Hills MULTI specific compilation information
|
||||
|
||||
if(CMAKE_HOST_UNIX)
|
||||
set(GHS_OS_ROOT "/usr/ghs" CACHE PATH "GHS platform OS search root directory")
|
||||
else()
|
||||
set(GHS_OS_ROOT "C:/ghs" CACHE PATH "GHS platform OS search root directory")
|
||||
endif()
|
||||
mark_as_advanced(GHS_OS_ROOT)
|
||||
|
||||
set(GHS_OS_DIR "NOTFOUND" CACHE PATH "GHS platform OS directory")
|
||||
mark_as_advanced(GHS_OS_DIR)
|
||||
|
||||
set(GHS_OS_DIR_OPTION "-os_dir " CACHE STRING "GHS compiler OS option")
|
||||
mark_as_advanced(GHS_OS_DIR_OPTION)
|
||||
|
||||
#set GHS_OS_DIR if not set by user
|
||||
if(NOT GHS_OS_DIR)
|
||||
if(EXISTS ${GHS_OS_ROOT})
|
||||
|
||||
#get all directories in root directory
|
||||
FILE(GLOB GHS_CANDIDATE_OS_DIRS
|
||||
LIST_DIRECTORIES true RELATIVE ${GHS_OS_ROOT} ${GHS_OS_ROOT}/*)
|
||||
FILE(GLOB GHS_CANDIDATE_OS_FILES
|
||||
LIST_DIRECTORIES false RELATIVE ${GHS_OS_ROOT} ${GHS_OS_ROOT}/*)
|
||||
if(GHS_CANDIDATE_OS_FILES)
|
||||
list(REMOVE_ITEM GHS_CANDIDATE_OS_DIRS ${GHS_CANDIDATE_OS_FILES})
|
||||
endif ()
|
||||
|
||||
#filter based on platform name
|
||||
if(GHS_TARGET_PLATFORM MATCHES "integrity")
|
||||
list(FILTER GHS_CANDIDATE_OS_DIRS INCLUDE REGEX "int[0-9][0-9][0-9][0-9a-z]")
|
||||
else() #fall-back for standalone
|
||||
unset(GHS_CANDIDATE_OS_DIRS)
|
||||
set(GHS_OS_DIR "IGNORE")
|
||||
endif()
|
||||
|
||||
if(GHS_CANDIDATE_OS_DIRS)
|
||||
list(SORT GHS_CANDIDATE_OS_DIRS)
|
||||
list(GET GHS_CANDIDATE_OS_DIRS -1 GHS_OS_DIR)
|
||||
string(CONCAT GHS_OS_DIR ${GHS_OS_ROOT} "/" ${GHS_OS_DIR})
|
||||
endif()
|
||||
|
||||
#update cache with new value
|
||||
set(GHS_OS_DIR "${GHS_OS_DIR}" CACHE PATH "GHS platform OS directory" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(GHS_BSP_NAME "IGNORE" CACHE STRING "BSP name")
|
||||
|
||||
set(GHS_CUSTOMIZATION "" CACHE FILEPATH "optional GHS customization")
|
||||
mark_as_advanced(GHS_CUSTOMIZATION)
|
||||
set(GHS_GPJ_MACROS "" CACHE STRING "optional GHS macros generated in the .gpjs for legacy reasons")
|
||||
mark_as_advanced(GHS_GPJ_MACROS)
|
|
@ -1,15 +0,0 @@
|
|||
set(CMAKE_DL_LIBS "")
|
||||
set(CMAKE_C_COMPILE_OPTIONS_PIC "-fPIC")
|
||||
set(CMAKE_C_COMPILE_OPTIONS_PIE "-fPIE")
|
||||
# PIE link options are managed in Compiler/<compiler>.cmake file
|
||||
set(CMAKE_SHARED_LIBRARY_C_FLAGS "-fPIC") # -pic
|
||||
set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared
|
||||
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") # -rpath
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":") # : or empty
|
||||
set(CMAKE_SHARED_LIBRARY_RPATH_ORIGIN_TOKEN "\$ORIGIN")
|
||||
set(CMAKE_SHARED_LIBRARY_RPATH_LINK_C_FLAG "-Wl,-rpath-link,")
|
||||
set(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG "-Wl,-soname,")
|
||||
set(CMAKE_EXE_EXPORTS_C_FLAG "-Wl,--export-dynamic")
|
||||
|
||||
include(Platform/UnixPaths)
|
|
@ -1,23 +0,0 @@
|
|||
if(CMAKE_SYSTEM MATCHES "SunOS-4")
|
||||
set(CMAKE_C_COMPILE_OPTIONS_PIC "-PIC")
|
||||
set(CMAKE_C_COMPILE_OPTIONS_PIE "-PIE")
|
||||
set(CMAKE_SHARED_LIBRARY_C_FLAGS "-PIC")
|
||||
set(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared -Wl,-r")
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-R")
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG_SEP ":")
|
||||
endif()
|
||||
|
||||
include(Platform/UnixPaths)
|
||||
|
||||
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
||||
/opt/csw
|
||||
/opt/openwin
|
||||
)
|
||||
|
||||
# The Sun linker needs to find transitive shared library dependencies
|
||||
# in the -L path.
|
||||
set(CMAKE_LINK_DEPENDENT_LIBRARY_DIRS 1)
|
||||
|
||||
# Shared libraries with no builtin soname may not be linked safely by
|
||||
# specifying the file path.
|
||||
set(CMAKE_PLATFORM_USES_PATH_WHEN_NO_SONAME 1)
|
|
@ -1,2 +0,0 @@
|
|||
include(Platform/Windows-Clang)
|
||||
__windows_compiler_clang(ASM)
|
|
@ -1,2 +0,0 @@
|
|||
include(Platform/Windows-Clang)
|
||||
__windows_compiler_clang(C)
|
|
@ -1,3 +0,0 @@
|
|||
include(Platform/Windows-Clang)
|
||||
set(_COMPILE_CXX_MSVC " -TP")
|
||||
__windows_compiler_clang(CXX)
|
|
@ -1,4 +0,0 @@
|
|||
include(Platform/Windows-Intel)
|
||||
__windows_compiler_intel(C)
|
||||
set(CMAKE_NINJA_DEPTYPE_C intel) # special value handled by CMake
|
||||
set(CMAKE_DEPFILE_FLAGS_C "-QMMD -QMT <OBJECT> -QMF <DEPFILE>")
|
|
@ -1,5 +0,0 @@
|
|||
include(Platform/Windows-Intel)
|
||||
set(_COMPILE_CXX " /TP")
|
||||
__windows_compiler_intel(CXX)
|
||||
set(CMAKE_NINJA_DEPTYPE_CXX intel) # special value handled by CMake
|
||||
set(CMAKE_DEPFILE_FLAGS_CXX "-QMMD -QMT <OBJECT> -QMF <DEPFILE>")
|
|
@ -1,18 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
if(__WINDOWS_INTEL)
|
||||
return()
|
||||
endif()
|
||||
set(__WINDOWS_INTEL 1)
|
||||
|
||||
include(Platform/Windows-MSVC)
|
||||
macro(__windows_compiler_intel lang)
|
||||
__windows_compiler_msvc(${lang})
|
||||
string(REPLACE "<CMAKE_AR>" "xilib" CMAKE_${lang}_CREATE_STATIC_LIBRARY "${CMAKE_${lang}_CREATE_STATIC_LIBRARY}")
|
||||
foreach(rule CREATE_SHARED_LIBRARY CREATE_SHARED_MODULE LINK_EXECUTABLE)
|
||||
string(REPLACE "<CMAKE_LINKER>" "xilink" CMAKE_${lang}_${rule} "${CMAKE_${lang}_${rule}}")
|
||||
endforeach()
|
||||
endmacro()
|
|
@ -1,5 +0,0 @@
|
|||
include(Platform/Windows-MSVC)
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 18.0)
|
||||
set(_FS_C " /FS")
|
||||
endif()
|
||||
__windows_compiler_msvc(C)
|
|
@ -1,6 +0,0 @@
|
|||
include(Platform/Windows-MSVC)
|
||||
set(_COMPILE_CXX " /TP")
|
||||
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0)
|
||||
set(_FS_CXX " /FS")
|
||||
endif()
|
||||
__windows_compiler_msvc(CXX)
|
|
@ -1,32 +0,0 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
# This module is shared by multiple languages; use include blocker.
|
||||
include_guard()
|
||||
|
||||
set(CMAKE_BUILD_TYPE_INIT Debug)
|
||||
|
||||
set(CMAKE_CREATE_WIN32_EXE "system nt_win" )
|
||||
set(CMAKE_CREATE_CONSOLE_EXE "system nt" )
|
||||
string(APPEND CMAKE_SHARED_LINKER_FLAGS_INIT " system nt_dll")
|
||||
string(APPEND CMAKE_MODULE_LINKER_FLAGS_INIT " system nt_dll")
|
||||
|
||||
set(CMAKE_C_COMPILE_OPTIONS_DLL "-bd") # Note: This variable is a ';' separated list
|
||||
set(CMAKE_SHARED_LIBRARY_C_FLAGS "-bd") # ... while this is a space separated string.
|
||||
|
||||
set(CMAKE_RC_COMPILER "rc" )
|
||||
|
||||
# single/multi-threaded /-bm
|
||||
# static/DLL run-time libraries /-br
|
||||
# default is setup for multi-threaded + DLL run-time libraries
|
||||
string(APPEND CMAKE_C_FLAGS_INIT " -bt=nt -dWIN32 -br -bm")
|
||||
string(APPEND CMAKE_CXX_FLAGS_INIT " -bt=nt -xs -dWIN32 -br -bm")
|
||||
|
||||
if(CMAKE_CROSSCOMPILING)
|
||||
if(NOT CMAKE_C_STANDARD_INCLUDE_DIRECTORIES)
|
||||
set(CMAKE_C_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/nt)
|
||||
endif()
|
||||
if(NOT CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES)
|
||||
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES $ENV{WATCOM}/h $ENV{WATCOM}/h/nt)
|
||||
endif()
|
||||
endif()
|
|
@ -1,3 +0,0 @@
|
|||
repository='@repository@'
|
||||
module='@module@'
|
||||
tag='@tag@'
|
|
@ -0,0 +1,33 @@
|
|||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
AddFileDependencies
|
||||
-------------------
|
||||
|
||||
.. deprecated:: 3.20
|
||||
|
||||
Add dependencies to a source file.
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
add_file_dependencies(<source> <files>...)
|
||||
|
||||
Adds the given ``<files>`` to the dependencies of file ``<source>``.
|
||||
|
||||
Do not use this command in new code. It is just a wrapper around:
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
set_property(SOURCE <source> APPEND PROPERTY OBJECT_DEPENDS <files>...)
|
||||
|
||||
Instead use the :command:`set_property` command to append to the
|
||||
:prop_sf:`OBJECT_DEPENDS` source file property directly.
|
||||
|
||||
#]=======================================================================]
|
||||
|
||||
function(add_file_dependencies _file)
|
||||
|
||||
set_property(SOURCE "${_file}" APPEND PROPERTY OBJECT_DEPENDS "${ARGN}")
|
||||
|
||||
endfunction()
|
|
@ -18,14 +18,43 @@ endif()
|
|||
|
||||
set(PACKAGE_VERSION "@CVF_VERSION@")
|
||||
|
||||
if("@CVF_VERSION@" MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.") # strip the tweak version
|
||||
set(CVF_VERSION_NO_TWEAK "${CMAKE_MATCH_1}")
|
||||
if("@CVF_VERSION@" MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)") # strip the tweak version
|
||||
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
||||
set(CVF_VERSION_MINOR "${CMAKE_MATCH_2}")
|
||||
set(CVF_VERSION_PATCH "${CMAKE_MATCH_3}")
|
||||
|
||||
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
|
||||
endif()
|
||||
if(NOT CVF_VERSION_MINOR VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" CVF_VERSION_MINOR "${CVF_VERSION_MINOR}")
|
||||
endif()
|
||||
if(NOT CVF_VERSION_PATCH VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" CVF_VERSION_PATCH "${CVF_VERSION_PATCH}")
|
||||
endif()
|
||||
|
||||
set(CVF_VERSION_NO_TWEAK "${CVF_VERSION_MAJOR}.${CVF_VERSION_MINOR}.${CVF_VERSION_PATCH}")
|
||||
else()
|
||||
set(CVF_VERSION_NO_TWEAK "@CVF_VERSION@")
|
||||
endif()
|
||||
|
||||
if(PACKAGE_FIND_VERSION MATCHES "^([0-9]+\\.[0-9]+\\.[0-9]+)\\.") # strip the tweak version
|
||||
set(REQUESTED_VERSION_NO_TWEAK "${CMAKE_MATCH_1}")
|
||||
if(PACKAGE_FIND_VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)") # strip the tweak version
|
||||
set(REQUESTED_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
||||
set(REQUESTED_VERSION_MINOR "${CMAKE_MATCH_2}")
|
||||
set(REQUESTED_VERSION_PATCH "${CMAKE_MATCH_3}")
|
||||
|
||||
if(NOT REQUESTED_VERSION_MAJOR VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" REQUESTED_VERSION_MAJOR "${REQUESTED_VERSION_MAJOR}")
|
||||
endif()
|
||||
if(NOT REQUESTED_VERSION_MINOR VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" REQUESTED_VERSION_MINOR "${REQUESTED_VERSION_MINOR}")
|
||||
endif()
|
||||
if(NOT REQUESTED_VERSION_PATCH VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" REQUESTED_VERSION_PATCH "${REQUESTED_VERSION_PATCH}")
|
||||
endif()
|
||||
|
||||
set(REQUESTED_VERSION_NO_TWEAK
|
||||
"${REQUESTED_VERSION_MAJOR}.${REQUESTED_VERSION_MINOR}.${REQUESTED_VERSION_PATCH}")
|
||||
else()
|
||||
set(REQUESTED_VERSION_NO_TWEAK "${PACKAGE_FIND_VERSION}")
|
||||
endif()
|
|
@ -17,6 +17,9 @@ else()
|
|||
|
||||
if("@CVF_VERSION@" MATCHES "^([0-9]+)\\.")
|
||||
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
||||
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
|
||||
endif()
|
||||
else()
|
||||
set(CVF_VERSION_MAJOR "@CVF_VERSION@")
|
||||
endif()
|
|
@ -19,6 +19,13 @@ else()
|
|||
if("@CVF_VERSION@" MATCHES "^([0-9]+)\\.([0-9]+)")
|
||||
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
||||
set(CVF_VERSION_MINOR "${CMAKE_MATCH_2}")
|
||||
|
||||
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
|
||||
endif()
|
||||
if(NOT CVF_VERSION_MINOR VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" CVF_VERSION_MINOR "${CVF_VERSION_MINOR}")
|
||||
endif()
|
||||
else()
|
||||
set(CVF_VERSION_MAJOR "@CVF_VERSION@")
|
||||
set(CVF_VERSION_MINOR "")
|
||||
|
@ -44,6 +51,13 @@ else()
|
|||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
endif()
|
||||
else()
|
||||
if(NOT PACKAGE_FIND_VERSION_MAJOR VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" PACKAGE_FIND_VERSION_MAJOR "${PACKAGE_FIND_VERSION_MAJOR}")
|
||||
endif()
|
||||
if(NOT PACKAGE_FIND_VERSION_MINOR VERSION_EQUAL 0)
|
||||
string(REGEX REPLACE "^0+" "" PACKAGE_FIND_VERSION_MINOR "${PACKAGE_FIND_VERSION_MINOR}")
|
||||
endif()
|
||||
|
||||
if((PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR) AND
|
||||
(PACKAGE_FIND_VERSION_MINOR STREQUAL CVF_VERSION_MINOR))
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
|
@ -59,9 +59,10 @@ fix each one up according to its own list of prerequisites.
|
|||
Then clear all the keys and call ``verify_app`` on the final bundle to
|
||||
ensure that it is truly standalone.
|
||||
|
||||
As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
|
||||
which are then ignored
|
||||
(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``).
|
||||
.. versionadded:: 3.6
|
||||
As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
|
||||
which are then ignored
|
||||
(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``).
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
|
@ -78,9 +79,10 @@ Verifies that an application ``<app>`` appears valid based on running
|
|||
analysis tools on it. Calls :command:`message(FATAL_ERROR)` if the application
|
||||
is not verified.
|
||||
|
||||
As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
|
||||
which are then ignored
|
||||
(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
|
||||
.. versionadded:: 3.6
|
||||
As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
|
||||
which are then ignored
|
||||
(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
|
@ -155,9 +157,10 @@ them. Set values associated with each key such that we can loop over
|
|||
all of them and copy prerequisite libs into the bundle and then do
|
||||
appropriate ``install_name_tool`` fixups.
|
||||
|
||||
As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
|
||||
which are then ignored
|
||||
(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
|
||||
.. versionadded:: 3.6
|
||||
As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
|
||||
which are then ignored
|
||||
(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
|
@ -215,9 +218,10 @@ Verifies that the sum of all prerequisites of all files inside the
|
|||
bundle are contained within the bundle or are ``system`` libraries,
|
||||
presumed to exist everywhere.
|
||||
|
||||
As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
|
||||
which are then ignored
|
||||
(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
|
||||
.. versionadded:: 3.6
|
||||
As an optional parameter (``IGNORE_ITEM``) a list of file names can be passed,
|
||||
which are then ignored
|
||||
(e.g. ``IGNORE_ITEM "vcredist_x86.exe;vcredist_x64.exe"``)
|
||||
|
||||
.. code-block:: cmake
|
||||
|
|
@ -8,7 +8,7 @@ set(ASM_DIALECT "_MASM")
|
|||
|
||||
set(CMAKE_ASM${ASM_DIALECT}_SOURCE_FILE_EXTENSIONS asm)
|
||||
|
||||
set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> /c /Fo <OBJECT> <SOURCE>")
|
||||
set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OBJECT "<CMAKE_ASM${ASM_DIALECT}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -c -Fo <OBJECT> <SOURCE>")
|
||||
|
||||
# The ASM_MASM compiler id for this compiler is "MSVC", so fill out the runtime library table.
|
||||
set(CMAKE_ASM${ASM_DIALECT}_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreaded "")
|
|
@ -35,7 +35,18 @@ if(NOT CMAKE_ASM_NASM_OBJECT_FORMAT)
|
|||
endif()
|
||||
|
||||
if(NOT CMAKE_ASM_NASM_COMPILE_OBJECT)
|
||||
set(CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> <INCLUDES> <FLAGS> -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>")
|
||||
set(CMAKE_ASM_NASM_COMPILE_OBJECT "<CMAKE_ASM_NASM_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o <OBJECT> <SOURCE>")
|
||||
endif()
|
||||
|
||||
if(CMAKE_ASM_NASM_COMPILER_ID STREQUAL "NASM")
|
||||
set(CMAKE_DEPFILE_FLAGS_ASM_NASM "-MD <DEP_FILE> -MT <DEP_TARGET>")
|
||||
|
||||
if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER)
|
||||
AND CMAKE_GENERATOR MATCHES "Makefiles|WMake")
|
||||
# dependencies are computed by the compiler itself
|
||||
set(CMAKE_ASM_NASM_DEPFILE_FORMAT gcc)
|
||||
set(CMAKE_ASM_NASM_DEPENDS_USE_COMPILER TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Load the generic ASMInformation file:
|
|
@ -5,10 +5,13 @@ set(CMAKE_C_COMPILER_VERSION "@CMAKE_C_COMPILER_VERSION@")
|
|||
set(CMAKE_C_COMPILER_VERSION_INTERNAL "@CMAKE_C_COMPILER_VERSION_INTERNAL@")
|
||||
set(CMAKE_C_COMPILER_WRAPPER "@CMAKE_C_COMPILER_WRAPPER@")
|
||||
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "@CMAKE_C_STANDARD_COMPUTED_DEFAULT@")
|
||||
set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "@CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT@")
|
||||
set(CMAKE_C_COMPILE_FEATURES "@CMAKE_C_COMPILE_FEATURES@")
|
||||
set(CMAKE_C90_COMPILE_FEATURES "@CMAKE_C90_COMPILE_FEATURES@")
|
||||
set(CMAKE_C99_COMPILE_FEATURES "@CMAKE_C99_COMPILE_FEATURES@")
|
||||
set(CMAKE_C11_COMPILE_FEATURES "@CMAKE_C11_COMPILE_FEATURES@")
|
||||
set(CMAKE_C17_COMPILE_FEATURES "@CMAKE_C17_COMPILE_FEATURES@")
|
||||
set(CMAKE_C23_COMPILE_FEATURES "@CMAKE_C23_COMPILE_FEATURES@")
|
||||
|
||||
set(CMAKE_C_PLATFORM_ID "@CMAKE_C_PLATFORM_ID@")
|
||||
set(CMAKE_C_SIMULATE_ID "@CMAKE_C_SIMULATE_ID@")
|
||||
|
@ -28,18 +31,9 @@ set(CMAKE_COMPILER_IS_GNUCC @CMAKE_COMPILER_IS_GNUCC@)
|
|||
set(CMAKE_C_COMPILER_LOADED 1)
|
||||
set(CMAKE_C_COMPILER_WORKS @CMAKE_C_COMPILER_WORKS@)
|
||||
set(CMAKE_C_ABI_COMPILED @CMAKE_C_ABI_COMPILED@)
|
||||
set(CMAKE_COMPILER_IS_MINGW @CMAKE_COMPILER_IS_MINGW@)
|
||||
set(CMAKE_COMPILER_IS_CYGWIN @CMAKE_COMPILER_IS_CYGWIN@)
|
||||
if(CMAKE_COMPILER_IS_CYGWIN)
|
||||
set(CYGWIN 1)
|
||||
set(UNIX 1)
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_COMPILER_ENV_VAR "CC")
|
||||
|
||||
if(CMAKE_COMPILER_IS_MINGW)
|
||||
set(MINGW 1)
|
||||
endif()
|
||||
set(CMAKE_C_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
|
||||
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
|
@ -48,6 +42,7 @@ set(CMAKE_C_LINKER_PREFERENCE 10)
|
|||
# Save compiler ABI information.
|
||||
set(CMAKE_C_SIZEOF_DATA_PTR "@CMAKE_C_SIZEOF_DATA_PTR@")
|
||||
set(CMAKE_C_COMPILER_ABI "@CMAKE_C_COMPILER_ABI@")
|
||||
set(CMAKE_C_BYTE_ORDER "@CMAKE_C_BYTE_ORDER@")
|
||||
set(CMAKE_C_LIBRARY_ARCHITECTURE "@CMAKE_C_LIBRARY_ARCHITECTURE@")
|
||||
|
||||
if(CMAKE_C_SIZEOF_DATA_PTR)
|
|
@ -17,6 +17,8 @@ int main(int argc, char* argv[])
|
|||
{
|
||||
int require = 0;
|
||||
require += info_sizeof_dptr[argc];
|
||||
require += info_byte_order_big_endian[argc];
|
||||
require += info_byte_order_little_endian[argc];
|
||||
#if defined(ABI_ID)
|
||||
require += info_abi[argc];
|
||||
#endif
|
|
@ -11,6 +11,12 @@
|
|||
# define volatile
|
||||
#endif
|
||||
|
||||
#if !defined(__has_include)
|
||||
/* If the compiler does not have __has_include, pretend the answer is
|
||||
always no. */
|
||||
# define __has_include(x) 0
|
||||
#endif
|
||||
|
||||
@CMAKE_C_COMPILER_ID_CONTENT@
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
|
@ -26,29 +32,42 @@ char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
|||
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
||||
#endif
|
||||
|
||||
#if defined(_CRAYC) || defined(__cray__)
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
||||
#endif
|
||||
|
||||
@CMAKE_C_COMPILER_ID_PLATFORM_CONTENT@
|
||||
@CMAKE_C_COMPILER_ID_ERROR_FOR_TEST@
|
||||
|
||||
#if !defined(__STDC__)
|
||||
# if (defined(_MSC_VER) && !defined(__clang__)) \
|
||||
|| (defined(__ibmxl__) || defined(__IBMC__))
|
||||
# define C_DIALECT "90"
|
||||
#if !defined(__STDC__) && !defined(__clang__)
|
||||
# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
|
||||
# define C_VERSION "90"
|
||||
# else
|
||||
# define C_DIALECT
|
||||
# define C_VERSION
|
||||
# endif
|
||||
#elif __STDC_VERSION__ > 201710L
|
||||
# define C_VERSION "23"
|
||||
#elif __STDC_VERSION__ >= 201710L
|
||||
# define C_VERSION "17"
|
||||
#elif __STDC_VERSION__ >= 201000L
|
||||
# define C_DIALECT "11"
|
||||
# define C_VERSION "11"
|
||||
#elif __STDC_VERSION__ >= 199901L
|
||||
# define C_DIALECT "99"
|
||||
# define C_VERSION "99"
|
||||
#else
|
||||
# define C_DIALECT "90"
|
||||
# define C_VERSION "90"
|
||||
#endif
|
||||
const char* info_language_dialect_default =
|
||||
"INFO" ":" "dialect_default[" C_DIALECT "]";
|
||||
const char* info_language_standard_default =
|
||||
"INFO" ":" "standard_default[" C_VERSION "]";
|
||||
|
||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
|
||||
defined(__TI_COMPILER_VERSION__)) && \
|
||||
!defined(__STRICT_ANSI__)
|
||||
"ON"
|
||||
#else
|
||||
"OFF"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
|
@ -77,10 +96,11 @@ int main(int argc, char* argv[])
|
|||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
require += info_simulate_version[argc];
|
||||
#endif
|
||||
#if defined(_CRAYC) || defined(__cray__)
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
require += info_cray[argc];
|
||||
#endif
|
||||
require += info_language_dialect_default[argc];
|
||||
require += info_language_standard_default[argc];
|
||||
require += info_language_extensions_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
|
@ -91,6 +91,14 @@ if(CMAKE_USER_MAKE_RULES_OVERRIDE_C)
|
|||
set(CMAKE_USER_MAKE_RULES_OVERRIDE_C "${_override}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF")
|
||||
if(NOT DEFINED CMAKE_C_LINK_WHAT_YOU_USE_FLAG)
|
||||
set(CMAKE_C_LINK_WHAT_YOU_USE_FLAG "LINKER:--no-as-needed")
|
||||
endif()
|
||||
if(NOT DEFINED CMAKE_LINK_WHAT_YOU_USE_CHECK)
|
||||
set(CMAKE_LINK_WHAT_YOU_USE_CHECK ldd -u -r)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# for most systems a module is the same as a shared library
|
||||
# so unless the variable CMAKE_MODULE_EXISTS is set just
|
||||
|
@ -115,6 +123,11 @@ if(NOT CMAKE_C_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_C_COMPILER_LAUNCHER})
|
|||
CACHE STRING "Compiler launcher for C.")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_C_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_C_LINKER_LAUNCHER})
|
||||
set(CMAKE_C_LINKER_LAUNCHER "$ENV{CMAKE_C_LINKER_LAUNCHER}"
|
||||
CACHE STRING "Linker launcher for C.")
|
||||
endif()
|
||||
|
||||
include(CMakeCommonLanguageInclude)
|
||||
|
||||
# now define the following rule variables
|
||||
|
@ -191,5 +204,3 @@ if(NOT CMAKE_EXECUTABLE_RPATH_LINK_C_FLAG)
|
|||
endif()
|
||||
|
||||
set(CMAKE_C_INFORMATION_LOADED 1)
|
||||
|
||||
|
|
@ -15,6 +15,10 @@ namespace CSharp
|
|||
+ "Visual Studio"
|
||||
#elif PlatformToolsetv141
|
||||
+ "Visual Studio"
|
||||
#elif PlatformToolsetv142
|
||||
+ "Visual Studio"
|
||||
#elif PlatformToolsetv143
|
||||
+ "Visual Studio"
|
||||
#else
|
||||
+ "unknown"
|
||||
#endif
|
||||
|
@ -45,6 +49,10 @@ namespace CSharp
|
|||
+ "2015"
|
||||
#elif PlatformToolsetv141
|
||||
+ "2017"
|
||||
#elif PlatformToolsetv142
|
||||
+ "2019"
|
||||
#elif PlatformToolsetv143
|
||||
+ "2022"
|
||||
#else
|
||||
+ "9999"
|
||||
#endif
|
|
@ -6,12 +6,14 @@ set(CMAKE_CUDA_COMPILER_VERSION "@CMAKE_CUDA_COMPILER_VERSION@")
|
|||
set(CMAKE_CUDA_DEVICE_LINKER "@CMAKE_CUDA_DEVICE_LINKER@")
|
||||
set(CMAKE_CUDA_FATBINARY "@CMAKE_CUDA_FATBINARY@")
|
||||
set(CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT "@CMAKE_CUDA_STANDARD_COMPUTED_DEFAULT@")
|
||||
set(CMAKE_CUDA_EXTENSIONS_COMPUTED_DEFAULT "@CMAKE_CUDA_EXTENSIONS_COMPUTED_DEFAULT@")
|
||||
set(CMAKE_CUDA_COMPILE_FEATURES "@CMAKE_CUDA_COMPILE_FEATURES@")
|
||||
set(CMAKE_CUDA03_COMPILE_FEATURES "@CMAKE_CUDA03_COMPILE_FEATURES@")
|
||||
set(CMAKE_CUDA11_COMPILE_FEATURES "@CMAKE_CUDA11_COMPILE_FEATURES@")
|
||||
set(CMAKE_CUDA14_COMPILE_FEATURES "@CMAKE_CUDA14_COMPILE_FEATURES@")
|
||||
set(CMAKE_CUDA17_COMPILE_FEATURES "@CMAKE_CUDA17_COMPILE_FEATURES@")
|
||||
set(CMAKE_CUDA20_COMPILE_FEATURES "@CMAKE_CUDA20_COMPILE_FEATURES@")
|
||||
set(CMAKE_CUDA23_COMPILE_FEATURES "@CMAKE_CUDA23_COMPILE_FEATURES@")
|
||||
|
||||
set(CMAKE_CUDA_PLATFORM_ID "@CMAKE_CUDA_PLATFORM_ID@")
|
||||
set(CMAKE_CUDA_SIMULATE_ID "@CMAKE_CUDA_SIMULATE_ID@")
|
||||
|
@ -31,6 +33,7 @@ set(CMAKE_CUDA_LINKER_PREFERENCE_PROPAGATES 1)
|
|||
|
||||
set(CMAKE_CUDA_SIZEOF_DATA_PTR "@CMAKE_CUDA_SIZEOF_DATA_PTR@")
|
||||
set(CMAKE_CUDA_COMPILER_ABI "@CMAKE_CUDA_COMPILER_ABI@")
|
||||
set(CMAKE_CUDA_BYTE_ORDER "@CMAKE_CUDA_BYTE_ORDER@")
|
||||
set(CMAKE_CUDA_LIBRARY_ARCHITECTURE "@CMAKE_CUDA_LIBRARY_ARCHITECTURE@")
|
||||
|
||||
if(CMAKE_CUDA_SIZEOF_DATA_PTR)
|
||||
|
@ -47,8 +50,13 @@ endif()
|
|||
|
||||
set(CMAKE_CUDA_COMPILER_TOOLKIT_ROOT "@CMAKE_CUDA_COMPILER_TOOLKIT_ROOT@")
|
||||
set(CMAKE_CUDA_COMPILER_TOOLKIT_LIBRARY_ROOT "@CMAKE_CUDA_COMPILER_TOOLKIT_LIBRARY_ROOT@")
|
||||
set(CMAKE_CUDA_COMPILER_TOOLKIT_VERSION "@CMAKE_CUDA_COMPILER_TOOLKIT_VERSION@")
|
||||
set(CMAKE_CUDA_COMPILER_LIBRARY_ROOT "@CMAKE_CUDA_COMPILER_LIBRARY_ROOT@")
|
||||
|
||||
set(CMAKE_CUDA_ARCHITECTURES_ALL "@CMAKE_CUDA_ARCHITECTURES_ALL@")
|
||||
set(CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR "@CMAKE_CUDA_ARCHITECTURES_ALL_MAJOR@")
|
||||
set(CMAKE_CUDA_ARCHITECTURES_NATIVE "@CMAKE_CUDA_ARCHITECTURES_NATIVE@")
|
||||
|
||||
set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "@CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES@")
|
||||
|
||||
set(CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES "@CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES@")
|
47
tools/cmake/share/cmake-3.25/Modules/CMakeCUDACompilerABI.cu
Normal file
47
tools/cmake/share/cmake-3.25/Modules/CMakeCUDACompilerABI.cu
Normal file
|
@ -0,0 +1,47 @@
|
|||
#ifndef __CUDACC__
|
||||
# error "A C or C++ compiler has been selected for CUDA"
|
||||
#endif
|
||||
|
||||
#include <cstdio>
|
||||
|
||||
#include <cuda_runtime.h>
|
||||
|
||||
#include "CMakeCompilerABI.h"
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int require = 0;
|
||||
require += info_sizeof_dptr[argc];
|
||||
require += info_byte_order_big_endian[argc];
|
||||
require += info_byte_order_little_endian[argc];
|
||||
#if defined(ABI_ID)
|
||||
require += info_abi[argc];
|
||||
#endif
|
||||
static_cast<void>(argv);
|
||||
|
||||
int count = 0;
|
||||
if (cudaGetDeviceCount(&count) != cudaSuccess || count == 0) {
|
||||
std::fprintf(stderr, "No CUDA devices found.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
int found = 0;
|
||||
const char* sep = "";
|
||||
for (int device = 0; device < count; ++device) {
|
||||
cudaDeviceProp prop;
|
||||
if (cudaGetDeviceProperties(&prop, device) == cudaSuccess) {
|
||||
std::printf("%s%d%d", sep, prop.major, prop.minor);
|
||||
sep = ";";
|
||||
found = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
std::fprintf(stderr, "No CUDA architecture detected from any devices.\n");
|
||||
// Convince the compiler that the non-zero return value depends
|
||||
// on the info strings so they are not optimized out.
|
||||
return require ? -1 : 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -16,8 +16,10 @@ char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
|||
@CMAKE_CUDA_COMPILER_ID_PLATFORM_CONTENT@
|
||||
@CMAKE_CUDA_COMPILER_ID_ERROR_FOR_TEST@
|
||||
|
||||
const char* info_language_dialect_default = "INFO" ":" "dialect_default["
|
||||
#if __cplusplus > 201703L
|
||||
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
||||
#if __cplusplus > 202002L
|
||||
"23"
|
||||
#elif __cplusplus > 201703L
|
||||
"20"
|
||||
#elif __cplusplus >= 201703L
|
||||
"17"
|
||||
|
@ -30,6 +32,15 @@ const char* info_language_dialect_default = "INFO" ":" "dialect_default["
|
|||
#endif
|
||||
"]";
|
||||
|
||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||
#if (defined(__clang__) || defined(__GNUC__)) && \
|
||||
!defined(__STRICT_ANSI__)
|
||||
"ON"
|
||||
#else
|
||||
"OFF"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
|
@ -46,7 +57,8 @@ int main(int argc, char* argv[])
|
|||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
require += info_simulate_version[argc];
|
||||
#endif
|
||||
require += info_language_dialect_default[argc];
|
||||
require += info_language_standard_default[argc];
|
||||
require += info_language_extensions_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
|
@ -9,15 +9,15 @@ endif()
|
|||
set(CMAKE_INCLUDE_FLAG_CUDA "-I")
|
||||
|
||||
# Set implicit links early so compiler-specific modules can use them.
|
||||
set(__IMPLICT_LINKS )
|
||||
set(__IMPLICIT_LINKS)
|
||||
foreach(dir ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
|
||||
string(APPEND __IMPLICT_LINKS " -L\"${dir}\"")
|
||||
string(APPEND __IMPLICIT_LINKS " -L\"${dir}\"")
|
||||
endforeach()
|
||||
foreach(lib ${CMAKE_CUDA_HOST_IMPLICIT_LINK_LIBRARIES})
|
||||
if(${lib} MATCHES "/")
|
||||
string(APPEND __IMPLICT_LINKS " \"${lib}\"")
|
||||
string(APPEND __IMPLICIT_LINKS " \"${lib}\"")
|
||||
else()
|
||||
string(APPEND __IMPLICT_LINKS " -l${lib}")
|
||||
string(APPEND __IMPLICIT_LINKS " -l${lib}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
|
@ -36,6 +36,25 @@ if(CMAKE_CUDA_COMPILER_ID)
|
|||
endif()
|
||||
|
||||
|
||||
# This should be included before the _INIT variables are
|
||||
# used to initialize the cache. Since the rule variables
|
||||
# have if blocks on them, users can still define them here.
|
||||
# But, it should still be after the platform file so changes can
|
||||
# be made to those values.
|
||||
|
||||
if(CMAKE_USER_MAKE_RULES_OVERRIDE)
|
||||
# Save the full path of the file so try_compile can use it.
|
||||
include(${CMAKE_USER_MAKE_RULES_OVERRIDE} RESULT_VARIABLE _override)
|
||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${_override}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_USER_MAKE_RULES_OVERRIDE_CUDA)
|
||||
# Save the full path of the file so try_compile can use it.
|
||||
include(${CMAKE_USER_MAKE_RULES_OVERRIDE_CUDA} RESULT_VARIABLE _override)
|
||||
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CUDA "${_override}")
|
||||
endif()
|
||||
|
||||
|
||||
if(NOT CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG)
|
||||
set(CMAKE_SHARED_LIBRARY_RUNTIME_CUDA_FLAG ${CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG})
|
||||
endif()
|
||||
|
@ -81,6 +100,15 @@ if(NOT CMAKE_MODULE_EXISTS)
|
|||
set(CMAKE_SHARED_MODULE_CREATE_CUDA_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS})
|
||||
endif()
|
||||
|
||||
if(CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF")
|
||||
if(NOT DEFINED CMAKE_CUDA_LINK_WHAT_YOU_USE_FLAG)
|
||||
set(CMAKE_CUDA_LINK_WHAT_YOU_USE_FLAG "LINKER:--no-as-needed")
|
||||
endif()
|
||||
if(NOT DEFINED CMAKE_LINK_WHAT_YOU_USE_CHECK)
|
||||
set(CMAKE_LINK_WHAT_YOU_USE_CHECK ldd -u -r)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# add the flags to the cache based
|
||||
# on the initial values computed in the platform/*.cmake files
|
||||
# use _INIT variables so that this only happens the first time
|
||||
|
@ -110,14 +138,10 @@ include(CMakeCommonLanguageInclude)
|
|||
# CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
|
||||
# CMAKE_CUDA_LINK_EXECUTABLE
|
||||
|
||||
if(CMAKE_CUDA_HOST_COMPILER AND CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA")
|
||||
string(APPEND _CMAKE_CUDA_EXTRA_FLAGS " -ccbin=<CMAKE_CUDA_HOST_COMPILER>")
|
||||
endif()
|
||||
|
||||
# create a shared library
|
||||
if(NOT CMAKE_CUDA_CREATE_SHARED_LIBRARY)
|
||||
set(CMAKE_CUDA_CREATE_SHARED_LIBRARY
|
||||
"<CMAKE_CUDA_HOST_LINK_LAUNCHER> <CMAKE_SHARED_LIBRARY_CUDA_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
|
||||
"<CMAKE_CUDA_HOST_LINK_LAUNCHER> <CMAKE_SHARED_LIBRARY_CUDA_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>${__IMPLICIT_LINKS}")
|
||||
endif()
|
||||
|
||||
# create a shared module copy the shared library rule by default
|
||||
|
@ -136,75 +160,47 @@ if(NOT DEFINED CMAKE_CUDA_ARCHIVE_FINISH)
|
|||
set(CMAKE_CUDA_ARCHIVE_FINISH "<CMAKE_RANLIB> <TARGET>")
|
||||
endif()
|
||||
|
||||
#Specify how to compile when ptx has been requested
|
||||
if(NOT CMAKE_CUDA_COMPILE_PTX_COMPILATION)
|
||||
set(CMAKE_CUDA_COMPILE_PTX_COMPILATION
|
||||
"<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} ${_CMAKE_CUDA_PTX_FLAG} <SOURCE> -o <OBJECT>")
|
||||
endif()
|
||||
|
||||
#Specify how to compile when separable compilation has been requested
|
||||
if(NOT CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION)
|
||||
set(CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION
|
||||
"<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} ${_CMAKE_CUDA_DEVICE_CODE} <SOURCE> -o <OBJECT>")
|
||||
endif()
|
||||
|
||||
#Specify how to compile when whole compilation has been requested
|
||||
if(NOT CMAKE_CUDA_COMPILE_WHOLE_COMPILATION)
|
||||
set(CMAKE_CUDA_COMPILE_WHOLE_COMPILATION
|
||||
"<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -c <SOURCE> -o <OBJECT>")
|
||||
endif()
|
||||
|
||||
if(CMAKE_GENERATOR STREQUAL "Ninja" AND NOT CMAKE_DEPFILE_FLAGS_CUDA)
|
||||
set(CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION
|
||||
"<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} -M <SOURCE> -MT <OBJECT> -o $DEP_FILE")
|
||||
#The Ninja generator uses the make file dependency files to determine what
|
||||
#files need to be recompiled. Unfortunately, nvcc < 10.2 doesn't support building
|
||||
#a source file and generating the dependencies of said file in a single
|
||||
#invocation. Instead we have to state that you need to chain two commands.
|
||||
#
|
||||
#The makefile generators uses the custom CMake dependency scanner, and thus
|
||||
#it is exempt from this logic.
|
||||
list(APPEND CMAKE_CUDA_COMPILE_PTX_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
|
||||
list(APPEND CMAKE_CUDA_COMPILE_SEPARABLE_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
|
||||
list(APPEND CMAKE_CUDA_COMPILE_WHOLE_COMPILATION "${CMAKE_CUDA_COMPILE_DEPENDENCY_DETECTION}")
|
||||
if(NOT CMAKE_CUDA_COMPILE_OBJECT)
|
||||
set(CMAKE_CUDA_COMPILE_OBJECT
|
||||
"<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <DEFINES> <INCLUDES> <FLAGS> ${_CMAKE_COMPILE_AS_CUDA_FLAG} <CUDA_COMPILE_MODE> <SOURCE> -o <OBJECT>")
|
||||
endif()
|
||||
|
||||
# compile a cu file into an executable
|
||||
if(NOT CMAKE_CUDA_LINK_EXECUTABLE)
|
||||
set(CMAKE_CUDA_LINK_EXECUTABLE
|
||||
"<CMAKE_CUDA_HOST_LINK_LAUNCHER> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_LINKS}")
|
||||
"<CMAKE_CUDA_HOST_LINK_LAUNCHER> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICIT_LINKS}")
|
||||
endif()
|
||||
|
||||
# Add implicit host link directories that contain device libraries
|
||||
# to the device link line.
|
||||
set(__IMPLICT_DLINK_DIRS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
|
||||
if(__IMPLICT_DLINK_DIRS)
|
||||
list(REMOVE_ITEM __IMPLICT_DLINK_DIRS ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
|
||||
set(__IMPLICIT_DLINK_DIRS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
|
||||
if(__IMPLICIT_DLINK_DIRS)
|
||||
list(REMOVE_ITEM __IMPLICIT_DLINK_DIRS ${CMAKE_CUDA_HOST_IMPLICIT_LINK_DIRECTORIES})
|
||||
endif()
|
||||
set(__IMPLICT_DLINK_FLAGS )
|
||||
foreach(dir ${__IMPLICT_DLINK_DIRS})
|
||||
set(__IMPLICIT_DLINK_FLAGS)
|
||||
foreach(dir ${__IMPLICIT_DLINK_DIRS})
|
||||
if(EXISTS "${dir}/libcurand_static.a")
|
||||
string(APPEND __IMPLICT_DLINK_FLAGS " -L\"${dir}\"")
|
||||
string(APPEND __IMPLICIT_DLINK_FLAGS " -L\"${dir}\"")
|
||||
endif()
|
||||
endforeach()
|
||||
unset(__IMPLICT_DLINK_DIRS)
|
||||
unset(__IMPLICIT_DLINK_DIRS)
|
||||
|
||||
|
||||
#These are used when linking relocatable (dc) cuda code
|
||||
if(NOT CMAKE_CUDA_DEVICE_LINK_LIBRARY)
|
||||
set(CMAKE_CUDA_DEVICE_LINK_LIBRARY
|
||||
"<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
|
||||
"<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICIT_DLINK_FLAGS}")
|
||||
endif()
|
||||
if(NOT CMAKE_CUDA_DEVICE_LINK_EXECUTABLE)
|
||||
set(CMAKE_CUDA_DEVICE_LINK_EXECUTABLE
|
||||
"<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICT_DLINK_FLAGS}")
|
||||
"<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> ${CMAKE_CUDA_COMPILE_OPTIONS_PIC} ${_CMAKE_CUDA_EXTRA_DEVICE_LINK_FLAGS} -shared -dlink <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICIT_DLINK_FLAGS}")
|
||||
endif()
|
||||
|
||||
# Used when device linking is handled by CMake.
|
||||
if(NOT CMAKE_CUDA_DEVICE_LINK_COMPILE)
|
||||
set(CMAKE_CUDA_DEVICE_LINK_COMPILE "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <FLAGS> -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -D__NV_EXTRA_INITIALIZATION=\"\" -D__NV_EXTRA_FINALIZATION=\"\" -DREGISTERLINKBINARYFILE=\\\"<REGISTER_FILE>\\\" -DFATBINFILE=\\\"<FATBINARY>\\\" ${_CMAKE_COMPILE_AS_CUDA_FLAG} -c \"${CMAKE_CUDA_COMPILER_TOOLKIT_LIBRARY_ROOT}/bin/crt/link.stub\" -o <OBJECT>")
|
||||
set(CMAKE_CUDA_DEVICE_LINK_COMPILE "<CMAKE_CUDA_COMPILER> ${_CMAKE_CUDA_EXTRA_FLAGS} <FLAGS> <LINK_FLAGS> -D__CUDA_INCLUDE_COMPILER_INTERNAL_HEADERS__ -D__NV_EXTRA_INITIALIZATION=\"\" -D__NV_EXTRA_FINALIZATION=\"\" -DREGISTERLINKBINARYFILE=\\\"<REGISTER_FILE>\\\" -DFATBINFILE=\\\"<FATBINARY>\\\" ${_CMAKE_COMPILE_AS_CUDA_FLAG} -c \"${CMAKE_CUDA_COMPILER_TOOLKIT_LIBRARY_ROOT}/bin/crt/link.stub\" -o <OBJECT>")
|
||||
endif()
|
||||
|
||||
unset(__IMPLICT_DLINK_FLAGS)
|
||||
unset(__IMPLICIT_DLINK_FLAGS)
|
||||
|
||||
set(CMAKE_CUDA_INFORMATION_LOADED 1)
|
|
@ -5,12 +5,14 @@ set(CMAKE_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@")
|
|||
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "@CMAKE_CXX_COMPILER_VERSION_INTERNAL@")
|
||||
set(CMAKE_CXX_COMPILER_WRAPPER "@CMAKE_CXX_COMPILER_WRAPPER@")
|
||||
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "@CMAKE_CXX_STANDARD_COMPUTED_DEFAULT@")
|
||||
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "@CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT@")
|
||||
set(CMAKE_CXX_COMPILE_FEATURES "@CMAKE_CXX_COMPILE_FEATURES@")
|
||||
set(CMAKE_CXX98_COMPILE_FEATURES "@CMAKE_CXX98_COMPILE_FEATURES@")
|
||||
set(CMAKE_CXX11_COMPILE_FEATURES "@CMAKE_CXX11_COMPILE_FEATURES@")
|
||||
set(CMAKE_CXX14_COMPILE_FEATURES "@CMAKE_CXX14_COMPILE_FEATURES@")
|
||||
set(CMAKE_CXX17_COMPILE_FEATURES "@CMAKE_CXX17_COMPILE_FEATURES@")
|
||||
set(CMAKE_CXX20_COMPILE_FEATURES "@CMAKE_CXX20_COMPILE_FEATURES@")
|
||||
set(CMAKE_CXX23_COMPILE_FEATURES "@CMAKE_CXX23_COMPILE_FEATURES@")
|
||||
|
||||
set(CMAKE_CXX_PLATFORM_ID "@CMAKE_CXX_PLATFORM_ID@")
|
||||
set(CMAKE_CXX_SIMULATE_ID "@CMAKE_CXX_SIMULATE_ID@")
|
||||
|
@ -30,20 +32,11 @@ set(CMAKE_COMPILER_IS_GNUCXX @CMAKE_COMPILER_IS_GNUCXX@)
|
|||
set(CMAKE_CXX_COMPILER_LOADED 1)
|
||||
set(CMAKE_CXX_COMPILER_WORKS @CMAKE_CXX_COMPILER_WORKS@)
|
||||
set(CMAKE_CXX_ABI_COMPILED @CMAKE_CXX_ABI_COMPILED@)
|
||||
set(CMAKE_COMPILER_IS_MINGW @CMAKE_COMPILER_IS_MINGW@)
|
||||
set(CMAKE_COMPILER_IS_CYGWIN @CMAKE_COMPILER_IS_CYGWIN@)
|
||||
if(CMAKE_COMPILER_IS_CYGWIN)
|
||||
set(CYGWIN 1)
|
||||
set(UNIX 1)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
|
||||
|
||||
if(CMAKE_COMPILER_IS_MINGW)
|
||||
set(MINGW 1)
|
||||
endif()
|
||||
set(CMAKE_CXX_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)
|
||||
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
|
||||
foreach (lang C OBJC OBJCXX)
|
||||
|
@ -60,6 +53,7 @@ set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
|
|||
# Save compiler ABI information.
|
||||
set(CMAKE_CXX_SIZEOF_DATA_PTR "@CMAKE_CXX_SIZEOF_DATA_PTR@")
|
||||
set(CMAKE_CXX_COMPILER_ABI "@CMAKE_CXX_COMPILER_ABI@")
|
||||
set(CMAKE_CXX_BYTE_ORDER "@CMAKE_CXX_BYTE_ORDER@")
|
||||
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "@CMAKE_CXX_LIBRARY_ARCHITECTURE@")
|
||||
|
||||
if(CMAKE_CXX_SIZEOF_DATA_PTR)
|
|
@ -8,6 +8,8 @@ int main(int argc, char* argv[])
|
|||
{
|
||||
int require = 0;
|
||||
require += info_sizeof_dptr[argc];
|
||||
require += info_byte_order_big_endian[argc];
|
||||
require += info_byte_order_little_endian[argc];
|
||||
#if defined(ABI_ID)
|
||||
require += info_abi[argc];
|
||||
#endif
|
|
@ -5,6 +5,12 @@
|
|||
# error "A C compiler has been selected for C++."
|
||||
#endif
|
||||
|
||||
#if !defined(__has_include)
|
||||
/* If the compiler does not have __has_include, pretend the answer is
|
||||
always no. */
|
||||
# define __has_include(x) 0
|
||||
#endif
|
||||
|
||||
@CMAKE_CXX_COMPILER_ID_CONTENT@
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
|
@ -20,7 +26,7 @@ char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
|||
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
||||
#endif
|
||||
|
||||
#if defined(_CRAYC) || defined(__cray__)
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
||||
#endif
|
||||
|
||||
|
@ -43,8 +49,10 @@ char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
|||
# define CXX_STD __cplusplus
|
||||
#endif
|
||||
|
||||
const char* info_language_dialect_default = "INFO" ":" "dialect_default["
|
||||
#if CXX_STD > 201703L
|
||||
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
||||
#if CXX_STD > 202002L
|
||||
"23"
|
||||
#elif CXX_STD > 201703L
|
||||
"20"
|
||||
#elif CXX_STD >= 201703L
|
||||
"17"
|
||||
|
@ -57,6 +65,16 @@ const char* info_language_dialect_default = "INFO" ":" "dialect_default["
|
|||
#endif
|
||||
"]";
|
||||
|
||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
|
||||
defined(__TI_COMPILER_VERSION__)) && \
|
||||
!defined(__STRICT_ANSI__)
|
||||
"ON"
|
||||
#else
|
||||
"OFF"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
|
@ -64,6 +82,7 @@ int main(int argc, char* argv[])
|
|||
int require = 0;
|
||||
require += info_compiler[argc];
|
||||
require += info_platform[argc];
|
||||
require += info_arch[argc];
|
||||
#ifdef COMPILER_VERSION_MAJOR
|
||||
require += info_version[argc];
|
||||
#endif
|
||||
|
@ -76,10 +95,11 @@ int main(int argc, char* argv[])
|
|||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
require += info_simulate_version[argc];
|
||||
#endif
|
||||
#if defined(_CRAYC) || defined(__cray__)
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
require += info_cray[argc];
|
||||
#endif
|
||||
require += info_language_dialect_default[argc];
|
||||
require += info_language_standard_default[argc];
|
||||
require += info_language_extensions_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
|
@ -193,6 +193,15 @@ foreach(type SHARED_LIBRARY SHARED_MODULE EXE)
|
|||
endif()
|
||||
endforeach()
|
||||
|
||||
if(CMAKE_EXECUTABLE_FORMAT STREQUAL "ELF")
|
||||
if(NOT DEFINED CMAKE_CXX_LINK_WHAT_YOU_USE_FLAG)
|
||||
set(CMAKE_CXX_LINK_WHAT_YOU_USE_FLAG "LINKER:--no-as-needed")
|
||||
endif()
|
||||
if(NOT DEFINED CMAKE_LINK_WHAT_YOU_USE_CHECK)
|
||||
set(CMAKE_LINK_WHAT_YOU_USE_CHECK ldd -u -r)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# add the flags to the cache based
|
||||
# on the initial values computed in the platform/*.cmake files
|
||||
# use _INIT variables so that this only happens the first time
|
||||
|
@ -212,6 +221,11 @@ if(NOT CMAKE_CXX_COMPILER_LAUNCHER AND DEFINED ENV{CMAKE_CXX_COMPILER_LAUNCHER})
|
|||
CACHE STRING "Compiler launcher for CXX.")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_CXX_LINKER_LAUNCHER AND DEFINED ENV{CMAKE_CXX_LINKER_LAUNCHER})
|
||||
set(CMAKE_CXX_LINKER_LAUNCHER "$ENV{CMAKE_CXX_LINKER_LAUNCHER}"
|
||||
CACHE STRING "Linker launcher for CXX.")
|
||||
endif()
|
||||
|
||||
include(CMakeCommonLanguageInclude)
|
||||
|
||||
# now define the following rules:
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
macro (CHECK_COMPILER_FLAG_COMMON_PATTERNS _VAR)
|
||||
set(${_VAR}
|
||||
FAIL_REGEX "[Uu]nrecogni[sz]ed .*option" # GNU, NAG
|
||||
FAIL_REGEX "[Uu]nrecogni[sz]ed .*option" # GNU, NAG, Fujitsu
|
||||
FAIL_REGEX "switch .* is no longer supported" # GNU
|
||||
FAIL_REGEX "unknown .*option" # Clang
|
||||
FAIL_REGEX "optimization flag .* not supported" # Clang
|
||||
|
@ -32,5 +32,6 @@ macro (CHECK_COMPILER_FLAG_COMMON_PATTERNS _VAR)
|
|||
FAIL_REGEX "Warning: illegal option" # SunStudio 12
|
||||
FAIL_REGEX "[Ww]arning: Invalid suboption" # Fujitsu
|
||||
FAIL_REGEX "An invalid option .* appears on the command line" # Cray
|
||||
FAIL_REGEX "WARNING: invalid compiler option" # TI armcl
|
||||
)
|
||||
endmacro ()
|
|
@ -9,6 +9,18 @@ const char info_sizeof_dptr[] = {
|
|||
/* clang-format on */
|
||||
};
|
||||
|
||||
/* Byte order. Only one of these will have bytes in the right order. */
|
||||
static unsigned short const info_byte_order_big_endian[] = {
|
||||
/* INFO:byte_order string for BIG_ENDIAN */
|
||||
0x494E, 0x464F, 0x3A62, 0x7974, 0x655F, 0x6F72, 0x6465, 0x725B,
|
||||
0x4249, 0x475F, 0x454E, 0x4449, 0x414E, 0x5D00, 0x0000
|
||||
};
|
||||
static unsigned short const info_byte_order_little_endian[] = {
|
||||
/* INFO:byte_order string for LITTLE_ENDIAN */
|
||||
0x4E49, 0x4F46, 0x623A, 0x7479, 0x5F65, 0x726F, 0x6564, 0x5B72,
|
||||
0x494C, 0x5454, 0x454C, 0x455F, 0x444E, 0x4149, 0x5D4E, 0x0000
|
||||
};
|
||||
|
||||
/* Application Binary Interface. */
|
||||
|
||||
/* Check for (some) ARM ABIs.
|
|
@ -13,12 +13,12 @@ endfunction()
|
|||
|
||||
function(compiler_id_detection outvar lang)
|
||||
|
||||
if (NOT lang STREQUAL Fortran AND NOT lang STREQUAL CSharp
|
||||
AND NOT lang STREQUAL ISPC)
|
||||
if (NOT "x${lang}" STREQUAL "xFortran" AND NOT "x${lang}" STREQUAL "xCSharp"
|
||||
AND NOT "x${lang}" STREQUAL "xISPC")
|
||||
file(GLOB lang_files
|
||||
"${CMAKE_ROOT}/Modules/Compiler/*-DetermineCompiler.cmake")
|
||||
set(nonlang CXX)
|
||||
if (lang STREQUAL CXX)
|
||||
if ("x${lang}" STREQUAL "xCXX")
|
||||
set(nonlang C)
|
||||
endif()
|
||||
|
||||
|
@ -42,13 +42,14 @@ function(compiler_id_detection outvar lang)
|
|||
|
||||
# Order is relevant here. For example, compilers which pretend to be
|
||||
# GCC must appear before the actual GCC.
|
||||
if (lang STREQUAL CXX)
|
||||
if ("x${lang}" STREQUAL "xCXX")
|
||||
list(APPEND ordered_compilers
|
||||
Comeau
|
||||
)
|
||||
endif()
|
||||
list(APPEND ordered_compilers
|
||||
Intel
|
||||
IntelLLVM
|
||||
PathScale
|
||||
Embarcadero
|
||||
Borland
|
||||
|
@ -58,16 +59,20 @@ function(compiler_id_detection outvar lang)
|
|||
HP
|
||||
Compaq
|
||||
zOS
|
||||
IBMClang
|
||||
XLClang
|
||||
XL
|
||||
VisualAge
|
||||
NVHPC
|
||||
PGI
|
||||
Cray
|
||||
TI
|
||||
FujitsuClang
|
||||
Fujitsu
|
||||
GHS
|
||||
Tasking
|
||||
)
|
||||
if (lang STREQUAL C)
|
||||
if ("x${lang}" STREQUAL "xC")
|
||||
list(APPEND ordered_compilers
|
||||
TinyCC
|
||||
Bruce
|
||||
|
@ -78,19 +83,22 @@ function(compiler_id_detection outvar lang)
|
|||
ARMCC
|
||||
AppleClang
|
||||
ARMClang
|
||||
)
|
||||
list(APPEND ordered_compilers
|
||||
Clang
|
||||
LCC
|
||||
GNU
|
||||
MSVC
|
||||
ADSP
|
||||
IAR
|
||||
)
|
||||
if (lang STREQUAL C)
|
||||
if ("x${lang}" STREQUAL "xC")
|
||||
list(APPEND ordered_compilers
|
||||
SDCC
|
||||
)
|
||||
endif()
|
||||
|
||||
if(lang STREQUAL CUDA)
|
||||
if("x${lang}" STREQUAL "xCUDA")
|
||||
set(ordered_compilers NVIDIA Clang)
|
||||
endif()
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue