mirror of https://github.com/CGAL/cgal
106 lines
3.1 KiB
CMake
106 lines
3.1 KiB
CMake
# Top level CMakeLists.txt for CGAL-branchbuild
|
|
|
|
# Minimal version of CMake:
|
|
cmake_minimum_required(VERSION 3.12...3.31)
|
|
|
|
message("== CMake setup ==")
|
|
project(CGAL CXX C)
|
|
export(PACKAGE CGAL)
|
|
|
|
set(CGAL_BRANCH_BUILD
|
|
ON
|
|
CACHE INTERNAL "Create CGAL from a Git branch" FORCE)
|
|
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/CGALConfigVersion.cmake)
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/Installation/cmake/modules/CGAL_SCM.cmake)
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/Installation/cmake/modules/CGAL_enable_end_of_configuration_hook.cmake)
|
|
cgal_detect_git(${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
function(CGAL_error_if_detect_in_source_build)
|
|
# If in a Git repository, forbid in-source builds
|
|
get_filename_component(srcdir "${CMAKE_CURRENT_SOURCE_DIR}" REALPATH)
|
|
get_filename_component(bindir "${CMAKE_CURRENT_BINARY_DIR}" REALPATH)
|
|
if("${srcdir}" STREQUAL "${bindir}")
|
|
message(
|
|
FATAL_ERROR
|
|
[=[
|
|
############
|
|
Since CGAL-4.12.1, you can no longer configure an in-source build in a Git
|
|
repository. See this StackOverlow question and answers for a way to create
|
|
a separate build directory:
|
|
https://stackoverflow.com/q/45518317/1728537
|
|
############
|
|
]=])
|
|
endif()
|
|
endfunction()
|
|
|
|
if("${CGAL_SCM_NAME}" STREQUAL "git")
|
|
cgal_error_if_detect_in_source_build()
|
|
endif()
|
|
|
|
# add option for duplicate file detection
|
|
option(
|
|
CGAL_REPORT_DUPLICATE_FILES
|
|
"Switch on to start (naive) detection of duplicate source- and headerfiles in packages"
|
|
OFF)
|
|
|
|
message("== CMake setup (DONE) ==\n")
|
|
|
|
# Enable testing with CGAL_ENABLE_TESTING. Before CGAL-6.0, users would enable
|
|
# the tests by specifying BUILD_TESTING. For compatibility, If BUILD_TESTING is
|
|
# set, that is the default value for CGAL_ENABLE_TESTING. Otherwise, the default
|
|
# value is OFF.
|
|
option(CGAL_ENABLE_TESTING "Build the testing tree." ${BUILD_TESTING})
|
|
if(CGAL_ENABLE_TESTING AND NOT POLICY CMP0064)
|
|
message(
|
|
FATAL_ERROR "CGAL support of CTest requires CMake version 3.4 or later.
|
|
The variable CGAL_ENABLE_TESTING must be set of OFF.")
|
|
endif()
|
|
if(CGAL_ENABLE_TESTING)
|
|
enable_testing()
|
|
endif()
|
|
|
|
#setup prefix path
|
|
file(GLOB BOOST_DIRS "C:/Program Files/boost/*")
|
|
if(NOT BOOST_DIRS)
|
|
file(GLOB BOOST_DIRS "C:/Program Files/boost*")
|
|
endif()
|
|
if(NOT BOOST_DIRS)
|
|
file(GLOB BOOST_DIRS "C:/Program Files (x86)/boost/*")
|
|
endif()
|
|
if(NOT BOOST_DIRS)
|
|
file(GLOB BOOST_DIRS "C:/Program Files (x86)/boost*")
|
|
endif()
|
|
if(NOT BOOST_DIRS)
|
|
file(GLOB BOOST_DIRS "C:/local/boost*")
|
|
endif()
|
|
if(BOOST_DIRS)
|
|
list(GET BOOST_DIRS 0 boost_dir)
|
|
list(APPEND CMAKE_PREFIX_PATH "${boost_dir}")
|
|
endif()#BOOST_DIRS
|
|
|
|
file(GLOB QT_DIRS "C:/Qt/5")
|
|
if(QT_DIRS)
|
|
list(GET QT_DIRS 0 qt_dir)
|
|
file(GLOB COMPS "${qt_dir}/msvc*")
|
|
if(COMPS)
|
|
list(GET COMPS 0 COMP)
|
|
list(APPEND CMAKE_PREFIX_PATH "${COMP}")
|
|
endif()#COMPS
|
|
endif()#QT_DIRS
|
|
|
|
|
|
# and finally start actual build
|
|
add_subdirectory(Installation)
|
|
add_subdirectory(Documentation/doc)
|
|
|
|
if(NOT TARGET uninstall)
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake IMMEDIATE @ONLY)
|
|
|
|
add_custom_target(
|
|
uninstall COMMAND ${CMAKE_COMMAND} -P
|
|
${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
|
|
endif()
|