cmake_minimum_required(VERSION 3.16) project(OpenCAD) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) find_package(Qt6 COMPONENTS Widgets OpenGLWidgets Svg REQUIRED) find_package(TBB REQUIRED) find_package(OpenCASCADE REQUIRED COMPONENTS FoundationClasses ModelingData ModelingAlgorithms Visualization ) # Workaround for Debian's OpenCASCADE package not setting INCLUDE_DIRS correctly if(NOT OpenCASCADE_INCLUDE_DIRS) set(OpenCASCADE_INCLUDE_DIRS "/usr/include/opencascade") message(STATUS "OpenCASCADE_INCLUDE_DIRS was not set. Forcing to /usr/include/opencascade") endif() message(STATUS "OpenCASCADE_INCLUDE_DIRS: ${OpenCASCADE_INCLUDE_DIRS}") message(STATUS "OpenCASCADE_LIBRARIES: ${OpenCASCADE_LIBRARIES}") add_executable(OpenCAD src/main.cpp src/MainWindow.cpp src/ViewportWidget.cpp src/ViewCube.cpp src/SketchGrid.cpp src/Document.cpp src/Feature.cpp src/SketchFeature.cpp src/SketchLine.cpp src/SketchRectangle.cpp src/FeatureBrowser.cpp src/ApplicationController.cpp src/Camera.cpp src/SketchTool.cpp src/LineTool.cpp src/RectangleTool.cpp src/Snapping.cpp resources.qrc ) target_include_directories(OpenCAD SYSTEM PRIVATE ${OpenCASCADE_INCLUDE_DIRS}) target_link_libraries(OpenCAD PRIVATE Qt6::Widgets Qt6::OpenGLWidgets Qt6::Svg ${OpenCASCADE_FoundationClasses_LIBRARIES} ${OpenCASCADE_ModelingData_LIBRARIES} ${OpenCASCADE_ModelingAlgorithms_LIBRARIES} ${OpenCASCADE_Visualization_LIBRARIES} TBB::tbb )