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)