cmakelists.txt
来自「DTMK软件开发包,此为开源软件,是一款很好的医学图像开发资源.」· 文本 代码 · 共 345 行 · 第 1/2 页
TXT
345 行
PERFORM_CHECK_HEADER(exception VCL_CXX_HAS_HEADER_EXCEPTION)
PERFORM_CHECK_HEADER(istream VCL_CXX_HAS_HEADER_ISTREAM)
PERFORM_CHECK_HEADER(new VCL_CXX_HAS_HEADER_NEW)
PERFORM_CHECK_HEADER(stack VCL_CXX_HAS_HEADER_STACK)
PERFORM_CHECK_HEADER(valarray VCL_CXX_HAS_HEADER_VALARRAY)
PERFORM_CHECK_HEADER(fstream VCL_CXX_HAS_HEADER_FSTREAM)
PERFORM_CHECK_HEADER(iterator VCL_CXX_HAS_HEADER_ITERATOR)
PERFORM_CHECK_HEADER(numeric VCL_CXX_HAS_HEADER_NUMERIC)
PERFORM_CHECK_HEADER(stdexcept VCL_CXX_HAS_HEADER_STDEXCEPT)
PERFORM_CHECK_HEADER(vector VCL_CXX_HAS_HEADER_VECTOR)
PERFORM_CHECK_HEADER(functional VCL_CXX_HAS_HEADER_FUNCTIONAL)
PERFORM_CHECK_HEADER(limits VCL_CXX_HAS_HEADER_LIMITS)
PERFORM_CHECK_HEADER(strstream VCL_CXX_HAS_HEADER_STRSTREAM)
PERFORM_CHECK_HEADER(pthread.h VXL_HAS_PTHREAD_H)
PERFORM_CHECK_HEADER(semaphore.h VXL_HAS_SEMAPHORE_H)
PERFORM_CHECK_HEADER(ieeefp.h VXL_HAS_IEEEFP_H)
PERFORM_CHECK_HEADER(iso646.h VCL_CXX_HAS_HEADER_ISO646_H)
PERFORM_CHECK_HEADER(emmintrin.h VXL_HAS_EMMINTRIN_H)
#
# Check for aligned dynamic memory allocation support, useful for sse
#
IF(VXL_HAS_EMMINTRIN_H)
# check for memory allocation operations
PERFORM_CMAKE_TEST(vxl_platform_tests.cxx VXL_HAS_MM_MALLOC)
PERFORM_CMAKE_TEST(vxl_platform_tests.cxx VXL_HAS_ALIGNED_MALLOC)
PERFORM_CMAKE_TEST(vxl_platform_tests.cxx VXL_HAS_MINGW_ALIGNED_MALLOC)
PERFORM_CMAKE_TEST(vxl_platform_tests.cxx VXL_HAS_POSIX_MEMALIGN)
# check for hardware support for sse2
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(VXL_SSE_TEST_FLAG_BACKUP ${CMAKE_REQUIRED_FLAGS})
SET(CMAKE_REQUIRED_FLAGS " -msse2 ${VXL_SSE_TEST_FLAG_BACKUP} ")
PERFORM_CMAKE_TEST_RUN(vxl_platform_tests.cxx VXL_HAS_SSE2_HARDWARE_SUPPORT)
SET(CMAKE_REQUIRED_FLAGS ${VXL_SSE_TEST_FLAG_BACKUP})
ELSE(CMAKE_COMPILER_IS_GNUCXX)
PERFORM_CMAKE_TEST_RUN(vxl_platform_tests.cxx VXL_HAS_SSE2_HARDWARE_SUPPORT)
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
ELSE(VXL_HAS_EMMINTRIN_H)
SET( VXL_HAS_MM_MALLOC 0 )
SET( VXL_HAS_ALIGNED_MALLOC 0 )
SET( VXL_HAS_MINGW_ALIGNED_MALLOC 0 )
SET( VXL_HAS_POSIX_MEMALIGN 0 )
ENDIF(VXL_HAS_EMMINTRIN_H)
#
# Check complex pow stuff
#
IF(VCL_CXX_HAS_HEADER_COMPLEX)
PERFORM_CMAKE_TEST_RUN(vxl_platform_tests.cxx VCL_COMPLEX_POW_WORKS)
ENDIF(VCL_CXX_HAS_HEADER_COMPLEX)
# Tests of math.h may need math library on UNIX.
IF(UNIX)
SET(CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES};m")
ENDIF(UNIX)
PERFORM_C_CHECK_FUNCTION(sqrtf "math.h" VXL_C_MATH_HAS_SQRTF)
PERFORM_C_CHECK_FUNCTION(finite "math.h" VXL_C_MATH_HAS_FINITE)
PERFORM_C_CHECK_FUNCTION(finitef "math.h" VXL_C_MATH_HAS_FINITEF)
PERFORM_C_CHECK_FUNCTION(finitel "math.h" VXL_C_MATH_HAS_FINITEL)
PERFORM_C_CHECK_FUNCTION(finite "ieeefp.h" VXL_IEEEFP_HAS_FINITE)
#PERFORM_C_CHECK_FUNCTION(qsort "stdlib.h" VXL_STDLIB_HAS_QSORT)
PERFORM_C_CHECK_FUNCTION(lrand48 "stdlib.h" VXL_STDLIB_HAS_LRAND48)
PERFORM_C_CHECK_FUNCTION(drand48 "stdlib.h" VXL_STDLIB_HAS_DRAND48)
PERFORM_C_CHECK_FUNCTION(srand48 "stdlib.h" VXL_STDLIB_HAS_SRAND48)
TEST_BIG_ENDIAN(VXL_BIG_ENDIAN)
SET_INVERT(VXL_LITTLE_ENDIAN "${VXL_BIG_ENDIAN}")
#
# Values which are to be manually set
#
SET(VCL_USE_NATIVE_STL 1) # change if no
SET(VCL_USE_NATIVE_COMPLEX 1)
SET(VCL_USE_IMPLICIT_TEMPLATES 1) # change if no
SET(VXL_TWO_ARG_GETTIME 0) # not used
IF(NOT VCL_CAN_DO_IMPLICIT_TEMPLATES)
MESSAGE("Warning: turning off implicit template instantiation")
SET(VCL_USE_IMPLICIT_TEMPLATES 0)
ENDIF(NOT VCL_CAN_DO_IMPLICIT_TEMPLATES)
PERFORM_CMAKE_TEST_RUN(vxl_platform_tests.cxx VCL_CHAR_IS_SIGNED)
#
# Check type sizes
#
SET(CMAKE_REQUIRED_FLAGS ${CMAKE_ANSI_CFLAGS})
# The types are listed in reverse order of preference. That is, the
# last type is should be the most preferred type name.
#
DETERMINE_TYPE(BYTE 1 8 "char")
DETERMINE_TYPE(INT_8 1 8 "short;char")
DETERMINE_TYPE(INT_16 1 16 "char;int;short")
DETERMINE_TYPE(INT_32 1 32 "short;long;int")
DETERMINE_TYPE(INT_64 1 64 "__int64;long long;long")
DETERMINE_TYPE(IEEE_32 0 32 "long double;double;float")
DETERMINE_TYPE(IEEE_64 0 64 "float;long double;double")
DETERMINE_TYPE(IEEE_96 0 96 "float;double;long double")
DETERMINE_TYPE(IEEE_128 0 128 "float;double;long double")
IF (${VXL_INT_64} MATCHES "^long$")
SET(VXL_INT_64_IS_LONG 1)
ELSE(${VXL_INT_64} MATCHES "^long$")
SET(VXL_INT_64_IS_LONG 0)
ENDIF(${VXL_INT_64} MATCHES "^long$")
#
# Check unistd stuff
#
CHECK_INCLUDE_FILE_CXX("unistd.h" HAVE_UNISTD_H)
IF(HAVE_UNISTD_H)
CHECK_TYPE_EXISTS_ZERO(useconds_t "unistd.h" VXL_UNISTD_HAS_USECONDS_T)
CHECK_TYPE_EXISTS_ZERO(intptr_t "unistd.h" VXL_UNISTD_HAS_INTPTR_T)
CHECK_FUNCTION_EXISTS_ZERO(ualarm VXL_UNISTD_HAS_UALARM)
CHECK_FUNCTION_EXISTS_ZERO(usleep VXL_UNISTD_HAS_USLEEP)
CHECK_FUNCTION_EXISTS_ZERO(lchown VXL_UNISTD_HAS_LCHOWN)
CHECK_FUNCTION_EXISTS_ZERO(pread VXL_UNISTD_HAS_PREAD)
CHECK_FUNCTION_EXISTS_ZERO(pwrite VXL_UNISTD_HAS_PWRITE)
CHECK_FUNCTION_EXISTS_ZERO(tell VXL_UNISTD_HAS_TELL)
CHECK_FUNCTION_EXISTS_ZERO(getpid VXL_UNISTD_HAS_GETPID)
ELSE(HAVE_UNISTD_H)
# If there is not unistd.h, assume windows and therefore hardcode results.
SET(VXL_UNISTD_HAS_USECONDS_T 0)
SET(VXL_UNISTD_HAS_INTPTR_T 0)
SET(VXL_UNISTD_HAS_UALARM 1)
SET(VXL_UNISTD_HAS_USLEEP 1)
SET(VXL_UNISTD_HAS_LCHOWN 1)
SET(VXL_UNISTD_HAS_PREAD 1)
SET(VXL_UNISTD_HAS_PWRITE 1)
SET(VXL_UNISTD_HAS_TELL 1)
SET(VXL_UNISTD_HAS_GETPID 1)
ENDIF(HAVE_UNISTD_H)
#
# Check numeric_limits infinity stuff
#
IF(VCL_CXX_HAS_HEADER_LIMITS)
PERFORM_CMAKE_TEST_RUN(vxl_platform_tests.cxx VCL_NUMERIC_LIMITS_HAS_INFINITY)
IF(VCL_CXX_HAS_HEADER_CFLOAT)
PERFORM_CMAKE_TEST_RUN(vxl_platform_tests.cxx VCL_PROCESSOR_HAS_INFINITY)
ELSE(VCL_CXX_HAS_HEADER_CFLOAT)
SET(VCL_PROCESSOR_HAS_INFINITY 0)
ENDIF(VCL_CXX_HAS_HEADER_CFLOAT)
ELSE(VCL_CXX_HAS_HEADER_LIMITS)
SET(VCL_NUMERIC_LIMITS_HAS_INFINITY 0)
SET(VCL_PROCESSOR_HAS_INFINITY 0)
ENDIF(VCL_CXX_HAS_HEADER_LIMITS)
#
# configure files
#
CONFIGURE_FILE(${vxl_SOURCE_DIR}/vcl/vcl_config_compiler.h.in ${vxl_BINARY_DIR}/vcl/vcl_config_compiler.h)
CONFIGURE_FILE(${vxl_SOURCE_DIR}/vcl/vcl_config_headers.h.in ${vxl_BINARY_DIR}/vcl/vcl_config_headers.h)
CONFIGURE_FILE(${vxl_SOURCE_DIR}/vcl/vcl_config_manual.h.in ${vxl_BINARY_DIR}/vcl/vcl_config_manual.h)
CONFIGURE_FILE(${vxl_SOURCE_DIR}/vcl/vcl_where_root_dir.h.in ${vxl_BINARY_DIR}/vcl/vcl_where_root_dir.h)
CONFIGURE_FILE(${vxl_SOURCE_DIR}/core/vxl_config.h.in ${vxl_BINARY_DIR}/core/vxl_config.h)
# Reset the update configuration flag
SET( VXL_UPDATE_CONFIGURATION "OFF" CACHE BOOL "Re-run the configuration tests?" FORCE )
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?