You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

43 lines
1.4 KiB

cmake_minimum_required(VERSION 3.16)
project(NurbsIntersection LANGUAGES CXX)
# C++ 11 is required
set(CMAKE_CXX_STANDARD 11)
list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
# Libigl
include(libigl)
# Enable the target igl::glfw
igl_include(glfw)
# add include directories
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty)
# add source files
file(GLOB_RECURSE SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)
# add header files
file(GLOB_RECURSE HEADER_FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/*.hpp)
file(GLOB_RECURSE THRDPARTY_FILES ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/*)
#used for IDE, eg.Visual Studio
source_group("Header Files" FILES ${HEADER_FILES})
source_group("3rdparty" FILES ${THRDPARTY_FILES})
add_library(${PROJECT_NAME} ${SRC_FILES} ${HEADER_FILES} ${THRDPARTY_FILES} )
add_library(NurbsIntersection::nurbsintersect ALIAS ${PROJECT_NAME})
#link libraries
target_link_libraries(${PROJECT_NAME} PUBLIC igl::glfw)
#add subdirectories
# add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/examples/example1_show_bvh_curve)
# add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/examples/example2_show_bvh_surface)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/examples/example3_curve_curve_intersection)
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/examples/example4_curve_surface_intersection)