mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-20 13:11:34 +08:00
Add all subdirs to build directory
Change-Id: I27bf5e6644a0590bc932c0561e365a0684029c67 Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
This commit is contained in:

committed by
sys_ocldev

parent
c0342cdc87
commit
0c22cdfb74
401
CMakeLists.txt
401
CMakeLists.txt
@ -32,8 +32,8 @@ if(RELEASE_WITH_REGKEYS)
|
|||||||
endif(RELEASE_WITH_REGKEYS)
|
endif(RELEASE_WITH_REGKEYS)
|
||||||
|
|
||||||
if(NOT CMAKE_BUILD_TYPE)
|
if(NOT CMAKE_BUILD_TYPE)
|
||||||
message(STATUS "CMAKE_BUILD_TYPE not specified, using Release")
|
message(STATUS "CMAKE_BUILD_TYPE not specified, using Release")
|
||||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type: [Release, ReleaseInternal, Debug]" FORCE)
|
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type: [Release, ReleaseInternal, Debug]" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_definitions(-DCL_USE_DEPRECATED_OPENCL_1_1_APIS -DCL_USE_DEPRECATED_OPENCL_1_2_APIS -DCL_USE_DEPRECATED_OPENCL_2_0_APIS)
|
add_definitions(-DCL_USE_DEPRECATED_OPENCL_1_1_APIS -DCL_USE_DEPRECATED_OPENCL_1_2_APIS -DCL_USE_DEPRECATED_OPENCL_2_0_APIS)
|
||||||
@ -55,23 +55,23 @@ endif()
|
|||||||
|
|
||||||
string(TOLOWER "${CMAKE_BUILD_TYPE}" BUILD_TYPE_lower)
|
string(TOLOWER "${CMAKE_BUILD_TYPE}" BUILD_TYPE_lower)
|
||||||
if("${BUILD_TYPE_lower}" STREQUAL "releaseinternal")
|
if("${BUILD_TYPE_lower}" STREQUAL "releaseinternal")
|
||||||
add_definitions(-D_RELEASE_INTERNAL)
|
add_definitions(-D_RELEASE_INTERNAL)
|
||||||
endif("${BUILD_TYPE_lower}" STREQUAL "releaseinternal")
|
endif("${BUILD_TYPE_lower}" STREQUAL "releaseinternal")
|
||||||
|
|
||||||
message(STATUS "${CMAKE_BUILD_TYPE} build configuration")
|
message(STATUS "${CMAKE_BUILD_TYPE} build configuration")
|
||||||
|
|
||||||
# Set the runtime source directory
|
# Set the runtime source directory
|
||||||
if(NOT DEFINED IGDRCL_SOURCE_DIR)
|
if(NOT DEFINED IGDRCL_SOURCE_DIR)
|
||||||
set(IGDRCL_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
set(IGDRCL_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Set our build directory
|
# Set our build directory
|
||||||
if(NOT DEFINED IGDRCL_BUILD_DIR)
|
if(NOT DEFINED IGDRCL_BUILD_DIR)
|
||||||
set(IGDRCL_BUILD_DIR ${CMAKE_BINARY_DIR})
|
set(IGDRCL_BUILD_DIR ${CMAKE_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT IGDRCL_BINARY_DIR)
|
if(NOT IGDRCL_BINARY_DIR)
|
||||||
set(IGDRCL_BINARY_DIR ${CMAKE_BINARY_DIR})
|
set(IGDRCL_BINARY_DIR ${CMAKE_BINARY_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# we use c++14
|
# we use c++14
|
||||||
@ -89,17 +89,17 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${IGDRCL_BINARY_DIR}/lib)
|
|||||||
# We want to build with the static, multithreaded runtime libraries (as opposed
|
# We want to build with the static, multithreaded runtime libraries (as opposed
|
||||||
# to the multithreaded runtime DLLs)
|
# to the multithreaded runtime DLLs)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
string(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
string(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||||
string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
|
||||||
string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASEINTERNAL "${CMAKE_CXX_FLAGS_RELEASEINTERNAL}")
|
string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASEINTERNAL "${CMAKE_CXX_FLAGS_RELEASEINTERNAL}")
|
||||||
endif(MSVC)
|
endif(MSVC)
|
||||||
|
|
||||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
set(NEO_BITS "64")
|
set(NEO_BITS "64")
|
||||||
set(NEO_ARCH "x64")
|
set(NEO_ARCH "x64")
|
||||||
else()
|
else()
|
||||||
set(NEO_BITS "32")
|
set(NEO_BITS "32")
|
||||||
set(NEO_ARCH "x86")
|
set(NEO_ARCH "x86")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT KMDAF_HEADERS_DIR)
|
if(NOT KMDAF_HEADERS_DIR)
|
||||||
@ -162,51 +162,51 @@ endif()
|
|||||||
message(STATUS "Khronos OpenGL headers dir: ${KHRONOS_GL_HEADERS_DIR}")
|
message(STATUS "Khronos OpenGL headers dir: ${KHRONOS_GL_HEADERS_DIR}")
|
||||||
|
|
||||||
if(NOT THIRD_PARTY_DIR)
|
if(NOT THIRD_PARTY_DIR)
|
||||||
get_filename_component(THIRD_PARTY_DIR "../third_party/" ABSOLUTE)
|
get_filename_component(THIRD_PARTY_DIR "../third_party/" ABSOLUTE)
|
||||||
endif(NOT THIRD_PARTY_DIR)
|
endif(NOT THIRD_PARTY_DIR)
|
||||||
message(STATUS "Third party dir: ${THIRD_PARTY_DIR}")
|
message(STATUS "Third party dir: ${THIRD_PARTY_DIR}")
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# get WDK location and version to use
|
# get WDK location and version to use
|
||||||
if(NOT WDK_DIR)
|
if(NOT WDK_DIR)
|
||||||
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../wdk")
|
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../wdk")
|
||||||
get_filename_component(WDK_DIR "../wdk" ABSOLUTE)
|
get_filename_component(WDK_DIR "../wdk" ABSOLUTE)
|
||||||
endif()
|
endif()
|
||||||
endif(NOT WDK_DIR)
|
endif(NOT WDK_DIR)
|
||||||
if(WDK_DIR)
|
if(WDK_DIR)
|
||||||
if(IS_DIRECTORY "${WDK_DIR}/Win15")
|
if(IS_DIRECTORY "${WDK_DIR}/Win15")
|
||||||
get_filename_component(WDK_DIR "${WDK_DIR}/Win15" ABSOLUTE)
|
get_filename_component(WDK_DIR "${WDK_DIR}/Win15" ABSOLUTE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
message(STATUS "WDK Directory: ${WDK_DIR}")
|
message(STATUS "WDK Directory: ${WDK_DIR}")
|
||||||
|
|
||||||
if(NOT WDK_VERSION)
|
if(NOT WDK_VERSION)
|
||||||
# Get WDK version from ${WDK_DIR}/WDKVersion.txt
|
# Get WDK version from ${WDK_DIR}/WDKVersion.txt
|
||||||
file(READ "${WDK_DIR}/WDKVersion.txt" WindowsTargetPlatformVersion)
|
file(READ "${WDK_DIR}/WDKVersion.txt" WindowsTargetPlatformVersion)
|
||||||
string(REPLACE " " ";" WindowsTargetPlatformVersion ${WindowsTargetPlatformVersion})
|
string(REPLACE " " ";" WindowsTargetPlatformVersion ${WindowsTargetPlatformVersion})
|
||||||
list(LENGTH WindowsTargetPlatformVersion versionListLength)
|
list(LENGTH WindowsTargetPlatformVersion versionListLength)
|
||||||
if(NOT versionListLength EQUAL 3)
|
if(NOT versionListLength EQUAL 3)
|
||||||
message(ERROR "Error reading content of WDKVersion.txt file")
|
message(ERROR "Error reading content of WDKVersion.txt file")
|
||||||
endif(NOT versionListLength EQUAL 3)
|
endif(NOT versionListLength EQUAL 3)
|
||||||
list(GET WindowsTargetPlatformVersion 2 WindowsTargetPlatformVersion)
|
list(GET WindowsTargetPlatformVersion 2 WindowsTargetPlatformVersion)
|
||||||
else()
|
else()
|
||||||
set(WindowsTargetPlatformVersion ${WDK_VERSION})
|
set(WindowsTargetPlatformVersion ${WDK_VERSION})
|
||||||
endif()
|
endif()
|
||||||
message(STATUS "WDK Version is ${WindowsTargetPlatformVersion}")
|
message(STATUS "WDK Version is ${WindowsTargetPlatformVersion}")
|
||||||
|
|
||||||
if(${WindowsTargetPlatformVersion} VERSION_LESS "10.0.18328.0")
|
if(${WindowsTargetPlatformVersion} VERSION_LESS "10.0.18328.0")
|
||||||
set(CONST_FROM_WDK_10_0_18328_0)
|
set(CONST_FROM_WDK_10_0_18328_0)
|
||||||
else()
|
else()
|
||||||
set(CONST_FROM_WDK_10_0_18328_0 "CONST")
|
set(CONST_FROM_WDK_10_0_18328_0 "CONST")
|
||||||
endif()
|
endif()
|
||||||
add_compile_options(-DCONST_FROM_WDK_10_0_18328_0=${CONST_FROM_WDK_10_0_18328_0})
|
add_compile_options(-DCONST_FROM_WDK_10_0_18328_0=${CONST_FROM_WDK_10_0_18328_0})
|
||||||
|
|
||||||
set(WDK_INCLUDE_PATHS
|
set(WDK_INCLUDE_PATHS
|
||||||
"${WDK_DIR}/Include/${WindowsTargetPlatformVersion}/um"
|
"${WDK_DIR}/Include/${WindowsTargetPlatformVersion}/um"
|
||||||
"${WDK_DIR}/Include/${WindowsTargetPlatformVersion}/shared"
|
"${WDK_DIR}/Include/${WindowsTargetPlatformVersion}/shared"
|
||||||
"${WDK_DIR}/Include/${WindowsTargetPlatformVersion}/km"
|
"${WDK_DIR}/Include/${WindowsTargetPlatformVersion}/km"
|
||||||
)
|
)
|
||||||
message(STATUS "WDK include paths: ${WDK_INCLUDE_PATHS}")
|
message(STATUS "WDK include paths: ${WDK_INCLUDE_PATHS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Intel Graphics Compiler detection
|
# Intel Graphics Compiler detection
|
||||||
@ -251,7 +251,7 @@ if(NOT IGC__IGC_TARGETS)
|
|||||||
|
|
||||||
set(IGC_OPTION__OUTPUT_DIR "${IGDRCL_BUILD_DIR}/igc")
|
set(IGC_OPTION__OUTPUT_DIR "${IGDRCL_BUILD_DIR}/igc")
|
||||||
set(IGC_OPTION__INCLUDE_IGC_COMPILER_TOOLS OFF)
|
set(IGC_OPTION__INCLUDE_IGC_COMPILER_TOOLS OFF)
|
||||||
add_subdirectory("${IGC_DIR}" "${IGDRCL_BUILD_DIR}/igc" EXCLUDE_FROM_ALL)
|
add_subdirectory_unique("${IGC_DIR}" "${IGDRCL_BUILD_DIR}/igc" EXCLUDE_FROM_ALL)
|
||||||
|
|
||||||
set(IGDRCL__IGC_TARGETS "${IGC__IGC_TARGETS}")
|
set(IGDRCL__IGC_TARGETS "${IGC__IGC_TARGETS}")
|
||||||
foreach(TARGET_tmp ${IGDRCL__IGC_TARGETS})
|
foreach(TARGET_tmp ${IGDRCL__IGC_TARGETS})
|
||||||
@ -322,7 +322,7 @@ if(NOT DEFINED GMMUMD_LIB_NAME)
|
|||||||
else()
|
else()
|
||||||
if(EXISTS "${GMM_SOURCE_DIR}/CMakeLists.txt")
|
if(EXISTS "${GMM_SOURCE_DIR}/CMakeLists.txt")
|
||||||
message(STATUS "GmmLib source dir is: ${GMM_SOURCE_DIR}")
|
message(STATUS "GmmLib source dir is: ${GMM_SOURCE_DIR}")
|
||||||
add_subdirectory("${GMM_SOURCE_DIR}" "${IGDRCL_BUILD_DIR}/gmmlib")
|
add_subdirectory_unique("${GMM_SOURCE_DIR}" "${IGDRCL_BUILD_DIR}/gmmlib")
|
||||||
|
|
||||||
if(NOT DEFINED GMMUMD_LIB_NAME)
|
if(NOT DEFINED GMMUMD_LIB_NAME)
|
||||||
set(GMMUMD_LIB_NAME "igfx_gmmumd_dll")
|
set(GMMUMD_LIB_NAME "igfx_gmmumd_dll")
|
||||||
@ -364,7 +364,7 @@ if(NOT INSTRUMENTATION_LIB_NAME)
|
|||||||
endif()
|
endif()
|
||||||
if(IS_DIRECTORY "${INSTRUMENTATION_SOURCE_DIR}")
|
if(IS_DIRECTORY "${INSTRUMENTATION_SOURCE_DIR}")
|
||||||
message(STATUS "Instrumentation source dir is: ${INSTRUMENTATION_SOURCE_DIR}")
|
message(STATUS "Instrumentation source dir is: ${INSTRUMENTATION_SOURCE_DIR}")
|
||||||
add_subdirectory("${INSTRUMENTATION_SOURCE_DIR}" "${IGDRCL_BUILD_DIR}/instrumentation")
|
add_subdirectory_unique("${INSTRUMENTATION_SOURCE_DIR}" "${IGDRCL_BUILD_DIR}/instrumentation")
|
||||||
set(INSTRUMENTATION_LIB_NAME "instrumentation_umd")
|
set(INSTRUMENTATION_LIB_NAME "instrumentation_umd")
|
||||||
set(HAVE_INSTRUMENTATION TRUE)
|
set(HAVE_INSTRUMENTATION TRUE)
|
||||||
endif()
|
endif()
|
||||||
@ -427,12 +427,12 @@ if(NEO_BITS STREQUAL "64")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
add_subdirectory(third_party/gtest)
|
add_subdirectory_unique(third_party/gtest)
|
||||||
|
|
||||||
message(STATUS "AUB_STREAM_DIR = ${AUB_STREAM_DIR}" )
|
message(STATUS "AUB_STREAM_DIR = ${AUB_STREAM_DIR}" )
|
||||||
if(DEFINED AUB_STREAM_DIR)
|
if(DEFINED AUB_STREAM_DIR)
|
||||||
set(AUB_STREAM_PROJECT_NAME "aub_stream")
|
set(AUB_STREAM_PROJECT_NAME "aub_stream")
|
||||||
add_subdirectory(${AUB_STREAM_DIR} ${CMAKE_BINARY_DIR}/aub_stream EXCLUDE_FROM_ALL)
|
add_subdirectory_unique(${AUB_STREAM_DIR} ${CMAKE_BINARY_DIR}/aub_stream EXCLUDE_FROM_ALL)
|
||||||
set(ENGINE_NODE_DIR ${AUB_STREAM_DIR}/aub_mem_dump${BRANCH_DIR_SUFFIX}/includes)
|
set(ENGINE_NODE_DIR ${AUB_STREAM_DIR}/aub_mem_dump${BRANCH_DIR_SUFFIX}/includes)
|
||||||
else()
|
else()
|
||||||
set(ENGINE_NODE_DIR ${AUB_STREAM_HEADERS_DIR})
|
set(ENGINE_NODE_DIR ${AUB_STREAM_HEADERS_DIR})
|
||||||
@ -466,9 +466,9 @@ option(APPVERIFIER_ALLOWED "allow use of AppVerifier" OFF)
|
|||||||
option(CCACHE_ALLOWED "allow use of ccache" TRUE)
|
option(CCACHE_ALLOWED "allow use of ccache" TRUE)
|
||||||
find_program(CCACHE_EXE_FOUND ccache)
|
find_program(CCACHE_EXE_FOUND ccache)
|
||||||
if(CCACHE_EXE_FOUND AND CCACHE_ALLOWED)
|
if(CCACHE_EXE_FOUND AND CCACHE_ALLOWED)
|
||||||
message(STATUS "Found ccache: ${CCACHE_EXE_FOUND}")
|
message(STATUS "Found ccache: ${CCACHE_EXE_FOUND}")
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Miscs options
|
# Miscs options
|
||||||
@ -479,177 +479,177 @@ set(CL_CACHE_LOCATION "cl_cache" CACHE STRING "OpenCL program binary cache locat
|
|||||||
|
|
||||||
# Put profiling enable flag into define
|
# Put profiling enable flag into define
|
||||||
if(OCL_RUNTIME_PROFILING)
|
if(OCL_RUNTIME_PROFILING)
|
||||||
add_definitions(-DOCL_RUNTIME_PROFILING=${OCL_RUNTIME_PROFILING})
|
add_definitions(-DOCL_RUNTIME_PROFILING=${OCL_RUNTIME_PROFILING})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# Force to treat warnings as errors
|
# Force to treat warnings as errors
|
||||||
if(NOT CMAKE_CXX_FLAGS MATCHES "/WX")
|
if(NOT CMAKE_CXX_FLAGS MATCHES "/WX")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
|
||||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
|
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /we4189")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /we4189")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Disable generating manifest
|
# Disable generating manifest
|
||||||
set(LINKER_FLAGS "/MANIFEST:NO")
|
set(LINKER_FLAGS "/MANIFEST:NO")
|
||||||
|
|
||||||
# Support for WUD
|
# Support for WUD
|
||||||
set(CMAKE_CXX_STANDARD_LIBRARIES "onecore.lib")
|
set(CMAKE_CXX_STANDARD_LIBRARIES "onecore.lib")
|
||||||
foreach(IT kernel32.lib;user32.lib;gdi32.lib;advapi32.lib;ole32.lib;)
|
foreach(IT kernel32.lib;user32.lib;gdi32.lib;advapi32.lib;ole32.lib;)
|
||||||
set(LINKER_FLAGS "${LINKER_FLAGS} /NODEFAULTLIB:${IT}")
|
set(LINKER_FLAGS "${LINKER_FLAGS} /NODEFAULTLIB:${IT}")
|
||||||
endforeach()
|
endforeach()
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
||||||
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${LINKER_FLAGS}")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINKER_FLAGS}")
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${LINKER_FLAGS}")
|
||||||
add_definitions(-DUNICODE -D_UNICODE)
|
add_definitions(-DUNICODE -D_UNICODE)
|
||||||
link_directories("${WDK_DIR}/Lib/${WindowsTargetPlatformVersion}/um/${NEO_ARCH}/")
|
link_directories("${WDK_DIR}/Lib/${WindowsTargetPlatformVersion}/um/${NEO_ARCH}/")
|
||||||
else()
|
else()
|
||||||
if(IGDRCL_GCOV)
|
if(IGDRCL_GCOV)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage --coverage")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage --coverage")
|
||||||
endif()
|
endif()
|
||||||
option(USE_ASAN "Link with address sanitization support" OFF)
|
option(USE_ASAN "Link with address sanitization support" OFF)
|
||||||
if(USE_ASAN)
|
if(USE_ASAN)
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
set(ASAN_FLAGS " -fsanitize=address -fno-omit-frame-pointer -DSANITIZER_BUILD")
|
set(ASAN_FLAGS " -fsanitize=address -fno-omit-frame-pointer -DSANITIZER_BUILD")
|
||||||
set(ASAN_LIBS "asan")
|
set(ASAN_LIBS "asan")
|
||||||
else()
|
else()
|
||||||
message(STATUS "Address sanitization with clang not yet support")
|
message(STATUS "Address sanitization with clang not yet support")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(USE_TSAN)
|
if(USE_TSAN)
|
||||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
||||||
set(TSAN_FLAGS " -fsanitize=thread -DSANITIZER_BUILD")
|
set(TSAN_FLAGS " -fsanitize=thread -DSANITIZER_BUILD")
|
||||||
set(TSAN_LIBS "tsan")
|
set(TSAN_LIBS "tsan")
|
||||||
else()
|
else()
|
||||||
message(STATUS "Thread sanitization with gcc is not fully supported")
|
message(STATUS "Thread sanitization with gcc is not fully supported")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# setup variables needed for custom configuration type
|
# setup variables needed for custom configuration type
|
||||||
# generate PDB files even for release build on MSVC
|
# generate PDB files even for release build on MSVC
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS_RELEASEINTERNAL "${CMAKE_CXX_FLAGS_RELEASEINTERNAL} /Zi")
|
set(CMAKE_CXX_FLAGS_RELEASEINTERNAL "${CMAKE_CXX_FLAGS_RELEASEINTERNAL} /Zi")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASEINTERNAL "${CMAKE_SHARED_LINKER_FLAGS_RELEASEINTERNAL} /DEBUG /OPT:REF /OPT:ICF")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASEINTERNAL "${CMAKE_SHARED_LINKER_FLAGS_RELEASEINTERNAL} /DEBUG /OPT:REF /OPT:ICF")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# spectre mitigation
|
# spectre mitigation
|
||||||
include(CheckCXXCompilerFlag)
|
include(CheckCXXCompilerFlag)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
check_cxx_compiler_flag(/Qspectre COMPILER_SUPPORTS_QSPECTRE)
|
check_cxx_compiler_flag(/Qspectre COMPILER_SUPPORTS_QSPECTRE)
|
||||||
check_cxx_compiler_flag(/d2guardspecload COMPILER_SUPPORTS_D2GUARDSPECLOAD)
|
check_cxx_compiler_flag(/d2guardspecload COMPILER_SUPPORTS_D2GUARDSPECLOAD)
|
||||||
if(COMPILER_SUPPORTS_QSPECTRE)
|
if(COMPILER_SUPPORTS_QSPECTRE)
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Qspectre")
|
||||||
elseif(COMPILER_SUPPORTS_D2GUARDSPECLOAD)
|
elseif(COMPILER_SUPPORTS_D2GUARDSPECLOAD)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /d2guardspecload")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /d2guardspecload")
|
||||||
else()
|
else()
|
||||||
message(WARNING "Spectre mitigation is not supported by the compiler")
|
message(WARNING "Spectre mitigation is not supported by the compiler")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
||||||
check_cxx_compiler_flag(-mretpoline COMPILER_SUPPORTS_RETPOLINE)
|
check_cxx_compiler_flag(-mretpoline COMPILER_SUPPORTS_RETPOLINE)
|
||||||
if(COMPILER_SUPPORTS_RETPOLINE)
|
if(COMPILER_SUPPORTS_RETPOLINE)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mretpoline")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mretpoline")
|
||||||
else()
|
else()
|
||||||
message(WARNING "Spectre mitigation -mretpoline flag is not supported by the compiler")
|
message(WARNING "Spectre mitigation -mretpoline flag is not supported by the compiler")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
check_cxx_compiler_flag(-mindirect-branch=thunk COMPILER_SUPPORTS_INDIRECT_BRANCH_THUNK)
|
check_cxx_compiler_flag(-mindirect-branch=thunk COMPILER_SUPPORTS_INDIRECT_BRANCH_THUNK)
|
||||||
if(COMPILER_SUPPORTS_INDIRECT_BRANCH_THUNK)
|
if(COMPILER_SUPPORTS_INDIRECT_BRANCH_THUNK)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mindirect-branch=thunk")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mindirect-branch=thunk")
|
||||||
else()
|
else()
|
||||||
message(WARNING "Spectre mitigation -mindirect-branch=thunk flag is not supported by the compiler")
|
message(WARNING "Spectre mitigation -mindirect-branch=thunk flag is not supported by the compiler")
|
||||||
endif()
|
endif()
|
||||||
check_cxx_compiler_flag(-mfunction-return=thunk COMPILER_SUPPORTS_FUNCTION_RETURN_THUNK)
|
check_cxx_compiler_flag(-mfunction-return=thunk COMPILER_SUPPORTS_FUNCTION_RETURN_THUNK)
|
||||||
if(COMPILER_SUPPORTS_FUNCTION_RETURN_THUNK)
|
if(COMPILER_SUPPORTS_FUNCTION_RETURN_THUNK)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfunction-return=thunk")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfunction-return=thunk")
|
||||||
else()
|
else()
|
||||||
message(WARNING "Spectre mitigation -mfunction-return=thunk flag is not supported by the compiler")
|
message(WARNING "Spectre mitigation -mfunction-return=thunk flag is not supported by the compiler")
|
||||||
endif()
|
endif()
|
||||||
check_cxx_compiler_flag(-mindirect-branch-register COMPILER_SUPPORTS_INDIRECT_BRANCH_REGISTER)
|
check_cxx_compiler_flag(-mindirect-branch-register COMPILER_SUPPORTS_INDIRECT_BRANCH_REGISTER)
|
||||||
if(COMPILER_SUPPORTS_INDIRECT_BRANCH_REGISTER)
|
if(COMPILER_SUPPORTS_INDIRECT_BRANCH_REGISTER)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mindirect-branch-register")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mindirect-branch-register")
|
||||||
else()
|
else()
|
||||||
message(WARNING "Spectre mitigation -mindirect-branch-register flag is not supported by the compiler")
|
message(WARNING "Spectre mitigation -mindirect-branch-register flag is not supported by the compiler")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif(MSVC)
|
endif(MSVC)
|
||||||
|
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
|
||||||
endif(NOT MSVC)
|
endif(NOT MSVC)
|
||||||
|
|
||||||
# Compiler warning flags
|
# Compiler warning flags
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wempty-body")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wempty-body")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wignored-qualifiers")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wignored-qualifiers")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wtype-limits")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wtype-limits")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wuninitialized")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wuninitialized")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra -Wno-unused-parameter -Wno-missing-field-initializers")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra -Wno-unused-parameter -Wno-missing-field-initializers")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Winvalid-pch")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Winvalid-pch")
|
||||||
|
|
||||||
if("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
if("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" )
|
||||||
# clang only
|
# clang only
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshorten-64-to-32")
|
||||||
if(USE_SANITIZE_UB)
|
if(USE_SANITIZE_UB)
|
||||||
message(STATUS "Enabling undefined behavior sanitizer")
|
message(STATUS "Enabling undefined behavior sanitizer")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -fno-sanitize-recover=undefined -fsanitize-recover=vptr -fno-rtti -DSANITIZER_BUILD")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -fno-sanitize-recover=undefined -fsanitize-recover=vptr -fno-rtti -DSANITIZER_BUILD")
|
||||||
endif(USE_SANITIZE_UB)
|
endif(USE_SANITIZE_UB)
|
||||||
if (NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6))
|
if (NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS 3.6))
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs -DSANITIZER_BUILD")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs -DSANITIZER_BUILD")
|
||||||
endif()
|
endif()
|
||||||
if (NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0))
|
if (NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.0))
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-register") # Added for htons()
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-register") # Added for htons()
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
# gcc only
|
# gcc only
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs -Wno-unused-but-set-variable")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs -Wno-unused-but-set-variable")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wclobbered")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wclobbered")
|
||||||
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 7.0)
|
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 7.0)
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wimplicit-fallthrough=4")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wimplicit-fallthrough=4")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-noexcept-type") # Added for gtest
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-noexcept-type") # Added for gtest
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Compile code with defenses enabled (settings to be used for production release code)
|
# Compile code with defenses enabled (settings to be used for production release code)
|
||||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GS")
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GS")
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /sdl")
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /sdl")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NXCompat")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /NXCompat")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DynamicBase")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DynamicBase")
|
||||||
if("${NEO_ARCH}" STREQUAL "x86")
|
if("${NEO_ARCH}" STREQUAL "x86")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /SafeSEH")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /SafeSEH")
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -D_FORTIFY_SOURCE=2")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -D_FORTIFY_SOURCE=2")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security")
|
||||||
else()
|
else()
|
||||||
# gcc, g++ only
|
# gcc, g++ only
|
||||||
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
|
if (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.9)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector")
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector-strong")
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -D_FORTIFY_SOURCE=2")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -D_FORTIFY_SOURCE=2")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wformat -Wformat-security")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -Wl,-z,noexecstack")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -Wl,-z,noexecstack")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -Wl,-z,relro")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -Wl,-z,relro")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -Wl,-z,now")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -Wl,-z,now")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Project-wide include paths
|
# Project-wide include paths
|
||||||
@ -686,9 +686,9 @@ else()
|
|||||||
set(TargetDir ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
set(TargetDir ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||||
endif(MSVC)
|
endif(MSVC)
|
||||||
|
|
||||||
add_subdirectory(offline_compiler ${IGDRCL_BUILD_DIR}/offline_compiler)
|
add_subdirectory_unique(offline_compiler ${IGDRCL_BUILD_DIR}/offline_compiler)
|
||||||
target_compile_definitions(ocloc PRIVATE MOCKABLE_VIRTUAL=)
|
target_compile_definitions(ocloc PRIVATE MOCKABLE_VIRTUAL=)
|
||||||
add_subdirectory(core)
|
add_subdirectory_unique(core)
|
||||||
|
|
||||||
macro(generate_runtime_lib LIB_NAME MOCKABLE GENERATE_EXEC)
|
macro(generate_runtime_lib LIB_NAME MOCKABLE GENERATE_EXEC)
|
||||||
set(NEO_STATIC_LIB_NAME ${LIB_NAME})
|
set(NEO_STATIC_LIB_NAME ${LIB_NAME})
|
||||||
@ -719,7 +719,7 @@ set(BUILTINS_SOURCES_LIB_NAME "builtins_sources")
|
|||||||
set(BUILTINS_BINARIES_LIB_NAME "builtins_binaries")
|
set(BUILTINS_BINARIES_LIB_NAME "builtins_binaries")
|
||||||
set(SCHEDULER_BINARY_LIB_NAME "scheduler_binary")
|
set(SCHEDULER_BINARY_LIB_NAME "scheduler_binary")
|
||||||
|
|
||||||
add_subdirectory(elf)
|
add_subdirectory_unique(elf)
|
||||||
if(DONT_CARE_OF_VIRTUALS)
|
if(DONT_CARE_OF_VIRTUALS)
|
||||||
message(STATUS "All targets will use virtuals")
|
message(STATUS "All targets will use virtuals")
|
||||||
|
|
||||||
@ -736,16 +736,18 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(DEFAULT_TESTED_PLATFORM)
|
if(DEFAULT_TESTED_PLATFORM)
|
||||||
add_subdirectory(unit_tests ${IGDRCL_BUILD_DIR}/unit_tests)
|
add_subdirectory_unique(unit_tests ${IGDRCL_BUILD_DIR}/unit_tests)
|
||||||
|
else()
|
||||||
|
hide_subdir(unit_tests)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(DONT_LINK_ELF_STATICALLY TRUE)
|
set(DONT_LINK_ELF_STATICALLY TRUE)
|
||||||
if(EXISTS ${IGDRCL_SOURCE_DIR}/../internal)
|
if(EXISTS ${IGDRCL_SOURCE_DIR}/../internal)
|
||||||
add_subdirectory(${IGDRCL_SOURCE_DIR}/../internal ${IGDRCL_BUILD_DIR}/internal)
|
add_subdirectory_unique(${IGDRCL_SOURCE_DIR}/../internal ${IGDRCL_BUILD_DIR}/internal)
|
||||||
endif(EXISTS ${IGDRCL_SOURCE_DIR}/../internal)
|
endif(EXISTS ${IGDRCL_SOURCE_DIR}/../internal)
|
||||||
|
|
||||||
include(package.cmake)
|
include(package.cmake)
|
||||||
add_subdirectory(scripts/lint)
|
add_subdirectory_unique(scripts/lint)
|
||||||
|
|
||||||
configure_file(config.h.in ${IGDRCL_BUILD_DIR}/config.h)
|
configure_file(config.h.in ${IGDRCL_BUILD_DIR}/config.h)
|
||||||
if(WIN32 AND NOT IGDRCL__IGC_FOUND)
|
if(WIN32 AND NOT IGDRCL__IGC_FOUND)
|
||||||
@ -753,3 +755,6 @@ if(WIN32 AND NOT IGDRCL__IGC_FOUND)
|
|||||||
endif()
|
endif()
|
||||||
configure_file(driver_version.h.in ${IGDRCL_BUILD_DIR}/driver_version.h) # Put Driver version into define
|
configure_file(driver_version.h.in ${IGDRCL_BUILD_DIR}/driver_version.h) # Put Driver version into define
|
||||||
configure_file(lib_names.h.in ${IGDRCL_BUILD_DIR}/lib_names.h)
|
configure_file(lib_names.h.in ${IGDRCL_BUILD_DIR}/lib_names.h)
|
||||||
|
|
||||||
|
hide_subdir(runtime)
|
||||||
|
add_subdirectories()
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# Copyright (C) 2018 Intel Corporation
|
# Copyright (C) 2018-2019 Intel Corporation
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
#
|
#
|
||||||
@ -9,6 +9,14 @@ macro(hide_subdir subdir)
|
|||||||
set(${subdir_relative}_hidden} TRUE)
|
set(${subdir_relative}_hidden} TRUE)
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
macro(add_subdirectory_unique subdir)
|
||||||
|
file(RELATIVE_PATH subdir_relative ${IGDRCL_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${subdir})
|
||||||
|
if(NOT ${subdir_relative}_hidden})
|
||||||
|
add_subdirectory(${subdir} ${ARGN})
|
||||||
|
endif()
|
||||||
|
hide_subdir(${subdir})
|
||||||
|
endmacro()
|
||||||
|
|
||||||
macro(add_subdirectories)
|
macro(add_subdirectories)
|
||||||
file(GLOB subdirectories RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*)
|
file(GLOB subdirectories RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*)
|
||||||
foreach(subdir ${subdirectories})
|
foreach(subdir ${subdirectories})
|
||||||
|
Reference in New Issue
Block a user