@@ -35,10 +35,50 @@ if (NOT DEFINED XEUS_CPP_KERNELSPEC_PATH)
35
35
set (XEUS_CPP_KERNELSPEC_PATH "${CMAKE_INSTALL_PREFIX} /${CMAKE_INSTALL_BINDIR} /" )
36
36
endif ()
37
37
38
- configure_file (
39
- "${CMAKE_CURRENT_SOURCE_DIR} /share/jupyter/kernels/xcpp/kernel.json.in"
40
- "${CMAKE_CURRENT_SOURCE_DIR} /share/jupyter/kernels/xcpp/kernel.json"
41
- )
38
+ set (CMAKE_CPLUS_INCLUDE_PATH "$ENV{CPLUS_INCLUDE_PATH} " )
39
+ set (CMAKE_PATH "$ENV{PATH} " )
40
+ set (CMAKE_LD_LIBRARY_PATH "$ENV{LD_LIBRARY_PATH} " )
41
+ set (CMAKE_PYTHONPATH "$ENV{PYTHONPATH} " )
42
+ set (CMAKE_VENV_PATH "$ENV{VENV} " )
43
+
44
+ message (STATUS "Debug: Replace in kernels" )
45
+ message (STATUS "Debug: CMAKE_CPLUS_INCLUDE_PATH=${CMAKE_CPLUS_INCLUDE_PATH} " )
46
+ message (STATUS "Debug: CMAKE_PATH=${CMAKE_PATH} " )
47
+ message (STATUS "Debug: CMAKE_LD_LIBRARY_PATH=${CMAKE_LD_LIBRARY_PATH} " )
48
+ message (STATUS "Debug: CMAKE_PYTHONPATH=${CMAKE_PYTHONPATH} " )
49
+ message (STATUS "Debug: CMAKE_VENV_PATH=${CMAKE_VENV_PATH} " )
50
+ message (STATUS "Debug: CMAKE_CURRENT_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} " )
51
+ message (STATUS "Debug: CMAKE_CURRENT_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR} " )
52
+
53
+
54
+ function (configure_kernel kernel)
55
+ configure_file (
56
+ "${CMAKE_CURRENT_SOURCE_DIR} /${kernel} /kernel.json.in"
57
+ "${CMAKE_CURRENT_BINARY_DIR} /${kernel} /kernel.json"
58
+ )
59
+ file (GLOB files "${CMAKE_CURRENT_SOURCE_DIR} /${kernel} /*.png" )
60
+ foreach (file ${files} )
61
+ configure_file (
62
+ "${file} "
63
+ "${CMAKE_CURRENT_BINARY_DIR} /${kernel} /"
64
+ COPYONLY
65
+ )
66
+ endforeach ()
67
+ file (GLOB files "${CMAKE_CURRENT_SOURCE_DIR} /${kernel} /*.svg" )
68
+ foreach (file ${files} )
69
+ configure_file (
70
+ "${file} "
71
+ "${CMAKE_CURRENT_BINARY_DIR} /${kernel} /"
72
+ COPYONLY
73
+ )
74
+ endforeach ()
75
+ endfunction ()
76
+
77
+ file (GLOB _kernels LIST_DIRECTORIES true RELATIVE "${CMAKE_CURRENT_SOURCE_DIR} " "share/jupyter/kernels/*" )
78
+ foreach (_kernel IN LISTS _kernels)
79
+ message ("Configure kernel: ${_kernel} " )
80
+ configure_kernel("${_kernel} " )
81
+ endforeach ()
42
82
43
83
# Build options
44
84
# =============
@@ -90,7 +130,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU"
90
130
if (NOT XEUS_CPP_EMSCRIPTEN_WASM_BUILD)
91
131
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunused-parameter -Wextra -Wreorder" )
92
132
endif ()
93
-
133
+
94
134
95
135
CHECK_CXX_COMPILER_FLAG("-std=c++17" HAS_CPP_17_FLAG)
96
136
if (HAS_CPP_17_FLAG)
@@ -105,9 +145,12 @@ if(XEUS_CPP_EMSCRIPTEN_WASM_BUILD)
105
145
set (EMSCRIPTEN_FEATURES "${EMSCRIPTEN_FEATURES} -s \" EXTRA_EXPORTED_RUNTIME_METHODS=[ENV']\" " )
106
146
endif ()
107
147
108
- find_package (Clang REQUIRED)
148
+ #find_package(Clang REQUIRED)
149
+ find_package (CppInterOp REQUIRED CONFIG PATHS "${CPPINTEROP_DIR} " "${CPPINTEROP_DIR} /lib" )
109
150
find_package (argparse REQUIRED)
110
151
find_package (pugixml REQUIRED)
152
+ ##set(Python_FIND_VIRTUALENV ONLY)
153
+ ##find_package(Python COMPONENTS Interpreter Development)
111
154
112
155
# Source files
113
156
# ============
@@ -190,7 +233,6 @@ macro(xeus_cpp_set_kernel_options target_name)
190
233
find_package (Threads)
191
234
target_link_libraries (${target_name} PRIVATE ${CMAKE_THREAD_LIBS_INIT} )
192
235
endif ()
193
-
194
236
endmacro ()
195
237
196
238
# Common macro for shared and static library
@@ -226,7 +268,8 @@ macro(xeus_cpp_create_target target_name linkage output_name)
226
268
set (XEUS_CPP_XEUS_TARGET xeus-static )
227
269
endif ()
228
270
229
- target_link_libraries (${target_name} PUBLIC ${XEUS_CPP_XEUS_TARGET} clangInterpreter pugixml argparse::argparse xtl)
271
+ ## target_link_libraries(${target_name} PUBLIC ${XEUS_CPP_XEUS_TARGET} clangInterpreter pugixml argparse::argparse xtl)
272
+ target_link_libraries (${target_name} PUBLIC ${XEUS_CPP_XEUS_TARGET} clangCppInterOp pugixml argparse::argparse xtl)
230
273
if (WIN32 OR CYGWIN )
231
274
#
232
275
elseif (APPLE )
@@ -236,7 +279,7 @@ macro(xeus_cpp_create_target target_name linkage output_name)
236
279
find_package (Threads) # TODO: add Threads as a dependence of xeus-static?
237
280
target_link_libraries (${target_name} PRIVATE ${CMAKE_THREAD_LIBS_INIT} )
238
281
endif ()
239
-
282
+
240
283
endmacro ()
241
284
242
285
# xeus-cpp-headers
@@ -283,6 +326,23 @@ if (XEUS_CPP_BUILD_EXECUTABLE)
283
326
xeus_cpp_set_common_options(xcpp)
284
327
xeus_cpp_set_kernel_options(xcpp)
285
328
target_link_libraries (xcpp PRIVATE xeus-zmq)
329
+
330
+ ##set_target_properties(xcpp PROPERTIES
331
+ ## ENABLE_EXPORTS 1
332
+ ## CXX_STANDARD ${CMAKE_CXX_STANDARD}
333
+ ##)
334
+ ##target_link_libraries(xcpp PUBLIC xeus-cpp pthread Python::Python)
335
+ ##
336
+ ###TODO: We may be need sse RPATH
337
+ ###set_target_properties(xcpp clangCppInterOp PROPERTIES
338
+ ### INSTALL_RPATH_USE_LINK_PATH TRUE
339
+ ###)
340
+ ##if(APPLE)
341
+ ## target_link_libraries(xcpp PUBLIC -Wl,-w -Wl,-bind_at_load -Wl,-undefined,dynamic_lookup)
342
+ ##elseif(NOT MSVC)
343
+ ## target_link_libraries(xcpp PUBLIC -Wl,--unresolved-symbols=ignore-in-object-files)
344
+ ##endif()
345
+
286
346
endif ()
287
347
288
348
if (XEUS_CPP_EMSCRIPTEN_WASM_BUILD)
@@ -318,18 +378,18 @@ endif ()
318
378
# Install xcpp
319
379
if (XEUS_CPP_BUILD_EXECUTABLE)
320
380
install (TARGETS xcpp
321
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )
381
+ # RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
382
+ RUNTIME DESTINATION ${CMAKE_VENV_PATH} /bin)
322
383
323
384
# Configuration and data directories for jupyter and xeus-cpp
324
385
set (XJUPYTER_DATA_DIR "share/jupyter" CACHE STRING "Jupyter data directory" )
325
-
326
386
# Install xcpp Jupyter kernelspec
327
- set (KERNELSPEC_DIR ${CMAKE_CURRENT_SOURCE_DIR } /share/jupyter/kernels)
387
+ set (KERNELSPEC_DIR ${CMAKE_CURRENT_BINARY_DIR } /share/jupyter/kernels)
328
388
install (DIRECTORY ${KERNELSPEC_DIR}
329
389
DESTINATION ${XJUPYTER_DATA_DIR}
390
+ # DESTINATION ${CMAKE_INSTALL_PREFIX}/${XJUPYTER_DATA_DIR}
330
391
PATTERN "*.in" EXCLUDE )
331
392
332
-
333
393
# Extra path for installing Jupyter kernelspec
334
394
if (XEXTRA_JUPYTER_DATA_DIR)
335
395
install (DIRECTORY ${KERNELSPEC_DIR}
0 commit comments