cmake_minimum_required(VERSION 3.10 FATAL_ERROR) # if CMAKE_BUILD_TYPE is specified use it; otherwise set the default # build type to "RelWithDebInfo" ("-O2 -g" with gcc) prior to calling project(FastMarching) INCLUDE(CTest) if(DEFINED CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Choose build type") else(DEFINED CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose build type") endif(DEFINED CMAKE_BUILD_TYPE) include_directories(.) file(GLOB HEADERS *.h*) set(FM_API ${FM_API} ${HEADERS}) #file(GLOB SRC *.c*) #set(FM_SRC ${FM_SRC} ${SRC} ) if(NOT INSIDE_CADXFEM_TREE) set(DISABLE_GMSH_TESTS BOOL TRUE) set(ENABLE_BUILD_SHARED ON CACHE BOOL "Enable 'shared' target for building shared Gmsh library" FORCE) set(ENABLE_PRIVATE_API ON CACHE BOOL "Enable private API" FORCE) set(GMSH_PATH "../gmsh" CACHE STRING "Gmsh Path") add_subdirectory(${GMSH_PATH} "${CMAKE_CURRENT_BINARY_DIR}/gmsh") include_directories(${GMSH_PATH}/src/common ${GMSH_PATH}/src/geo ${GMSH_PATH}/src/graphics ${GMSH_PATH}/src/mesh ${GMSH_PATH}/src/solver ${GMSH_PATH}/src/numeric ${GMSH_PATH}/srv/parser ${GMSH_PATH}/src/plugin ${GMSH_PATH}/src/post ${GMSH_PATH}/src/Fltk ${CMAKE_CURRENT_BINARY_DIR}/gmsh/src/common ${GMSH_EXTERNAL_INCLUDE_DIRS} ${EXTERNAL_INCLUDES} ${GMSH_PATH}/contrib/gmm ${GMSH_PATH}/contrib/MathEx ${GMSH_PATH}/contrib/DiscreteIntegration ${GMSH_PATH}/contrib/ANN ${GMSH_PATH}/contrib/hxt ${GMSH_PATH}/contrib/eigen) set_target_properties(gmsh PROPERTIES EXCLUDE_FROM_ALL TRUE) endif() IF(NOT TARGET nutil-dynamic AND NOT TARGET nutil-static AND NOT INSIDE_CADXFEM_TREE) add_subdirectory(nutil) endif() if(NOT INSIDE_CADXFEM_TREE OR NOT ANN_LIB OR NOT ANN_INC) find_library(ANN_LIB ann PATH_SUFFIXES lib) find_path(ANN_INC "ANN.h" PATH_SUFFIXES src include ANN) if(ANN_LIB AND ANN_INC) list(APPEND EXTERNAL_LIBRARIES ${ANN_LIB}) list(APPEND EXTERNAL_INCLUDES ${ANN_INC}) else(ANN_LIB AND ANN_INC) message(STATUS "ANN not found") endif(ANN_LIB AND ANN_INC) endif(NOT INSIDE_CADXFEM_TREE OR NOT ANN_LIB OR NOT ANN_INC) find_package(PCL 1.3) if(PCL_FOUND) include_directories(${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) set(USE_PCL ON) endif(PCL_FOUND) configure_file(FMconfig.h.in FMconfig.h) include_directories(. ${FastMarching_BINARY_DIR} ${NUTIL_INCLUDE_DIRECTORIES} ${NUTIL_EXTERNAL_INCLUDES} ${ANN_INC}) #set(FM_SRC ${FM_SRC} FastMarching.cc FM3D.cc gmshElement.cc gmshNode.cc FMField.cc FindMiniPath.cc FMPointCloud_b.cc FM0PC_b.cc FM1PC_b.cc FMPCField.cc FM2PC.cc) #FMPointCloud.cc FM0PC.cc FM1PC.cc set(FM_SRC ${FM_SRC} FastMarching.cc FM3D.cc gmshElement.cc gmshNode.cc FMField.cc FindMiniPath.cc FMPointCloud.cc FMPCField.cc FMPCAlgo.cc FM0PC.cc FM1PC.cc FM2PC.cc) add_library (fastmarching_shared SHARED ${FM_SRC} ) target_link_libraries(fastmarching_shared nutil-dynamic shared ${GMSH_EXTERNAL_LIBRARIES} ${PCL_LIBRARIES}) add_subdirectory(devel/test1) add_subdirectory(devel/test2) add_subdirectory(devel/test3) add_subdirectory(devel/test4) #add_subdirectory(devel/test5) add_subdirectory(devel/testPC) add_subdirectory(devel/testPC_Alex) add_subdirectory(test/test2d) add_subdirectory(test/test3d) add_subdirectory(test/test_dist) add_subdirectory(test/test_FM1) add_subdirectory(MMP) add_subdirectory(devel/testMMP) add_subdirectory(VTP) add_subdirectory(devel/testVTP)