diff --git a/CMakeLists.txt b/CMakeLists.txt
index f5ac5e59..7e88a228 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -126,13 +126,34 @@ if (NOT DEFINED XEUS_CPP_KERNELSPEC_PATH)
set(XEUS_CPP_KERNELSPEC_PATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/")
endif ()
-set(XEUS_CPP_PATH "$ENV{PATH}")
-set(XEUS_CPP_LD_LIBRARY_PATH "$ENV{LD_LIBRARY_PATH}")
-set(XEUS_CPP_RESOURCE_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/clang/${CppInterOp_CLANG_VERSION})
-configure_file (
- "${CMAKE_CURRENT_SOURCE_DIR}/share/jupyter/kernels/xcpp/kernel.json.in"
- "${CMAKE_CURRENT_BINARY_DIR}/share/jupyter/kernels/xcpp/kernel.json"
-)
+function(configure_kernel kernel)
+ set(XEUS_CPP_PATH "$ENV{PATH}")
+ set(XEUS_CPP_LD_LIBRARY_PATH "$ENV{LD_LIBRARY_PATH}")
+ set(XEUS_CPP_RESOURCE_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/clang/${CppInterOp_CLANG_VERSION})
+
+ configure_file (
+ "${CMAKE_CURRENT_SOURCE_DIR}/${kernel}/kernel.json.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/${kernel}/kernel.json")
+
+ configure_file (
+ "${CMAKE_CURRENT_SOURCE_DIR}/${kernel}/logo-32x32.png"
+ "${CMAKE_CURRENT_BINARY_DIR}/${kernel}/"
+ COPYONLY)
+ configure_file (
+ "${CMAKE_CURRENT_SOURCE_DIR}/${kernel}/logo-64x64.png"
+ "${CMAKE_CURRENT_BINARY_DIR}/${kernel}/"
+ COPYONLY)
+ configure_file (
+ "${CMAKE_CURRENT_SOURCE_DIR}/${kernel}/logo-svg.svg"
+ "${CMAKE_CURRENT_BINARY_DIR}/${kernel}/"
+ COPYONLY)
+endfunction()
+
+message("Configure kernels: ...")
+configure_kernel("share/jupyter/kernels/xcpp")
+configure_kernel("share/jupyter/kernels/xcpp11")
+configure_kernel("share/jupyter/kernels/xcpp14")
+configure_kernel("share/jupyter/kernels/xcpp17")
# Source files
# ============
diff --git a/share/jupyter/kernels/xcpp/kernel.json.in b/share/jupyter/kernels/xcpp/kernel.json.in
index 4fb8d36a..de229b64 100644
--- a/share/jupyter/kernels/xcpp/kernel.json.in
+++ b/share/jupyter/kernels/xcpp/kernel.json.in
@@ -1,5 +1,5 @@
{
- "display_name": "cpp 14 (xcpp)",
+ "display_name": "cpp 17 (xcpp)",
"env": {
"PATH":"@XEUS_CPP_PATH@",
"LD_LIBRARY_PATH":"@XEUS_CPP_LD_LIBRARY_PATH@"
@@ -10,7 +10,7 @@
"{connection_file}",
"-resource-dir", "@XEUS_CPP_RESOURCE_DIR@",
"-I", "@CMAKE_INSTALL_PREFIX@/include",
- "-std=c++14"@XEUS_CPP_OMP@
+ "-std=c++17"@XEUS_CPP_OMP@
],
"language": "cpp",
"metadata": {"debugger": false
diff --git a/share/jupyter/kernels/xcpp11/kernel.json.in b/share/jupyter/kernels/xcpp11/kernel.json.in
new file mode 100644
index 00000000..382ce12f
--- /dev/null
+++ b/share/jupyter/kernels/xcpp11/kernel.json.in
@@ -0,0 +1,16 @@
+{
+ "display_name": "C++11 (xcpp)",
+ "env": {
+ "PATH":"@XEUS_CPP_PATH@",
+ "LD_LIBRARY_PATH":"@XEUS_CPP_LD_LIBRARY_PATH@"
+ },
+ "argv": [
+ "@XEUS_CPP_KERNELSPEC_PATH@xcpp",
+ "-f",
+ "{connection_file}",
+ "-resource-dir", "@XEUS_CPP_RESOURCE_DIR@",
+ "-std=c++11"@XEUS_CPP_OMP@
+ ],
+ "language": "cpp",
+ "metadata": {"debugger": false}
+}
diff --git a/share/jupyter/kernels/xcpp11/logo-32x32.png b/share/jupyter/kernels/xcpp11/logo-32x32.png
new file mode 100644
index 00000000..c09c4585
Binary files /dev/null and b/share/jupyter/kernels/xcpp11/logo-32x32.png differ
diff --git a/share/jupyter/kernels/xcpp11/logo-64x64.png b/share/jupyter/kernels/xcpp11/logo-64x64.png
new file mode 100644
index 00000000..396c2446
Binary files /dev/null and b/share/jupyter/kernels/xcpp11/logo-64x64.png differ
diff --git a/share/jupyter/kernels/xcpp11/logo-svg.svg b/share/jupyter/kernels/xcpp11/logo-svg.svg
new file mode 100644
index 00000000..5e117077
--- /dev/null
+++ b/share/jupyter/kernels/xcpp11/logo-svg.svg
@@ -0,0 +1,25 @@
+
+
+
+
diff --git a/share/jupyter/kernels/xcpp14/kernel.json.in b/share/jupyter/kernels/xcpp14/kernel.json.in
new file mode 100644
index 00000000..356286aa
--- /dev/null
+++ b/share/jupyter/kernels/xcpp14/kernel.json.in
@@ -0,0 +1,20 @@
+{
+ "display_name": "C++14 (xcpp)",
+ "env": {
+ "PATH":"@XEUS_CPP_PATH@",
+ "LD_LIBRARY_PATH":"@XEUS_CPP_LD_LIBRARY_PATH@"
+ },
+ "argv": [
+ "@XEUS_CPP_KERNELSPEC_PATH@xcpp",
+ "-f",
+ "{connection_file}",
+ "-resource-dir", "@XEUS_CPP_RESOURCE_DIR@",
+ "-I", "@CMAKE_INSTALL_PREFIX@/include",
+ "-std=c++14",
+ "-fno-exceptions",
+ "-O2",
+ "-v"@XEUS_CPP_OMP@
+ ],
+ "language": "cpp",
+ "metadata": {"debugger": false}
+}
diff --git a/share/jupyter/kernels/xcpp14/logo-32x32.png b/share/jupyter/kernels/xcpp14/logo-32x32.png
new file mode 100644
index 00000000..c09c4585
Binary files /dev/null and b/share/jupyter/kernels/xcpp14/logo-32x32.png differ
diff --git a/share/jupyter/kernels/xcpp14/logo-64x64.png b/share/jupyter/kernels/xcpp14/logo-64x64.png
new file mode 100644
index 00000000..396c2446
Binary files /dev/null and b/share/jupyter/kernels/xcpp14/logo-64x64.png differ
diff --git a/share/jupyter/kernels/xcpp14/logo-svg.svg b/share/jupyter/kernels/xcpp14/logo-svg.svg
new file mode 100644
index 00000000..5e117077
--- /dev/null
+++ b/share/jupyter/kernels/xcpp14/logo-svg.svg
@@ -0,0 +1,25 @@
+
+
+
+
diff --git a/share/jupyter/kernels/xcpp17-omp/kernel.json.in b/share/jupyter/kernels/xcpp17-omp/kernel.json.in
new file mode 100644
index 00000000..4105e964
--- /dev/null
+++ b/share/jupyter/kernels/xcpp17-omp/kernel.json.in
@@ -0,0 +1,18 @@
+{
+ "display_name": "C++17 (xcpp+OpenMP)",
+ "env": {
+ "PATH":"@XEUS_CPP_PATH@",
+ "LD_LIBRARY_PATH":"@XEUS_CPP_LD_LIBRARY_PATH@"
+ },
+ "argv": [
+ "@XEUS_CPP_KERNELSPEC_PATH@xcpp",
+ "-f",
+ "{connection_file}",
+ "-resource-dir", "@XEUS_CPP_RESOURCE_DIR@",
+ "-I", "@CMAKE_INSTALL_PREFIX@/include",
+ "-std=c++17"@XEUS_CPP_OMP@
+ ],
+ "language": "cpp",
+ "metadata": {"debugger": false
+ }
+}
diff --git a/share/jupyter/kernels/xcpp17-omp/logo-32x32.png b/share/jupyter/kernels/xcpp17-omp/logo-32x32.png
new file mode 100644
index 00000000..c09c4585
Binary files /dev/null and b/share/jupyter/kernels/xcpp17-omp/logo-32x32.png differ
diff --git a/share/jupyter/kernels/xcpp17-omp/logo-64x64.png b/share/jupyter/kernels/xcpp17-omp/logo-64x64.png
new file mode 100644
index 00000000..396c2446
Binary files /dev/null and b/share/jupyter/kernels/xcpp17-omp/logo-64x64.png differ
diff --git a/share/jupyter/kernels/xcpp17-omp/logo-svg.svg b/share/jupyter/kernels/xcpp17-omp/logo-svg.svg
new file mode 100644
index 00000000..5e117077
--- /dev/null
+++ b/share/jupyter/kernels/xcpp17-omp/logo-svg.svg
@@ -0,0 +1,25 @@
+
+
+
+
diff --git a/share/jupyter/kernels/xcpp17/kernel.json.in b/share/jupyter/kernels/xcpp17/kernel.json.in
new file mode 100644
index 00000000..b8e23d42
--- /dev/null
+++ b/share/jupyter/kernels/xcpp17/kernel.json.in
@@ -0,0 +1,18 @@
+{
+ "display_name": "C++17 (xcpp)",
+ "env": {
+ "PATH":"@XEUS_CPP_PATH@",
+ "LD_LIBRARY_PATH":"@XEUS_CPP_LD_LIBRARY_PATH@"
+ },
+ "argv": [
+ "@XEUS_CPP_KERNELSPEC_PATH@xcpp",
+ "-f",
+ "{connection_file}",
+ "-resource-dir", "@XEUS_CPP_RESOURCE_DIR@",
+ "-I", "@CMAKE_INSTALL_PREFIX@/include",
+ "-std=c++17"@XEUS_CPP_OMP@
+ ],
+ "language": "cpp",
+ "metadata": {"debugger": false
+ }
+}
diff --git a/share/jupyter/kernels/xcpp17/logo-32x32.png b/share/jupyter/kernels/xcpp17/logo-32x32.png
new file mode 100644
index 00000000..c09c4585
Binary files /dev/null and b/share/jupyter/kernels/xcpp17/logo-32x32.png differ
diff --git a/share/jupyter/kernels/xcpp17/logo-64x64.png b/share/jupyter/kernels/xcpp17/logo-64x64.png
new file mode 100644
index 00000000..396c2446
Binary files /dev/null and b/share/jupyter/kernels/xcpp17/logo-64x64.png differ
diff --git a/share/jupyter/kernels/xcpp17/logo-svg.svg b/share/jupyter/kernels/xcpp17/logo-svg.svg
new file mode 100644
index 00000000..5e117077
--- /dev/null
+++ b/share/jupyter/kernels/xcpp17/logo-svg.svg
@@ -0,0 +1,25 @@
+
+
+
+