mirror of https://github.com/CGAL/cgal
Define and use a new CMake API for CGAL
For the moment, the new API is used only in: - `examples/Mesh_2/CMakeLists.txt` - `demo/Triangulation_2/CMakeLists.txt`
This commit is contained in:
parent
973b4e89b2
commit
a3ddaa132f
|
|
@ -8,73 +8,38 @@ if(POLICY CMP0043)
|
|||
cmake_policy(SET CMP0043 OLD)
|
||||
endif()
|
||||
|
||||
set(CMAKE_AUTOMOC TRUE)
|
||||
set(CMAKE_AUTOUIC TRUE)
|
||||
set(CMAKE_AUTORCC TRUE)
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
|
||||
|
||||
find_package(CGAL COMPONENTS Qt5)
|
||||
|
||||
include(${CGAL_USE_FILE})
|
||||
|
||||
|
||||
find_package(Qt5 QUIET COMPONENTS Xml Script OpenGL Svg)
|
||||
|
||||
include_directories (BEFORE ../../include)
|
||||
include_directories (BEFORE ./include)
|
||||
include_directories (BEFORE ../../../Number_types/include)
|
||||
|
||||
include_directories (BEFORE ../../../Triangulation_2/include)
|
||||
|
||||
if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND )
|
||||
|
||||
add_definitions(-DQT_NO_KEYWORDS)
|
||||
|
||||
|
||||
|
||||
#--------------------------------
|
||||
# The "constrained Delaunay" demo: Constrained_Delaunay_triangulation_2
|
||||
#--------------------------------
|
||||
# UI files (Qt Designer files)
|
||||
qt5_wrap_ui( CDT_UI_FILES Constrained_Delaunay_triangulation_2.ui )
|
||||
|
||||
# qrc files (resources files, that contain icons, at least)
|
||||
qt5_add_resources ( CDT_RESOURCE_FILES ./Constrained_Delaunay_triangulation_2.qrc )
|
||||
|
||||
# use the Qt MOC preprocessor on classes that derives from QObject
|
||||
qt5_generate_moc( "Constrained_Delaunay_triangulation_2.cpp" "${CMAKE_CURRENT_BINARY_DIR}/Constrained_Delaunay_triangulation_2.moc" )
|
||||
|
||||
# The executable itself.
|
||||
add_executable ( Constrained_Delaunay_triangulation_2 Constrained_Delaunay_triangulation_2.cpp Constrained_Delaunay_triangulation_2.moc ${CDT_UI_FILES} ${CDT_RESOURCE_FILES} ${CGAL_Qt5_RESOURCE_FILES} ${CGAL_Qt5_MOC_FILES})
|
||||
|
||||
qt5_use_modules(Constrained_Delaunay_triangulation_2 Xml Script OpenGL Svg)
|
||||
add_executable ( Constrained_Delaunay_triangulation_2 Constrained_Delaunay_triangulation_2.cpp)
|
||||
target_link_libraries( Constrained_Delaunay_triangulation_2 CGAL::CGAL CGAL::CGAL_Qt5 Qt5::Xml Qt5::Script Qt5::OpenGL Qt5::Svg)
|
||||
|
||||
add_to_cached_list( CGAL_EXECUTABLE_TARGETS Constrained_Delaunay_triangulation_2 )
|
||||
|
||||
# Link with Qt libraries
|
||||
target_link_libraries( Constrained_Delaunay_triangulation_2 ${QT_LIBRARIES} )
|
||||
# Link with CGAL
|
||||
target_link_libraries( Constrained_Delaunay_triangulation_2 ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES})
|
||||
|
||||
#--------------------------------
|
||||
# The "Delaunay" demo: Delaunay_triangulation_2
|
||||
#--------------------------------
|
||||
# UI files (Qt Designer files)
|
||||
qt5_wrap_ui( DT_UI_FILES Delaunay_triangulation_2.ui )
|
||||
|
||||
# qrc files (resources files, that contain icons, at least)
|
||||
qt5_add_resources ( DT_RESOURCE_FILES ./Delaunay_triangulation_2.qrc )
|
||||
|
||||
# use the Qt MOC preprocessor on classes that derives from QObject
|
||||
qt5_generate_moc( "Delaunay_triangulation_2.cpp" "${CMAKE_CURRENT_BINARY_DIR}/Delaunay_triangulation_2.moc" )
|
||||
|
||||
# The executable itself.
|
||||
add_executable ( Delaunay_triangulation_2 Delaunay_triangulation_2.cpp Delaunay_triangulation_2.moc ${DT_UI_FILES} ${DT_RESOURCE_FILES} ${CGAL_Qt5_RESOURCE_FILES} ${CGAL_Qt5_MOC_FILES})
|
||||
|
||||
qt5_use_modules(Delaunay_triangulation_2 Xml Script OpenGL Svg)
|
||||
add_executable ( Delaunay_triangulation_2 Delaunay_triangulation_2.cpp )
|
||||
target_link_libraries( Delaunay_triangulation_2 CGAL::CGAL_Qt5 Qt5::Xml Qt5::Script Qt5::OpenGL Qt5::Svg)
|
||||
|
||||
add_to_cached_list( CGAL_EXECUTABLE_TARGETS Delaunay_triangulation_2 )
|
||||
|
||||
# Link with Qt libraries
|
||||
target_link_libraries( Delaunay_triangulation_2 ${QT_LIBRARIES} )
|
||||
# Link with CGAL
|
||||
target_link_libraries( Delaunay_triangulation_2 ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES})
|
||||
|
||||
#--------------------------------
|
||||
# The "Regular" demo: Regular_triangulation_2
|
||||
#--------------------------------
|
||||
|
|
|
|||
|
|
@ -184,3 +184,5 @@ set(CGAL_SUPPORTING_3RD_PARTY_LIBRARIES "@CGAL_SUPPORTING_3RD_PARTY_LIBRARIES@")
|
|||
set(CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES "@CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES@")
|
||||
|
||||
set(CGAL_DISABLE_GMP "@CGAL_DISABLE_GMP@")
|
||||
|
||||
include(${CGAL_MODULES_DIR}/CGAL_CreateSingleSourceCGALProgram.cmake)
|
||||
|
|
|
|||
|
|
@ -145,3 +145,5 @@ set(CGAL_SUPPORTING_3RD_PARTY_LIBRARIES "@CGAL_SUPPORTING_3RD_PARTY_LIBRARIES@")
|
|||
set(CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES "@CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES@")
|
||||
|
||||
set(CGAL_DISABLE_GMP "@CGAL_DISABLE_GMP@")
|
||||
|
||||
include(${CGAL_MODULES_DIR}/CGAL_CreateSingleSourceCGALProgram.cmake)
|
||||
|
|
|
|||
|
|
@ -63,16 +63,7 @@ function(create_single_source_cgal_program firstfile )
|
|||
|
||||
add_to_cached_list( CGAL_EXECUTABLE_TARGETS ${exe_name} )
|
||||
|
||||
# Link the executable to CGAL and third-party libraries
|
||||
if ( CGAL_AUTO_LINK_ENABLED )
|
||||
|
||||
target_link_libraries(${exe_name} ${CGAL_3RD_PARTY_LIBRARIES} )
|
||||
|
||||
else()
|
||||
|
||||
target_link_libraries(${exe_name} ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} )
|
||||
|
||||
endif()
|
||||
target_link_libraries(${exe_name} CGAL::CGAL )
|
||||
else()
|
||||
message(AUTHOR_WARNING "The executable ${exe_name} will not be created because the source file ${firstfile} does not exist.")
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -10,12 +10,6 @@ find_package(CGAL QUIET)
|
|||
|
||||
if ( CGAL_FOUND )
|
||||
|
||||
include( ${CGAL_USE_FILE} )
|
||||
|
||||
include( CGAL_CreateSingleSourceCGALProgram )
|
||||
|
||||
include_directories (BEFORE "../../include")
|
||||
|
||||
# create a target per cppfile
|
||||
file(GLOB cppfiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
|
||||
foreach(cppfile ${cppfiles})
|
||||
|
|
@ -27,4 +21,3 @@ else()
|
|||
message(STATUS "This program requires the CGAL library, and will not be compiled.")
|
||||
|
||||
endif()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue