@@ -18,6 +18,7 @@ set(NANOGUI_EXTRA_LIBS "")
18
18
19
19
# Platform-dependent files for libnanogui
20
20
set (LIBNANOGUI_EXTRA_SOURCE "" )
21
+ set (LIBNANOGUI_PYTHON_EXTRA_SOURCE "" )
21
22
22
23
if (APPLE AND NANOGUI_BUILD_SHARED)
23
24
set (CMAKE_MACOSX_RPATH ON )
@@ -99,7 +100,7 @@ endif()
99
100
100
101
if (WIN32 )
101
102
# Build and include GLAD on Windows
102
- list (APPEND LIBNANOGUI_EXTRA_SOURCE
103
+ list (APPEND LIBNANOGUI_PYTHON_EXTRA_SOURCE
103
104
"${CMAKE_CURRENT_SOURCE_DIR} /ext/glad/src/glad.c"
104
105
"${CMAKE_CURRENT_SOURCE_DIR} /ext/glad/include/glad/glad.h"
105
106
"${CMAKE_CURRENT_SOURCE_DIR} /ext/glad/include/KHR/khrplatform.h" )
@@ -146,12 +147,19 @@ add_custom_command(
146
147
include_directories (${CMAKE_CURRENT_BINARY_DIR} )
147
148
148
149
# Set library type
149
- if (NANOGUI_BUILD_SHARED)
150
+ if (NANOGUI_BUILD_SHARED)
150
151
set (NANOGUI_LIBRARY_TYPE "SHARED" )
151
152
else ()
152
153
set (NANOGUI_LIBRARY_TYPE "STATIC" )
153
154
endif ()
154
155
156
+ if (APPLE )
157
+ # Include coroutine support for running the mainloop in detached mode
158
+ add_definitions (-DCORO_SJLJ)
159
+ include_directories (ext /coro)
160
+ list (APPEND LIBNANOGUI_PYTHON_EXTRA_SOURCE ext /coro/coro.c)
161
+ endif ()
162
+
155
163
# Compile main NanoGUI library
156
164
add_library (nanogui ${NANOGUI_LIBRARY_TYPE}
157
165
# Merge GLFW into the NanoGUI library
@@ -274,7 +282,8 @@ if (NANOGUI_BUILD_PYTHON)
274
282
set_target_properties (glfw_objects PROPERTIES POSITION_INDEPENDENT_CODE ON )
275
283
276
284
include_directories ("ext/pybind11/include" ${PYTHON_INCLUDE_DIR} )
277
- add_library (nanogui_python SHARED python/python.cpp python/python.h python/py_doc.h)
285
+ add_library (nanogui_python SHARED python/python.cpp python/python.h python/py_doc.h
286
+ ${LIBNANOGUI_PYTHON_EXTRA_SOURCE} )
278
287
set_target_properties (nanogui_python PROPERTIES OUTPUT_NAME "nanogui" )
279
288
target_link_libraries (nanogui_python nanogui ${NANOGUI_EXTRA_LIBS} )
280
289
0 commit comments