Import Geant4 11.0.0.beta source tree
This commit is contained in:
+40
-1
@@ -13,7 +13,9 @@ include(Compilers)
|
||||
include(MacroUtilities)
|
||||
|
||||
ptl_add_interface_library(ptl-compile-options)
|
||||
ptl_add_interface_library(ptl-public-options)
|
||||
ptl_add_interface_library(ptl-external-libraries)
|
||||
ptl_add_interface_library(ptl-sanitizer-options)
|
||||
|
||||
# ---------------------------------------------------------------------------- #
|
||||
#
|
||||
@@ -25,7 +27,7 @@ ptl_add_interface_library(ptl-external-libraries)
|
||||
if("${CMAKE_PROJECT_NAME}" STREQUAL "${PROJECT_NAME}")
|
||||
set(_BIN_DIR ${PROJECT_BINARY_DIR})
|
||||
if(WIN32)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${_BIN_DIR}/outputs/Runtime)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${_BIN_DIR}/outputs/runtime)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${_BIN_DIR}/outputs/library)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${_BIN_DIR}/outputs/archive)
|
||||
else()
|
||||
@@ -45,3 +47,40 @@ else()
|
||||
target_compile_definitions(ptl-compile-options INTERFACE NDEBUG)
|
||||
endif()
|
||||
|
||||
if(PTL_USE_LOCKS)
|
||||
target_compile_definitions(ptl-public-options INTERFACE PTL_USE_LOCKS)
|
||||
endif()
|
||||
|
||||
if(PTL_USE_COVERAGE)
|
||||
target_compile_options(ptl-public-options INTERFACE
|
||||
$<BUILD_INTERFACE:-fprofile-arcs>
|
||||
$<BUILD_INTERFACE:-ftest-coverage>)
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
target_compile_options(ptl-public-options INTERFACE
|
||||
$<BUILD_INTERFACE:-fprofile-abs-path>
|
||||
$<BUILD_INTERFACE:--coverage>)
|
||||
set_target_properties(ptl-public-options PROPERTIES
|
||||
INTERFACE_LINK_OPTIONS
|
||||
$<BUILD_INTERFACE:--coverage>)
|
||||
else()
|
||||
set_target_properties(ptl-public-options PROPERTIES
|
||||
INTERFACE_LINK_OPTIONS
|
||||
$<BUILD_INTERFACE:-fprofile-arcs>)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(PTL_USE_SANITIZER AND PTL_SANITIZER_TYPE)
|
||||
if("${PTL_SANITIZER_TYPE}" STREQUAL "thread")
|
||||
target_compile_options(ptl-sanitizer-options INTERFACE
|
||||
-fsanitize=${PTL_SANITIZER_TYPE})
|
||||
else()
|
||||
target_compile_options(ptl-sanitizer-options INTERFACE
|
||||
-fsanitize=${PTL_SANITIZER_TYPE}
|
||||
-fno-optimize-sibling-calls
|
||||
-fno-omit-frame-pointer
|
||||
-fno-inline-functions)
|
||||
endif()
|
||||
target_link_options(ptl-sanitizer-options INTERFACE
|
||||
-fsanitize=${PTL_SANITIZER_TYPE})
|
||||
endif()
|
||||
|
||||
|
||||
+8
-23
@@ -6,35 +6,20 @@
|
||||
|
||||
find_program(CLANG_FORMATTER
|
||||
NAMES
|
||||
clang-format-8.0
|
||||
clang-format-7.0
|
||||
clang-format-6
|
||||
clang-format-6.0
|
||||
clang-format-mp-6.0 # macports
|
||||
clang-format)
|
||||
|
||||
if(CLANG_FORMATTER)
|
||||
set(_Source_DIR ${PROJECT_SOURCE_DIR})
|
||||
set(_Example_DIR ${PROJECT_SOURCE_DIR}/examples)
|
||||
|
||||
set(_Header_DIR ${_Source_DIR}/PTL)
|
||||
set(_Basic_DIR ${_Example_DIR}/basic)
|
||||
set(_Common_DIR ${_Example_DIR}/common)
|
||||
set(_Extended_DIR ${_Example_DIR}/extended/rotation)
|
||||
set(_Gpu_DIR ${_Example_DIR}/gpu)
|
||||
set(_Source_DIR ${PROJECT_SOURCE_DIR}/src)
|
||||
set(_Header_DIR ${PROJECT_SOURCE_DIR}/include)
|
||||
|
||||
file(GLOB headers
|
||||
${_Header_DIR}/*.hh ${_Header_DIR}/*.icc
|
||||
${_Basic_DIR}/*.hh ${_Common_DIR}/*.hh
|
||||
${_Gpu_DIR}/*.h ${_Gpu_DIR}/*.hh
|
||||
${_Extended_DIR}/*.h ${_Extended_DIR}/*.hh)
|
||||
${_Header_DIR}/*.hh ${_Header_DIR}/*.icc)
|
||||
|
||||
file(GLOB sources
|
||||
${_Source_DIR}/*.cc ${_Extended_DIR}/*.cc
|
||||
${_Basic_DIR}/*.cc ${_Common_DIR}/*.cc
|
||||
${_Gpu_DIR}/*.cc ${_Gpu_DIR}/*.cu
|
||||
${_Extended_DIR}/*.cc)
|
||||
|
||||
file(GLOB_RECURSE extended
|
||||
${_Extended_DIR}/*.hh ${_Extended_DIR}/*.cc)
|
||||
${_Source_DIR}/*.cc)
|
||||
|
||||
# avoid conflicting format targets
|
||||
set(FORMAT_NAME format)
|
||||
@@ -43,9 +28,9 @@ if(CLANG_FORMATTER)
|
||||
endif()
|
||||
|
||||
add_custom_target(${FORMAT_NAME}
|
||||
COMMAND ${CLANG_FORMATTER} -i ${headers} ${sources} ${extended}
|
||||
COMMAND ${CLANG_FORMATTER} -i ${headers} ${sources}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
COMMENT "Running '${CLANG_FORMATTER}' on '${_Source_DIR}' and '${_Example_DIR}..."
|
||||
COMMENT "Running '${CLANG_FORMATTER}' on '${_Source_DIR}'..."
|
||||
SOURCES ${headers} ${sources})
|
||||
|
||||
endif()
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
# - MSVC
|
||||
#
|
||||
|
||||
# include guard
|
||||
include_guard(DIRECTORY)
|
||||
|
||||
include(CheckLanguage)
|
||||
|
||||
include(CheckCCompilerFlag)
|
||||
|
||||
+9
-19
@@ -127,27 +127,17 @@ FIND_LIBRARY(TBB_LIBRARY_DEBUG
|
||||
PATH_SUFFIXES ${_TBB_POSSIBLE_LIB_SUFFIXES}
|
||||
DOC "TBB debug library")
|
||||
|
||||
IF(TBB_LIBRARY_RELEASE AND TBB_LIBRARY_DEBUG)
|
||||
IF(TBB_LIBRARY_DEBUG AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
|
||||
IF(NOT TBB_LIBRARY)
|
||||
SET(TBB_LIBRARY optimized ${TBB_LIBRARY_RELEASE} debug ${TBB_LIBRARY_DEBUG}
|
||||
CACHE DOC "TBB library" FORCE)
|
||||
SET(TBB_LIBRARY ${TBB_LIBRARY_DEBUG} CACHE FILEPATH "TBB library" FORCE)
|
||||
ENDIF(NOT TBB_LIBRARY)
|
||||
LIST(APPEND _TBB_ALL_LIBS optimized ${TBB_LIBRARY_RELEASE} debug ${TBB_LIBRARY_DEBUG})
|
||||
ELSE()
|
||||
IF(TBB_LIBRARY_DEBUG)
|
||||
IF(NOT TBB_LIBRARY)
|
||||
SET(TBB_LIBRARY ${TBB_LIBRARY_DEBUG} CACHE FILEPATH "TBB library" FORCE)
|
||||
ENDIF(NOT TBB_LIBRARY)
|
||||
LIST(APPEND _TBB_ALL_LIBS ${TBB_LIBRARY_DEBUG})
|
||||
ENDIF(TBB_LIBRARY_DEBUG)
|
||||
|
||||
IF(TBB_LIBRARY_RELEASE)
|
||||
IF(NOT TBB_LIBRARY)
|
||||
SET(TBB_LIBRARY ${TBB_LIBRARY_RELEASE} CACHE FILEPATH "TBB library" FORCE)
|
||||
ENDIF(NOT TBB_LIBRARY)
|
||||
LIST(APPEND _TBB_ALL_LIBS ${TBB_LIBRARY_RELEASE})
|
||||
ENDIF()
|
||||
ENDIF(TBB_LIBRARY_RELEASE AND TBB_LIBRARY_DEBUG)
|
||||
LIST(APPEND _TBB_ALL_LIBS ${TBB_LIBRARY_DEBUG})
|
||||
ELSEIF(TBB_LIBRARY_RELEASE)
|
||||
IF(NOT TBB_LIBRARY)
|
||||
SET(TBB_LIBRARY ${TBB_LIBRARY_RELEASE} CACHE FILEPATH "TBB library" FORCE)
|
||||
ENDIF(NOT TBB_LIBRARY)
|
||||
LIST(APPEND _TBB_ALL_LIBS ${TBB_LIBRARY_RELEASE})
|
||||
ENDIF()
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
+76
-62
@@ -35,6 +35,9 @@
|
||||
#
|
||||
#
|
||||
|
||||
# - Include guard
|
||||
include_guard(DIRECTORY)
|
||||
|
||||
cmake_policy(PUSH)
|
||||
if(NOT CMAKE_VERSION VERSION_LESS 3.1)
|
||||
cmake_policy(SET CMP0054 NEW)
|
||||
@@ -49,7 +52,7 @@ include(CMakeParseArguments)
|
||||
# macro set_ifnot(<var> <value>)
|
||||
# If variable var is not set, set its value to that provided
|
||||
#
|
||||
macro(set_ifnot _var _value)
|
||||
macro(ptl_set_ifnot _var _value)
|
||||
if(NOT DEFINED ${_var})
|
||||
set(${_var} ${_value} ${ARGN})
|
||||
endif()
|
||||
@@ -59,7 +62,7 @@ endmacro()
|
||||
# macro safe_remove_duplicates(<list>)
|
||||
# ensures remove_duplicates is only called if list has values
|
||||
#
|
||||
macro(safe_remove_duplicates _list)
|
||||
macro(ptl_safe_remove_duplicates _list)
|
||||
if(NOT "${${_list}}" STREQUAL "")
|
||||
list(REMOVE_DUPLICATES ${_list})
|
||||
endif(NOT "${${_list}}" STREQUAL "")
|
||||
@@ -71,7 +74,7 @@ endmacro()
|
||||
# capitalize("SHARED" CShared)
|
||||
# message(STATUS "-- CShared is \"${CShared}\"")
|
||||
# $ -- CShared is "Shared"
|
||||
function(capitalize str var)
|
||||
function(ptl_capitalize str var)
|
||||
# make string lower
|
||||
string(TOLOWER "${str}" str)
|
||||
string(SUBSTRING "${str}" 0 1 _first)
|
||||
@@ -89,7 +92,7 @@ endfunction()
|
||||
# macro set_ifnot_match(<var> <value>)
|
||||
# If variable var is not set, set its value to that provided
|
||||
#
|
||||
macro(SET_IFNOT_MATCH VAR APPEND)
|
||||
macro(PTL_SET_IFNOT_MATCH VAR APPEND)
|
||||
if(NOT "${APPEND}" STREQUAL "")
|
||||
STRING(REGEX MATCH "${APPEND}" _MATCH "${${VAR}}")
|
||||
if(NOT "${_MATCH}" STREQUAL "")
|
||||
@@ -102,7 +105,7 @@ endmacro()
|
||||
# macro cache_ifnot(<var> <value>)
|
||||
# If variable var is not set, set its value to that provided and cache it
|
||||
#
|
||||
macro(cache_ifnot _var _value _type _doc)
|
||||
macro(ptl_cache_ifnot _var _value _type _doc)
|
||||
if(NOT ${_var} OR NOT ${CACHE_VARIABLES} MATCHES ${_var})
|
||||
set(${_var} ${_value} CACHE ${_type} "${_doc}")
|
||||
endif()
|
||||
@@ -126,7 +129,7 @@ endmacro()
|
||||
# checks of the value of <option> against the allowed values
|
||||
# will ignore the case when performing string comparison.
|
||||
#
|
||||
function(enum_option _var)
|
||||
function(ptl_enum_option _var)
|
||||
set(options CASE_INSENSITIVE)
|
||||
set(oneValueArgs DOC TYPE DEFAULT)
|
||||
set(multiValueArgs VALUES)
|
||||
@@ -181,14 +184,14 @@ endfunction()
|
||||
# when "make distclean" is run
|
||||
#
|
||||
# Prototype:
|
||||
# ADD_TO_DISTCLEAN(file)
|
||||
# PTL_ADD_TO_DISTCLEAN(file)
|
||||
# Parameters:
|
||||
# file A file or dir
|
||||
#
|
||||
|
||||
MACRO(ADD_TO_DISTCLEAN TARGET_TO_DELETE)
|
||||
MACRO(PTL_ADD_TO_DISTCLEAN TARGET_TO_DELETE)
|
||||
SET( FILES_TO_DELETE ${FILES_TO_DELETE} ${TARGET_TO_DELETE} )
|
||||
ENDMACRO(ADD_TO_DISTCLEAN)
|
||||
ENDMACRO(PTL_ADD_TO_DISTCLEAN)
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# from
|
||||
@@ -203,31 +206,31 @@ ENDMACRO(ADD_TO_DISTCLEAN)
|
||||
# (none)
|
||||
#
|
||||
|
||||
MACRO(GENERATE_DISTCLEAN_TARGET)
|
||||
MACRO(PTL_GENERATE_DISTCLEAN_TARGET)
|
||||
IF( EXISTS ${PROJECT_BINARY_DIR}/distclean_manifest.txt )
|
||||
FILE( REMOVE ${PROJECT_BINARY_DIR}/distclean_manifest.txt )
|
||||
ENDIF( EXISTS ${PROJECT_BINARY_DIR}/distclean_manifest.txt )
|
||||
|
||||
IF(MSVC)
|
||||
SET( FILES_TO_DELETE ${FILES_TO_DELETE} ${PROJECT_BINARY_DIR}/*.dir )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/*.vcproj )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/*.vcproj.cmake )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.sln )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/*.vcproj )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/*.vcproj.cmake )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.sln )
|
||||
ENDIF(MSVC)
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/distclean.dir )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/CMakeCache.txt )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/install_manifest.txt )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/CPackConfig.cmake )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/CPackSourceConfig.cmake )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/_CPack_Packages )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/PACKAGE.dir )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/cmake_install.cmake )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/distclean.dir )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/CMakeCache.txt )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/install_manifest.txt )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/CPackConfig.cmake )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/CPackSourceConfig.cmake )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/_CPack_Packages )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/PACKAGE.dir )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/cmake_install.cmake )
|
||||
|
||||
# This code does not work yet. I don't know why CPACK_GENERATOR is null.
|
||||
IF(CPACK_GENERATOR)
|
||||
FOREACH(gen ${CPACK_GENERATOR})
|
||||
MESSAGE("Adding file ${PROJECT_BINARY_DIR}/${CPACK_SOURCE_PACKAGE_FILE_NAME}.${gen} to distclean")
|
||||
ADD_TO_DISTCLEAN(${PROJECT_BINARY_DIR}/${CPACK_SOURCE_PACKAGE_FILE_NAME}.${gen} )
|
||||
PTL_ADD_TO_DISTCLEAN(${PROJECT_BINARY_DIR}/${CPACK_SOURCE_PACKAGE_FILE_NAME}.${gen} )
|
||||
ENDFOREACH(gen)
|
||||
ELSE(CPACK_GENERATOR)
|
||||
MESSAGE("CPACK_GENERATOR was not defined (value: ${CPACK_GENERATOR})")
|
||||
@@ -236,14 +239,14 @@ MACRO(GENERATE_DISTCLEAN_TARGET)
|
||||
|
||||
|
||||
IF(EXECUTABLE_OUTPUT_PATH)
|
||||
ADD_TO_DISTCLEAN( ${EXECUTABLE_OUTPUT_PATH} )
|
||||
PTL_ADD_TO_DISTCLEAN( ${EXECUTABLE_OUTPUT_PATH} )
|
||||
ENDIF(EXECUTABLE_OUTPUT_PATH)
|
||||
IF(LIBRARY_OUTPUT_PATH)
|
||||
ADD_TO_DISTCLEAN( ${LIBRARY_OUTPUT_PATH} )
|
||||
PTL_ADD_TO_DISTCLEAN( ${LIBRARY_OUTPUT_PATH} )
|
||||
ENDIF(LIBRARY_OUTPUT_PATH)
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY} )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/Makefile )
|
||||
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/distclean_manifest.txt )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY} )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/Makefile )
|
||||
PTL_ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/distclean_manifest.txt )
|
||||
|
||||
FOREACH(f ${FILES_TO_DELETE})
|
||||
FILE(TO_NATIVE_PATH ${f} ff)
|
||||
@@ -277,14 +280,14 @@ MACRO(GENERATE_DISTCLEAN_TARGET)
|
||||
generated files...
|
||||
)
|
||||
ENDIF(WIN32)
|
||||
ENDMACRO(GENERATE_DISTCLEAN_TARGET)
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Determine if two paths are the same
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
function(equal_paths VAR PATH1 PATH2)
|
||||
function(ptl_equal_paths VAR PATH1 PATH2)
|
||||
get_filename_component(PATH1 ${PATH1} ABSOLUTE)
|
||||
get_filename_component(PATH2 ${PATH2} ABSOLUTE)
|
||||
|
||||
@@ -293,7 +296,7 @@ function(equal_paths VAR PATH1 PATH2)
|
||||
else()
|
||||
set(${VAR} OFF PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction(equal_paths VAR PATH1 PATH2)
|
||||
endfunction()
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
@@ -301,7 +304,7 @@ endfunction(equal_paths VAR PATH1 PATH2)
|
||||
# in CMAKE_PREFIX_PATH
|
||||
#
|
||||
#-----------------------------------------------------------------------
|
||||
function(clean_prefix_path)
|
||||
function(ptl_clean_prefix_path)
|
||||
set(_prefix_path )
|
||||
foreach(_path ${CMAKE_PREFIX_PATH})
|
||||
get_filename_component(_path ${_path} REALPATH)
|
||||
@@ -351,7 +354,7 @@ function(subConfigureRootSearchPath _package_name _search_other)
|
||||
# if ROOT not already defined and ENV variable defines it
|
||||
if(NOT ${_package_name}_ROOT_DIR AND
|
||||
NOT "$ENV{${_package_name}_ROOT}" STREQUAL "")
|
||||
cache_ifnot(${_package_name}_ROOT_DIR $ENV{${_package_name}_ROOT}
|
||||
ptl_cache_ifnot(${_package_name}_ROOT_DIR $ENV{${_package_name}_ROOT}
|
||||
FILEPATH "ROOT search path for ${_package_name}")
|
||||
endif()
|
||||
|
||||
@@ -361,7 +364,7 @@ function(subConfigureRootSearchPath _package_name _search_other)
|
||||
if(_search_other)
|
||||
string(TOUPPER "${_package_name}" ALT_PACKAGE_NAME)
|
||||
if("${ALT_PACKAGE_NAME}" STREQUAL "${_package_name}")
|
||||
capitalize("${_package_name}" ALT_PACKAGE_NAME)
|
||||
ptl_capitalize("${_package_name}" ALT_PACKAGE_NAME)
|
||||
subConfigureRootSearchPath(${ALT_PACKAGE_NAME} OFF)
|
||||
else()
|
||||
subConfigureRootSearchPath(${ALT_PACKAGE_NAME} OFF)
|
||||
@@ -384,7 +387,7 @@ function(subConfigureRootSearchPath _package_name _search_other)
|
||||
# store previous root to see if it changed
|
||||
set(PREVIOUS_${_package_name}_ROOT_DIR ${${_package_name}_ROOT_DIR}
|
||||
CACHE FILEPATH "Previous root search path for ${_package_name}" FORCE)
|
||||
clean_prefix_path()
|
||||
ptl_clean_prefix_path()
|
||||
else()
|
||||
message(WARNING "${_package_name}_ROOT_DIR specified an invalid directory")
|
||||
unset(${_package_name}_ROOT_DIR CACHE)
|
||||
@@ -469,7 +472,7 @@ endmacro()
|
||||
# existence of the variable <NAME>, to the list of enabled/disabled
|
||||
# features, plus a docstring describing the feature
|
||||
#
|
||||
FUNCTION(ADD_FEATURE _var _description)
|
||||
FUNCTION(PTL_ADD_FEATURE _var _description)
|
||||
set(EXTRA_DESC "")
|
||||
foreach(currentArg ${ARGN})
|
||||
if(NOT "${currentArg}" STREQUAL "${_var}" AND
|
||||
@@ -490,7 +493,7 @@ ENDFUNCTION()
|
||||
# existence of the variable <NAME>, to the list of enabled/disabled
|
||||
# features, plus a docstring describing the feature
|
||||
#
|
||||
FUNCTION(ADD_SUBFEATURE _root _var _description)
|
||||
FUNCTION(PTL_ADD_SUBFEATURE _root _var _description)
|
||||
set(EXTRA_DESC "")
|
||||
foreach(currentArg ${ARGN})
|
||||
if(NOT "${currentArg}" STREQUAL "${_var}" AND
|
||||
@@ -507,15 +510,21 @@ ENDFUNCTION()
|
||||
# function add_option(<OPTION_NAME> <DOCSRING> <DEFAULT_SETTING> [NO_FEATURE])
|
||||
# Add an option and add as a feature if NO_FEATURE is not provided
|
||||
#
|
||||
FUNCTION(ADD_OPTION _NAME _MESSAGE _DEFAULT)
|
||||
FUNCTION(PTL_ADD_OPTION _NAME _MESSAGE _DEFAULT)
|
||||
SET(__FEATURE ${ARGN})
|
||||
OPTION(${_NAME} "${_MESSAGE}" ${_DEFAULT})
|
||||
IF(NOT "${__FEATURE}" STREQUAL "NO_FEATURE")
|
||||
ADD_FEATURE(${_NAME} "${_MESSAGE}")
|
||||
IF(PTL_MASTER_PROJECT)
|
||||
OPTION(${_NAME} "${_MESSAGE}" ${_DEFAULT})
|
||||
IF(NOT "${__FEATURE}" STREQUAL "NO_FEATURE")
|
||||
PTL_ADD_FEATURE(${_NAME} "${_MESSAGE}")
|
||||
ELSE()
|
||||
MARK_AS_ADVANCED(${_NAME})
|
||||
ENDIF()
|
||||
ELSE()
|
||||
MARK_AS_ADVANCED(${_NAME})
|
||||
IF(NOT DEFINED ${_NAME})
|
||||
SET(${_NAME} ${_DEFAULT})
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDFUNCTION(ADD_OPTION _NAME _MESSAGE _DEFAULT)
|
||||
ENDFUNCTION(PTL_ADD_OPTION _NAME _MESSAGE _DEFAULT)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
@@ -524,7 +533,7 @@ ENDFUNCTION(ADD_OPTION _NAME _MESSAGE _DEFAULT)
|
||||
# <DEFAULT_SETTING> [NO_FEATURE])
|
||||
# Add an option and add as a feature if NO_FEATURE is not provided
|
||||
#
|
||||
FUNCTION(ADD_DEPENDENT_OPTION _NAME _MESSAGE _COND_SETTING _COND _DEFAULT)
|
||||
FUNCTION(PTL_ADD_DEPENDENT_OPTION _NAME _MESSAGE _COND_SETTING _COND _DEFAULT)
|
||||
SET(_FEATURE ${ARGN})
|
||||
IF(DEFINED ${_NAME} AND NOT ${_COND})
|
||||
OPTION(${_NAME} "${_MESSAGE}" ${_DEFAULT})
|
||||
@@ -538,14 +547,14 @@ FUNCTION(ADD_DEPENDENT_OPTION _NAME _MESSAGE _COND_SETTING _COND _DEFAULT)
|
||||
ELSE()
|
||||
MARK_AS_ADVANCED(${_NAME})
|
||||
ENDIF()
|
||||
ENDFUNCTION(ADD_DEPENDENT_OPTION _NAME _MESSAGE _DEFAULT _COND _COND_SETTING)
|
||||
ENDFUNCTION(PTL_ADD_DEPENDENT_OPTION _NAME _MESSAGE _DEFAULT _COND _COND_SETTING)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# function print_enabled_features()
|
||||
# Print enabled features plus their docstrings.
|
||||
#
|
||||
function(print_enabled_features)
|
||||
function(ptl_print_enabled_features)
|
||||
set(_basemsg "The following features are defined/enabled (+):")
|
||||
set(_currentFeatureText "${_basemsg}")
|
||||
get_property(_features GLOBAL PROPERTY PROJECT_FEATURES)
|
||||
@@ -567,7 +576,7 @@ function(print_enabled_features)
|
||||
else()
|
||||
string(REGEX REPLACE "^USE_" "" _feature_tmp "${_feature}")
|
||||
string(TOLOWER "${_feature_tmp}" _feature_tmp_l)
|
||||
capitalize("${_feature_tmp}" _feature_tmp_c)
|
||||
ptl_capitalize("${_feature_tmp}" _feature_tmp_c)
|
||||
foreach(_var _feature_tmp _feature_tmp_l _feature_tmp_c)
|
||||
set(_ver "${${${_var}}_VERSION}")
|
||||
if(NOT "${_ver}" STREQUAL "")
|
||||
@@ -644,7 +653,7 @@ endfunction()
|
||||
# function print_disabled_features()
|
||||
# Print disabled features plus their docstrings.
|
||||
#
|
||||
function(print_disabled_features)
|
||||
function(ptl_print_disabled_features)
|
||||
set(_basemsg "The following features are NOT defined/enabled (-):")
|
||||
set(_currentFeatureText "${_basemsg}")
|
||||
get_property(_features GLOBAL PROPERTY PROJECT_FEATURES)
|
||||
@@ -674,15 +683,15 @@ endfunction()
|
||||
# function print_features()
|
||||
# Print all features plus their docstrings.
|
||||
#
|
||||
function(print_features)
|
||||
function(ptl_print_features)
|
||||
message(STATUS "")
|
||||
print_enabled_features()
|
||||
print_disabled_features()
|
||||
ptl_print_enabled_features()
|
||||
ptl_print_disabled_features()
|
||||
endfunction()
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
macro(DETERMINE_LIBDIR_DEFAULT VAR)
|
||||
macro(PTL_DETERMINE_LIBDIR_DEFAULT VAR)
|
||||
set(_LIBDIR_DEFAULT "lib")
|
||||
# Override this default 'lib' with 'lib64' iff:
|
||||
# - we are on Linux system but NOT cross-compiling
|
||||
@@ -742,6 +751,7 @@ macro(DETERMINE_LIBDIR_DEFAULT VAR)
|
||||
set(LIBDIR_DEFAULT "${_LIBDIR_DEFAULT}" CACHE PATH "Object code libraries (${_LIBDIR_DEFAULT})" FORCE)
|
||||
elseif(DEFINED __LAST_LIBDIR_DEFAULT
|
||||
AND "${__LAST_LIBDIR_DEFAULT}" STREQUAL "${LIBDIR_DEFAULT}")
|
||||
set(LIBDIR_DEFAULT "${_LIBDIR_DEFAULT}" CACHE STRING "")
|
||||
set_property(CACHE LIBDIR_DEFAULT PROPERTY VALUE "${_LIBDIR_DEFAULT}")
|
||||
endif()
|
||||
endmacro()
|
||||
@@ -752,7 +762,7 @@ endmacro()
|
||||
# Provide a list of variables that will be stored in the cache
|
||||
# as {variable_name}_REF for later reference
|
||||
# This version does not force the cache to be updated
|
||||
macro(CACHE_VARIABLES_FOR_REFERENCE)
|
||||
macro(PTL_CACHE_VARIABLES_FOR_REFERENCE)
|
||||
foreach(_var ${ARGN})
|
||||
set(${_var}_REF ${${_var}} CACHE STRING
|
||||
"Cached reference of ${_var} under ${_var}_REF for later comparison")
|
||||
@@ -765,7 +775,7 @@ endmacro()
|
||||
# Provide a list of variables that will be stored in the cache
|
||||
# as {variable_name}_REF for later reference
|
||||
# This version forces the cache to be updated
|
||||
macro(UPDATE_REFERENCE_CACHE_VARIABLES)
|
||||
macro(PTL_UPDATE_REFERENCE_CACHE_VARIABLES)
|
||||
foreach(_var ${ARGN})
|
||||
set(${_var}_REF ${${_var}} CACHE STRING
|
||||
"Cached reference of ${_var} under ${_var}_REF for later comparison"
|
||||
@@ -800,7 +810,7 @@ endfunction(GET_HOSTNAME VAR)
|
||||
# TEST_FILE (one value) -- file to check for (default: CMakeLists.txt)
|
||||
# ADDITIONAL_CMDS (many value) -- any addition commands to pass
|
||||
#
|
||||
macro(CHECKOUT_GIT_SUBMODULE)
|
||||
macro(PTL_CHECKOUT_GIT_SUBMODULE)
|
||||
|
||||
# parse args
|
||||
cmake_parse_arguments(
|
||||
@@ -858,13 +868,13 @@ macro(CHECKOUT_GIT_SUBMODULE)
|
||||
|
||||
endif(NOT EXISTS "${_TEST_FILE}")
|
||||
|
||||
endmacro(CHECKOUT_GIT_SUBMODULE)
|
||||
endmacro()
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Macro for building library
|
||||
#
|
||||
macro(BUILD_LIBRARY)
|
||||
macro(PTL_BUILD_LIBRARY)
|
||||
cmake_parse_arguments(LIB
|
||||
"VERSION" "TYPE;TARGET_NAME;OUTPUT_NAME;EXTENSION" "LINK_LIBRARIES;SOURCES;EXTRA_ARGS"
|
||||
${ARGN})
|
||||
@@ -879,6 +889,7 @@ macro(BUILD_LIBRARY)
|
||||
setifnot(LIB_OUTPUT_NAME ${LIB_TARGET_NAME})
|
||||
|
||||
add_library(${LIB_TARGET_NAME} ${LIB_TYPE} ${LIB_SOURCES})
|
||||
add_library(${PROJECT_NAME}::${LIB_TARGET_NAME} ALIAS ${LIB_TARGET_NAME})
|
||||
|
||||
if(LIB_VERSION)
|
||||
list(APPEND LIB_EXTRA_ARGS VERSION ${${PROJECT_NAME}_VERSION}
|
||||
@@ -886,8 +897,7 @@ macro(BUILD_LIBRARY)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${LIB_TARGET_NAME} PUBLIC
|
||||
${EXTERNAL_LIBRARIES} ${LIB_LINK_LIBRARIES}
|
||||
PRIVATE ${PRIVATE_EXTERNAL_LIBRARIES})
|
||||
ptl-external-packages ${LIB_LINK_LIBRARIES})
|
||||
|
||||
set_target_properties(${LIB_TARGET_NAME}
|
||||
PROPERTIES
|
||||
@@ -897,11 +907,15 @@ macro(BUILD_LIBRARY)
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
${LIB_EXTRA_ARGS})
|
||||
|
||||
if(WIN32)
|
||||
set_target_properties(${LIB_TARGET_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
endif()
|
||||
|
||||
target_compile_definitions(${LIB_TARGET_NAME} PUBLIC
|
||||
${${PROJECT_NAME}_DEFINITIONS})
|
||||
|
||||
target_compile_features(${LIB_TARGET_NAME}
|
||||
PUBLIC cxx_std_${GEANT4_BUILD_CXXSTD})
|
||||
PUBLIC cxx_std_${CMAKE_CXX_STANDARD})
|
||||
|
||||
get_property(languages GLOBAL PROPERTY ENABLED_LANGUAGES)
|
||||
|
||||
@@ -916,8 +930,7 @@ macro(BUILD_LIBRARY)
|
||||
$<$<COMPILE_LANGUAGE:CXX>:${${PROJECT_NAME}_CXX_FLAGS} ${LIB_CXXFLAGS}>)
|
||||
endif()
|
||||
|
||||
list(APPEND INSTALL_LIBRARIES ${TARGET_NAME})
|
||||
endmacro(BUILD_LIBRARY)
|
||||
endmacro()
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# function add_enabled_interface(<NAME>)
|
||||
@@ -946,6 +959,7 @@ ENDFUNCTION()
|
||||
FUNCTION(PTL_ADD_INTERFACE_LIBRARY _TARGET)
|
||||
if(NOT TARGET ${_TARGET})
|
||||
add_library(${_TARGET} INTERFACE ${ARGN})
|
||||
add_library(${PROJECT_NAME}::${_TARGET} ALIAS ${_TARGET})
|
||||
set_property(GLOBAL APPEND PROPERTY ${PROJECT_NAME}_INTERFACE_LIBRARIES ${_TARGET})
|
||||
ptl_add_enabled_interface(${_TARGET})
|
||||
install(TARGETS ${_TARGET}
|
||||
@@ -967,7 +981,7 @@ ENDFUNCTION()
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
# always determine the default lib directory
|
||||
DETERMINE_LIBDIR_DEFAULT(LIBDIR_DEFAULT)
|
||||
PTL_DETERMINE_LIBDIR_DEFAULT(LIBDIR_DEFAULT)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------------#
|
||||
|
||||
+38
-32
@@ -6,43 +6,49 @@
|
||||
################################################################################
|
||||
|
||||
include(MacroUtilities)
|
||||
include(Compilers)
|
||||
|
||||
set(_FEATURE )
|
||||
if(NOT PTL_MASTER_PROJECT)
|
||||
set(_FEATURE NO_FEATURE)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON CACHE BOOL "Require the C++ standard" FORCE)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Disable GNU extensions")
|
||||
#set(CMAKE_CXX_STANDARD_REQUIRED ON CACHE BOOL "Require the C++ standard" FORCE)
|
||||
#set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Disable GNU extensions")
|
||||
|
||||
# features
|
||||
add_feature(CMAKE_BUILD_TYPE "Build type (Debug, Release, RelWithDebInfo, MinSizeRel)")
|
||||
add_feature(CMAKE_INSTALL_PREFIX "Installation prefix")
|
||||
add_feature(CMAKE_CXX_STANDARD "C++11 STL standard")
|
||||
add_feature(${PROJECT_NAME}_C_FLAGS "C flags for project")
|
||||
add_feature(${PROJECT_NAME}_CXX_FLAGS "C++ flags for project")
|
||||
ptl_add_feature(CMAKE_BUILD_TYPE "Build type (Debug, Release, RelWithDebInfo, MinSizeRel)")
|
||||
ptl_add_feature(CMAKE_INSTALL_PREFIX "Installation prefix")
|
||||
ptl_add_feature(CMAKE_CXX_STANDARD "C++11 STL standard")
|
||||
ptl_add_feature(${PROJECT_NAME}_C_FLAGS "C flags for project")
|
||||
ptl_add_feature(${PROJECT_NAME}_CXX_FLAGS "C++ flags for project")
|
||||
|
||||
# options (always available)
|
||||
add_option(BUILD_STATIC_LIBS "Build static library" ON ${_FEATURE})
|
||||
add_option(BUILD_SHARED_LIBS "Build shared library" ON ${_FEATURE})
|
||||
add_option(PTL_BUILD_EXAMPLES "Build examples" OFF ${_FEATURE})
|
||||
add_option(PTL_BUILD_DOCS "Build documentation with Doxygen" OFF ${_FEATURE})
|
||||
add_option(PTL_DEVELOPER_INSTALL "Install headers, cmake export, and shared libs" ON ${_FEATURE})
|
||||
ptl_add_option(BUILD_STATIC_LIBS "Build static library" ON ${_FEATURE})
|
||||
ptl_add_option(BUILD_SHARED_LIBS "Build shared library" ON ${_FEATURE})
|
||||
ptl_add_option(PTL_BUILD_EXAMPLES "Build examples" OFF ${_FEATURE})
|
||||
ptl_add_option(PTL_BUILD_DOCS "Build documentation with Doxygen" OFF ${_FEATURE})
|
||||
ptl_add_option(PTL_DEVELOPER_INSTALL "Install headers, cmake export, and shared libs" ON ${_FEATURE})
|
||||
|
||||
add_option(PTL_USE_TBB "Enable TBB" ON ${_FEATURE})
|
||||
add_option(PTL_USE_GPU "Enable GPU preprocessor" OFF ${_FEATURE})
|
||||
add_option(PTL_USE_SANITIZER "Enable -fsanitize=<type>" OFF ${_FEATURE})
|
||||
add_option(PTL_USE_CLANG_TIDY "Enable running clang-tidy on" OFF ${_FEATURE})
|
||||
add_option(PTL_USE_COVERAGE "Enable code coverage" OFF ${_FEATURE})
|
||||
add_option(PTL_USE_PROFILE "Enable profiling" OFF ${_FEATURE})
|
||||
ptl_add_option(PTL_USE_TBB "Enable TBB" ON ${_FEATURE})
|
||||
ptl_add_option(PTL_USE_GPU "Enable GPU preprocessor" OFF ${_FEATURE})
|
||||
ptl_add_option(PTL_USE_SANITIZER "Enable -fsanitize=<type>" OFF ${_FEATURE})
|
||||
ptl_add_option(PTL_USE_CLANG_TIDY "Enable running clang-tidy on" OFF ${_FEATURE})
|
||||
ptl_add_option(PTL_USE_COVERAGE "Enable code coverage" OFF ${_FEATURE})
|
||||
ptl_add_option(PTL_USE_LOCKS "Enable mutex locking in task subqueues for extra safety" OFF ${_FEATURE})
|
||||
# add_option(PTL_USE_PROFILE "Enable profiling" OFF ${_FEATURE})
|
||||
|
||||
if(PTL_USE_ARCH)
|
||||
add_option(PTL_USE_AVX512 "Enable AVX-512 flags (if available)" OFF ${_FEATURE})
|
||||
ptl_add_option(PTL_USE_AVX512 "Enable AVX-512 flags (if available)" OFF ${_FEATURE})
|
||||
endif()
|
||||
|
||||
if(PTL_USE_COVERAGE)
|
||||
set(CMAKE_BUILD_TYPE Debug)
|
||||
endif()
|
||||
|
||||
if(PTL_USE_SANITIZER)
|
||||
add_feature(PTL_SANITIZER_TYPE "Sanitizer type (-fsanitize=<type>)")
|
||||
set(PTL_SANITIZER_TYPE leak CACHE STRING "Sanitizer type (-fsanitize=<type>)")
|
||||
ptl_add_feature(PTL_SANITIZER_TYPE "Sanitizer type (i.e. -fsanitize=<type>)")
|
||||
#set(PTL_SANITIZER_TYPE thread CACHE STRING "Sanitizer type (i.e. -fsanitize=<type>)")
|
||||
endif()
|
||||
|
||||
if(PTL_USE_GPU)
|
||||
@@ -63,30 +69,30 @@ if(PTL_USE_GPU)
|
||||
|
||||
if(_USE_CUDA)
|
||||
list(APPEND ${PROJECT_NAME}_DEFINITIONS PTL_USE_GPU)
|
||||
add_option(PTL_USE_CUDA "Enable CUDA option for GPU execution" ${_USE_CUDA} ${_FEATURE})
|
||||
add_option(PTL_USE_NVTX "Enable NVTX for Nsight" ${_USE_CUDA} ${_FEATURE})
|
||||
ptl_add_option(PTL_USE_CUDA "Enable CUDA option for GPU execution" ${_USE_CUDA} ${_FEATURE})
|
||||
ptl_add_option(PTL_USE_NVTX "Enable NVTX for Nsight" ${_USE_CUDA} ${_FEATURE})
|
||||
|
||||
set(CUDA_ARCH "sm_35" CACHE STRING "CUDA architecture flag")
|
||||
if(_FEATURE)
|
||||
add_feature(CUDA_ARCH "CUDA architecture (e.g. sm_35)")
|
||||
add_feature(CUDA_GENERATED_OUTPUT_DIR "CUDA output directory for generated files")
|
||||
ptl_add_feature(CUDA_ARCH "CUDA architecture (e.g. sm_35)")
|
||||
ptl_add_feature(CUDA_GENERATED_OUTPUT_DIR "CUDA output directory for generated files")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endif()
|
||||
|
||||
# RPATH settings
|
||||
set(_RPATH_LINK OFF)
|
||||
if(APPLE)
|
||||
set(_RPATH_LINK ON)
|
||||
endif()
|
||||
add_option(CMAKE_INSTALL_RPATH_USE_LINK_PATH "Hardcode installation rpath based on link path" ${_RPATH_LINK} ${_FEATURE})
|
||||
unset(_RPATH_LINK)
|
||||
#set(_RPATH_LINK OFF)
|
||||
#if(APPLE)
|
||||
# set(_RPATH_LINK ON)
|
||||
#endif()
|
||||
#ptl_add_option(CMAKE_INSTALL_RPATH_USE_LINK_PATH "Hardcode installation rpath based on link path" ${_RPATH_LINK} ${_FEATURE})
|
||||
#unset(_RPATH_LINK)
|
||||
|
||||
# clang-tidy
|
||||
if(PTL_USE_CLANG_TIDY)
|
||||
find_program(CLANG_TIDY_COMMAND NAMES clang-tidy)
|
||||
add_feature(CLANG_TIDY_COMMAND "Path to clang-tidy command")
|
||||
ptl_add_feature(CLANG_TIDY_COMMAND "Path to clang-tidy command")
|
||||
if(NOT CLANG_TIDY_COMMAND)
|
||||
message(WARNING "PTL_USE_CLANG_TIDY is ON but clang-tidy is not found!")
|
||||
set(PTL_USE_CLANG_TIDY OFF)
|
||||
|
||||
+7
-2
@@ -34,13 +34,18 @@ endif()
|
||||
################################################################################
|
||||
|
||||
if(PTL_USE_TBB)
|
||||
find_package(TBB)
|
||||
find_package(TBB 2017)
|
||||
|
||||
if(TBB_FOUND)
|
||||
target_compile_definitions(ptl-tbb INTERFACE PTL_USE_TBB)
|
||||
target_include_directories(ptl-tbb SYSTEM INTERFACE ${TBB_INCLUDE_DIRS})
|
||||
target_link_libraries(ptl-tbb INTERFACE ${TBB_LIBRARIES})
|
||||
target_link_libraries(ptl-external-packages INTERFACE ptl-tbb)
|
||||
else()
|
||||
set(PTL_USE_TBB OFF)
|
||||
ptl_add_disabled_interface(ptl-tbb)
|
||||
endif()
|
||||
|
||||
else()
|
||||
set(PTL_USE_TBB OFF)
|
||||
ptl_add_disabled_interface(ptl-tbb)
|
||||
endif()
|
||||
|
||||
+12
-4
@@ -6,8 +6,8 @@
|
||||
|
||||
string(TOUPPER "${CMAKE_BUILD_TYPE}" _CONFIG)
|
||||
|
||||
add_feature(CMAKE_C_FLAGS_${_CONFIG} "C compiler build-specific flags")
|
||||
add_feature(CMAKE_CXX_FLAGS_${_CONFIG} "C++ compiler build-specific flags")
|
||||
ptl_add_feature(CMAKE_C_FLAGS_${_CONFIG} "C compiler build-specific flags")
|
||||
ptl_add_feature(CMAKE_CXX_FLAGS_${_CONFIG} "C++ compiler build-specific flags")
|
||||
|
||||
################################################################################
|
||||
#
|
||||
@@ -22,7 +22,7 @@ endif()
|
||||
|
||||
|
||||
# create the full path version and generic path versions
|
||||
foreach(_TYPE in DATAROOT CMAKE INCLUDE LIB BIN MAN DOC)
|
||||
foreach(_TYPE DATAROOT CONFIG INCLUDE LIB BIN MAN DOC)
|
||||
# set the absolute versions
|
||||
if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_${_TYPE}DIR}")
|
||||
set(CMAKE_INSTALL_FULL_${_TYPE}DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${_TYPE}DIR})
|
||||
@@ -34,4 +34,12 @@ foreach(_TYPE in DATAROOT CMAKE INCLUDE LIB BIN MAN DOC)
|
||||
set(PROJECT_INSTALL_${_TYPE}DIR ${CMAKE_INSTALL_${TYPE}DIR})
|
||||
set(PROJECT_INSTALL_FULL_${_TYPE}DIR ${CMAKE_INSTALL_FULL_${TYPE}DIR})
|
||||
|
||||
endforeach(_TYPE in DATAROOT CMAKE INCLUDE LIB BIN MAN DOC)
|
||||
if(NOT DEFINED PTL_INSTALL_${_TYPE}DIR)
|
||||
set(PTL_INSTALL_${_TYPE}DIR "${CMAKE_INSTALL_${_TYPE}DIR}")
|
||||
endif()
|
||||
if(PTL_MASTER_PROJECT)
|
||||
set(PTL_INSTALL_${_TYPE}DIR "${CMAKE_INSTALL_${_TYPE}DIR}" CACHE STRING
|
||||
"${_TYPE} Installation Path")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user