1+ cmake_minimum_required (VERSION 3.14 )
2+ set (CMAKE_CXX_STANDARD 20)
3+ project (BORAINTERPRETER CXX OBJCXX )
4+
5+ set (SKIA_SOURCE_DIR "${CMAKE_SOURCE_DIR} /../../global/contribs/bskia" )
6+ set (SKIA_BUILD_DIR "${CMAKE_SOURCE_DIR} /../../global/cached_libs/bskia" )
7+ include (${CMAKE_SOURCE_DIR} /../../global/cmake/skia.cmake )
8+
9+ if (WIN32 )
10+ file (GLOB_RECURSE BORA_SOURCES_CONTRIB_TAZA ../../global/cpp/contribs/TAZA/code/*.cpp ../../global/cpp/contribs/TAZA/code/*.h ../../global/cpp/contribs/TAZA/code/*.hpp )
11+ file (GLOB_RECURSE BORA_SOURCES src/win32/* )
12+ file (GLOB_RECURSE BORA_SOURCES_3RDPARTYDLIB ../../global/libs/*.lib )
13+ file (GLOB_RECURSE BORA_SOURCES_3RDPARTYLIB ../../global/libs/*.dlib )
14+
15+ include_directories (
16+ ../../global/cpp/contribs/TAZA/code
17+ ../../global/cpp/contribs
18+ )
19+
20+ add_library (${PROJECT_NAME} SHARED
21+ ../../global/cpp/contribs/SysImageMgr.h
22+ ../../global/cpp/contribs/SysImageMgr.cpp
23+ ${BORA_SOURCES}
24+ ${BORA_SOURCES_CONTRIB_TAZA}
25+ )
26+
27+ target_compile_options (${PROJECT_NAME} PRIVATE
28+ $<$<AND :$<CXX_COMPILER_ID :MSVC >,$<COMPILE_LANGUAGE :CXX >>:/FI ${CMAKE_CURRENT_SOURCE_DIR} /../../global /cpp /contribs /TypeDefinitions .h >
29+ )
30+
31+ target_compile_definitions (${PROJECT_NAME} PRIVATE
32+ TAZABASEDIR= \"${CMAKE_SOURCE_DIR} ../global/cpp/contribs/TAZA/code\"
33+ NOMINMAX
34+ )
35+
36+ # Specify Windows subsystem
37+ set_target_properties(${PROJECT_NAME} PROPERTIES
38+ OUTPUT_NAME " BORAINTERPRETERWIN32 "
39+ )
40+
41+ if (CMAKE_BUILD_TYPE STREQUAL " Debug ")
42+ target_link_libraries(${PROJECT_NAME} PRIVATE ${BORA_SOURCES_3RDPARTYDLIB} )
43+ else ()
44+ target_link_libraries(${PROJECT_NAME} PRIVATE ${BORA_SOURCES_3RDPARTYLIB} )
45+ endif()
46+
47+ endif()
48+ # For macos code
49+ if(APPLE)
50+
51+
52+ set(CMAKE_OSX_BUNDLE YES)
53+ set(CMAKE_OSX_BUNDLE_GUI_IDENTIFIER " com.bora.interpreter ")
54+ set(CMAKE_OSX_BUNDLE_BUNDLE_VERSION " 0.1.appleconfusion ")
55+ set(CMAKE_OSX_BUNDLE_SHORT_VERSION_STRING " 0.1 ")
56+ set(CMAKE_OSX_ARCHITECTURES " x86_64;arm64 ") # universal
57+
58+ file(GLOB_RECURSE BORA_SOURCES_CONTRIB_TAZA ../../global/cpp/contribs/TAZA/code/*.cpp ../../global/cpp/contribs/TAZA/code/*.h ../../global/cpp/contribs/TAZA/code/*.hpp)
59+ file(GLOB_RECURSE BORA_SOURCES src/osx/*)
60+ file(GLOB_RECURSE BORA_SOURCES_3RDPARTYDLIB ../../global/libs/__apple__/*.a ../../global/libs/__apple__x86/*.a)
61+ file(GLOB_RECURSE BORA_SOURCES_3RDPARTYLIB ../../global/libs/__apple__/*.a ../../global/libs/__apple__x86/*.a)
62+
63+
64+
65+ include_directories(
66+ ../../global/cpp/contribs/TAZA/code
67+ ../../global/cpp/contribs
68+ )
69+
70+ add_library(${PROJECT_NAME} MODULE
71+ ../../global/cpp/contribs/SysImageMgr.h
72+ ../../global/cpp/contribs/SysImageMgr.cpp
73+ ${BORA_SOURCES}
74+ ${BORA_SOURCES_CONTRIB_TAZA}
75+ )
76+
77+ target_link_libraries(${PROJECT_NAME}
78+ ${BORA_SOURCES_3RDPARTYDLIB}
79+ " -framework CoreServices "
80+ " -framework CoreFoundation "
81+ " -framework CoreGraphics "
82+ " -framework Quartz "
83+ )
84+
85+
86+ target_compile_options(${PROJECT_NAME} PRIVATE
87+ $<$<COMPILE_LANGUAGE :CXX >:-include ${CMAKE_CURRENT_SOURCE_DIR} /../../global /cpp /contribs /TypeDefinitions .h >
88+ )
89+
90+ target_compile_definitions(${PROJECT_NAME} PRIVATE
91+ TAZABASEDIR=\" ${CMAKE_SOURCE_DIR} ../global/cpp/contribs/TAZA/code\"
92+ NOMINMAX
93+ )
94+
95+ # Specify Windows subsystem
96+ set_target_properties(${PROJECT_NAME} PROPERTIES
97+ OUTPUT_NAME " BORAINTERPRETEROSX "
98+ MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR} /src/osx/Info.plist
99+ BUNDLE TRUE
100+ BUNDLE_EXTENSION " qlgenerator "
101+ MACOSX_BUNDLE TRUE
102+ )
103+
104+
105+ endif()
0 commit comments