-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathCMakeLists.txt
53 lines (41 loc) · 1.6 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
cmake_minimum_required(VERSION 3.15)
# Project configuration
project(OcctImgui LANGUAGES CXX)
# Set output directories
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/${CMAKE_BUILD_TYPE})
# Include directories
find_package(glfw3 REQUIRED)
find_package(OpenCASCADE REQUIRED)
file(GLOB_RECURSE SOURCES
"${CMAKE_SOURCE_DIR}/*.cpp"
"${CMAKE_SOURCE_DIR}/*.h"
)
# Exclude CMake-generated files from the SOURCES list
list(FILTER SOURCES EXCLUDE REGEX ".*CMakeFiles.*")
# Add executable target
add_executable(OcctImgui ${SOURCES})
# Link libraries
target_link_libraries(OcctImgui
PRIVATE TKernel TKMath TKG2d TKG3d TKGeomBase TKGeomAlgo TKBRep TKTopAlgo TKPrim TKMesh TKService TKOpenGl TKV3d
glfw
)
target_compile_options(OcctImgui PRIVATE
$<$<CONFIG:Debug>:-g>
$<$<CONFIG:Release>:-O3>
)
target_link_directories(OcctImgui PRIVATE
$<$<CONFIG:Debug>:${DEBUG_LIBS}>
$<$<CONFIG:Release>:${RELEASE_LIBS}>
)
# Debug environment variables (for Windows)
if(WIN32)
set(DEBUG_ENVS "path=%path%;D:/OpenCASCADE-7.7.0/opencascade-7.7.0/win64/vc14/bind")
set(RELEASE_ENVS "path=%path%;D:/OpenCASCADE-7.7.0/opencascade-7.7.0/win64/vc14/bin")
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set_target_properties(OcctImgui PROPERTIES VS_DEBUGGER_ENVIRONMENT "${DEBUG_ENVS}")
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
set_target_properties(OcctImgui PROPERTIES VS_DEBUGGER_ENVIRONMENT "${RELEASE_ENVS}")
endif()
endif()