cmake_minimum_required(VERSION 3.16) project(ParasolidDemo LANGUAGES CXX C) SET(CMAKE_CXX_STANDARD 14) SET(PARASOLID "/mnt/d/download/parasolid/Parasolid_Installer_v350_rv1000/parasolid/intel_linux/base") SET(SOURCE_DIR ${CMAKE_SOURCE_DIR}) CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/config/config.hpp.in" "${CMAKE_SOURCE_DIR}/config/config.hpp") # Release # set(CMAKE_BUILD_TYPE "Release") # if(CMAKE_BUILD_TYPE STREQUAL "Release") # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3") # # 或者使用以下语句来开启C++11标准(如果你的项目需要) # # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -std=c++11") # endif() # 编译选项 # SET(CMAKE_CXX_FLAGS -DBOOST_NO_CXX11_SCOPED_ENUMS -lboost_filesystem) # add_compile_options( -DBOOST_NO_CXX11_SCOPED_ENUMS -lboost_filesystem) add_compile_options(-lboost_system) # 链接选项 # 来自parasolid_link.com SET(LINK_FLAGS "-lm -pthread") SET(CMAKE_SHARED_LINKER_FLAGS "${LINK_FLAGS}") SET(CMAKE_EXE_LINKER_FLAGS "${LINK_FLAGS}") find_package(Boost 1.71.0 COMPONENTS regex system filesystem REQUIRED) IF (Boost_FOUND) INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR}) link_directories(ParasolidDemo ${Boost_LIBRARY_DIRS}) ADD_DEFINITIONS( "-DHAS_BOOST" ) ENDIF() #find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets) #find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) include_directories(${PARASOLID}) include_directories(${CMAKE_SOURCE_DIR}) include_directories(${CMAKE_SOURCE_DIR}/config) add_executable(ParasolidDemo evaluation_test.cpp case_reader.cpp case_reader.h) # 将intersectTest的内容拷贝到build文件夹下 # 参考https://stackoverflow.com/questions/13429656/how-to-copy-contents-of-a-directory-into-build-directory-after-make-with-cmake #add_custom_command(TARGET ParasolidDemo PRE_BUILD # COMMAND ${CMAKE_COMMAND} -E copy_directory # ${CMAKE_SOURCE_DIR}/intersectCases/ $/intersectCases) target_link_libraries(ParasolidDemo PUBLIC "${PARASOLID}/frustrum.lib") target_link_libraries(ParasolidDemo PUBLIC "${PARASOLID}/fg.lib") target_link_libraries(ParasolidDemo PUBLIC "${PARASOLID}/pskernel_archive.lib") target_link_libraries(ParasolidDemo PRIVATE "${Boost_LIBRARIES}") #target_link_libraries(ParasolidDemo PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)