diff --git a/cmake/modules/RootBuildOptions.cmake b/cmake/modules/RootBuildOptions.cmake index bc0522c38f8fdcd91533e4fa3f6c64d0796f39f9..0d94802781bd5460ce45ecc7ea93c950ba4af676 100644 --- a/cmake/modules/RootBuildOptions.cmake +++ b/cmake/modules/RootBuildOptions.cmake @@ -67,14 +67,14 @@ ROOT_BUILD_OPTION(asimage ON "Image processing support, requires libAfterImage") ROOT_BUILD_OPTION(arrow OFF "Apache Arrow in memory columnar storage support") ROOT_BUILD_OPTION(astiff ON "Include tiff support in image processing") ROOT_BUILD_OPTION(bonjour OFF "Bonjour support, requires libdns_sd and/or Avahi") -ROOT_BUILD_OPTION(builtin_afterimage OFF "Build included libAfterImage, or use system libAfterImage") +ROOT_BUILD_OPTION(builtin_afterimage ON "Build included libAfterImage, or use system libAfterImage") ROOT_BUILD_OPTION(builtin_cfitsio OFF "Build the FITSIO library internally (downloading tarfile from the Web)") ROOT_BUILD_OPTION(builtin_davix OFF "Build the Davix library internally (downloading tarfile from the Web)") ROOT_BUILD_OPTION(builtin_fftw3 OFF "Build the FFTW3 library internally (downloading tarfile from the Web)") ROOT_BUILD_OPTION(builtin_freetype OFF "Build included libfreetype, or use system libfreetype") -ROOT_BUILD_OPTION(builtin_ftgl OFF "Build included libFTGL, or use system libftgl") +ROOT_BUILD_OPTION(builtin_ftgl ON "Build included libFTGL, or use system libftgl") ROOT_BUILD_OPTION(builtin_gl2ps OFF "Build included libgl2ps, or use system libgl2ps") -ROOT_BUILD_OPTION(builtin_glew OFF "Build included libGLEW, or use system libGLEW") +ROOT_BUILD_OPTION(builtin_glew ON "Build included libGLEW, or use system libGLEW") ROOT_BUILD_OPTION(builtin_gsl OFF "Build the GSL library internally (downloading tarfile from the Web)") ROOT_BUILD_OPTION(builtin_llvm ON "Build llvm internally") ROOT_BUILD_OPTION(builtin_clang ON "Build clang internally") diff --git a/cmake/modules/SearchInstalledSoftware.cmake b/cmake/modules/SearchInstalledSoftware.cmake index 9d9d9c269cf87ff83f8e0a1a58b7b76b793058ab..7658d704d9bca93457e11569bd3cd0b3d7b852a4 100644 --- a/cmake/modules/SearchInstalledSoftware.cmake +++ b/cmake/modules/SearchInstalledSoftware.cmake @@ -52,36 +52,26 @@ if(builtin_zlib) endif() #---Check for Unuran ------------------------------------------------------------------ -if(unuran AND NOT builtin_unuran) +if(NOT builtin_unuran) message(STATUS "Looking for Unuran") - if(fail-on-missing) - find_package(Unuran REQUIRED) - else() - find_package(Unuran) - if(NOT UNURAN_FOUND) - message(STATUS "Unuran not found. Switching on builtin_unuran option") - set(builtin_unuran ON CACHE BOOL "" FORCE) - endif() + find_Package(Unuran) + if(NOT UNURAN_FOUND) + message(STATUS "Unuran not found. Switching on builtin_unuran option") + set(builtin_unuran ON CACHE BOOL "" FORCE) endif() endif() #---Check for Freetype--------------------------------------------------------------- if(NOT builtin_freetype) message(STATUS "Looking for Freetype") - if(fail-on-missing) - find_package(Freetype REQUIRED) - else() - find_package(Freetype) - if(NOT FREETYPE_FOUND) - message(STATUS "FreeType not found. Switching on builtin_freetype option") - set(builtin_freetype ON CACHE BOOL "" FORCE) - endif() - endif() + find_package(Freetype) if(FREETYPE_FOUND) set(FREETYPE_INCLUDE_DIR ${FREETYPE_INCLUDE_DIR_freetype2}) + else() + message(STATUS "FreeType not found. Switching on builtin_freetype option") + set(builtin_freetype ON CACHE BOOL "" FORCE) endif() endif() - if(builtin_freetype) set(freetype_version 2.6.1) message(STATUS "Building freetype version ${freetype_version} included in ROOT itself") @@ -128,17 +118,13 @@ endif() #---Check for PCRE------------------------------------------------------------------- if(NOT builtin_pcre) message(STATUS "Looking for PCRE") - if(fail-on-missing) - find_package(PCRE REQUIRED) + find_package(PCRE) + if(PCRE_FOUND) else() - find_package(PCRE) - if(NOT PCRE_FOUND) - message(STATUS "PCRE not found. Switching on builtin_pcre option") - set(builtin_pcre ON CACHE BOOL "" FORCE) - endif() + message(STATUS "PCRE not found. Switching on builtin_pcre option") + set(builtin_pcre ON CACHE BOOL "" FORCE) endif() endif() - if(builtin_pcre) set(pcre_version 8.37) message(STATUS "Building pcre version ${pcre_version} included in ROOT itself") @@ -187,17 +173,12 @@ endif() #---Check for LZMA------------------------------------------------------------------- if(NOT builtin_lzma) message(STATUS "Looking for LZMA") - if(fail-on-missing) - find_package(LZMA REQUIRED) - else() - find_package(LZMA) - if(NOT LZMA_FOUND) - message(STATUS "LZMA not found. Switching on builtin_lzma option") - set(builtin_lzma ON CACHE BOOL "" FORCE) - endif() + find_package(LZMA) + if(NOT LZMA_FOUND) + message(STATUS "LZMA not found. Switching on builtin_lzma option") + set(builtin_lzma ON CACHE BOOL "" FORCE) endif() endif() - if(builtin_lzma) set(lzma_version 5.2.1) set(LZMA_TARGET LZMA) @@ -242,14 +223,10 @@ endif() #---Check for xxHash----------------------------------------------------------------- if(NOT builtin_xxhash) message(STATUS "Looking for xxHash") - if(fail-on-missing) - find_package(xxHash REQUIRED) - else() - find_package(xxHash) - if(NOT xxHash_FOUND) - message(STATUS "xxHash not found. Switching on builtin_xxhash option") - set(builtin_xxhash ON CACHE BOOL "" FORCE) - endif() + find_package(xxHash) + if(NOT xxHash_FOUND) + message(STATUS "xxHash not found. Switching on builtin_xxhash option") + set(builtin_xxhash ON CACHE BOOL "" FORCE) endif() endif() @@ -261,14 +238,10 @@ endif() #---Check for LZ4-------------------------------------------------------------------- if(NOT builtin_lz4) message(STATUS "Looking for LZ4") - if(fail-on-missing) - find_package(LZ4 REQUIRED) - else() - find_package(LZ4) - if(NOT LZ4_FOUND) - message(STATUS "LZ4 not found. Switching on builtin_lz4 option") - set(builtin_lz4 ON CACHE BOOL "" FORCE) - endif() + find_package(LZ4) + if(NOT LZ4_FOUND) + message(STATUS "LZ4 not found. Switching on builtin_lz4 option") + set(builtin_lz4 ON CACHE BOOL "" FORCE) endif() endif() @@ -354,17 +327,12 @@ endif() #---Check for AfterImage--------------------------------------------------------------- if(asimage AND NOT builtin_afterimage) message(STATUS "Looking for AfterImage") - if(fail-on-missing) - find_package(AfterImage REQUIRED) - else() - find_package(AfterImage) - if(NOT AFTERIMAGE_FOUND) - message(STATUS "AfterImage not found. Switching on builtin_afterimage option") - set(builtin_afterimage ON CACHE BOOL "" FORCE) - endif() + find_package(AfterImage) + if(NOT AFTERIMAGE_FOUND) + message(STATUS "AfterImage not found. Switching on builtin_afterimage option") + set(builtin_afterimage ON CACHE BOOL "" FORCE) endif() endif() - if(builtin_afterimage) set(AFTERIMAGE_LIBRARIES ${CMAKE_BINARY_DIR}/lib/libAfterImage${CMAKE_STATIC_LIBRARY_SUFFIX}) if(WIN32) @@ -548,14 +516,10 @@ endif() #---Check for gl2ps ------------------------------------------------------------------ if(opengl AND NOT builtin_gl2ps) message(STATUS "Looking for gl2ps") - if(fail-on-missing) - find_Package(gl2ps REQUIRED) - else() - find_Package(gl2ps) - if(NOT GL2PS_FOUND) - message(STATUS "gl2ps not found. Switching on builtin_gl2ps option") - set(builtin_gl2ps ON CACHE BOOL "" FORCE) - endif() + find_Package(gl2ps) + if(NOT GL2PS_FOUND) + message(STATUS "gl2ps not found. Switching on builtin_gl2ps option") + set(builtin_gl2ps ON CACHE BOOL "" FORCE) endif() endif() @@ -635,16 +599,18 @@ if(ssl AND NOT builtin_openssl) else() find_package(OpenSSL) if(NOT OPENSSL_FOUND) - message(STATUS "Switching OFF 'ssl' option.") - set(ssl OFF CACHE BOOL "" FORCE) + if(WIN32) # builtin OpenSSL does not work on Windows + message(STATUS "Switching OFF 'ssl' option.") + set(ssl OFF CACHE BOOL "" FORCE) + else() + message(STATUS "OpenSSL not found, switching ON 'builtin_openssl' option.") + set(builtin_openssl ON CACHE BOOL "" FORCE) + endif() endif() endif() endif() if(builtin_openssl) - if(WIN32) - message(FATAL_ERROR "The builtin OpenSSL in ROOT is not supported on Windows.") - endif() list(APPEND ROOT_BUILTINS OpenSSL) add_subdirectory(builtins/openssl) endif() @@ -836,15 +802,11 @@ if(fitsio OR builtin_cfitsio) set(CFITSIO_TARGET CFITSIO) else() message(STATUS "Looking for CFITSIO") - if(fail-on-missing) - find_package(CFITSIO REQUIRED) - else() - find_package(CFITSIO) - if(NOT CFITSIO_FOUND) - message(STATUS "CFITSIO not found. Switching off 'fitsio' option.") - message(STATUS "Please enable the option 'builtin_cfitsio' to build the library internally.") - set(fitsio OFF CACHE BOOL "" FORCE) - endif() + find_package(CFITSIO) + if(NOT CFITSIO_FOUND) + message(STATUS "CFITSIO not found. You can enable the option 'builtin_cfitsio' to build the library internally'") + message(STATUS " For the time being switching off 'fitsio' option") + set(fitsio OFF CACHE BOOL "" FORCE) endif() endif() endif() @@ -861,15 +823,11 @@ endif() #---Monalisa support---------------------------------------------------------------- if(monalisa) - if(fail-on-missing) - find_package(Monalisa REQUIRED) - else() - find_package(Monalisa) - if(NOT MONALISA_FOUND) - message(STATUS "Monalisa not found. Set variable MONALISA_DIR to point to your Monalisa installation") - message(STATUS "For the time being switching OFF 'monalisa' option") - set(monalisa OFF CACHE BOOL "" FORCE) - endif() + find_package(Monalisa) + if(NOT MONALISA_FOUND) + message(STATUS "Monalisa not found. Set variable MONALISA_DIR to point to your Monalisa installation") + message(STATUS "For the time being switching OFF 'monalisa' option") + set(monalisa OFF CACHE BOOL "" FORCE) endif() endif() @@ -1139,8 +1097,16 @@ if(davix AND NOT builtin_davix) else() find_package(Davix 0.6.4) if(NOT DAVIX_FOUND) - message(STATUS "Davix not found, switching OFF 'davix' option.") - set(davix OFF CACHE BOOL "" FORCE) + find_package(libuuid) + find_package(LibXml2) + find_package(OpenSSL) + if(UUID_FOUND AND LIBXML2_FOUND AND (OPENSSL_FOUND OR builtin_openssl)) + message(STATUS "Davix not found, switching ON 'builtin_davix' option.") + set(builtin_davix ON CACHE BOOL "" FORCE) + else() + message(STATUS "Davix dependencies not found, switching OFF 'davix' option.") + set(davix OFF CACHE BOOL "" FORCE) + endif() endif() endif() endif() @@ -1172,19 +1138,30 @@ if (jemalloc) endif() #---Check for TBB--------------------------------------------------------------------- -if(imt AND NOT builtin_tbb) - message(STATUS "Looking for TBB") - if(fail-on-missing) - find_package(TBB 4.3 REQUIRED) - else() - find_package(TBB 4.3) +if(imt) + if(NOT builtin_tbb) + message(STATUS "Looking for TBB") + find_package(TBB) + if(TBB_FOUND) + if(${TBB_VERSION} VERSION_LESS 4.3) + if(fail-on-missing) + message(FATAL_ERROR "TBB version < 4.3. You can enable the option 'builtin_tbb' to build the library internally") + else() + message(STATUS "TBB version < 4.3. Switching on builtin_tbb option") + set(builtin_tbb ON CACHE BOOL "" FORCE) + endif() + endif() + endif() if(NOT TBB_FOUND) - message(STATUS "TBB not found. Switching of imt option") - set(imt OFF CACHE BOOL "" FORCE) + if(fail-on-missing) + message(FATAL_ERROR "TBB not found. You can enable the option 'builtin_tbb' to build the library internally") + else() + message(STATUS "TBB not found. Switching on builtin_tbb option") + set(builtin_tbb ON CACHE BOOL "" FORCE) + endif() endif() endif() endif() - if(builtin_tbb) set(tbb_version 2017_U5) if(CMAKE_CXX_COMPILER_ID MATCHES Clang) @@ -1384,21 +1361,16 @@ elseif(veccore) if(vc) set(VecCore_COMPONENTS Vc) endif() - if(fail-on-missing) - find_package(VecCore 0.4.2 CONFIG QUIET REQUIRED COMPONENTS ${VecCore_COMPONENTS}) + find_package(VecCore 0.4.2 CONFIG QUIET COMPONENTS ${VecCore_COMPONENTS}) + if(NOT VecCore_FOUND) + message(STATUS "VecCore not found, switching on 'builtin_veccore' option.") + set(builtin_veccore ON CACHE BOOL "" FORCE) else() - find_package(VecCore 0.4.2 CONFIG QUIET COMPONENTS ${VecCore_COMPONENTS}) - if(NOT VecCore_FOUND) - message(STATUS "VecCore not found, switching OFF 'veccore' option.") - set(veccore OFF CACHE BOOL "" FORCE) - endif() - endif() - if(VecCore_FOUND) set_property(DIRECTORY APPEND PROPERTY INCLUDE_DIRECTORIES ${VecCore_INCLUDE_DIRS}) endif() endif() -if(builtin_veccore) +if(veccore AND NOT VecCore_FOUND) set(VecCore_VERSION "0.4.2") set(VecCore_PROJECT "VecCore-${VecCore_VERSION}") set(VecCore_SRC_URI "${lcgpackages}/${VecCore_PROJECT}.tar.gz") @@ -1547,13 +1519,10 @@ endif() if(tmva AND imt) message(STATUS "Looking for BLAS for optional parts of TMVA") - if(fail-on-missing) - find_package(BLAS REQUIRED) - else() - find_package(BLAS) - endif() + find_package(BLAS) endif() + #---Download googletest-------------------------------------------------------------- if (testing) # FIXME: Remove our version of gtest in roottest. We can reuse this one.