extra/cantor to 21.08.3-2

This commit is contained in:
David Beauchamp 2021-12-03 19:26:10 -05:00
parent 4988407241
commit 497799a8a0
3 changed files with 16 additions and 71 deletions

View file

@ -7,7 +7,7 @@
pkgname=cantor
pkgver=21.08.3
pkgrel=1
pkgrel=2
pkgdesc='KDE Frontend to Mathematical Software'
url='https://apps.kde.org/cantor/'
arch=(x86_64)

View file

@ -1,70 +0,0 @@
diff --git a/cmake/FindJulia.cmake b/cmake/FindJulia.cmake
index c7f64746..aba71a2d 100644
--- a/cmake/FindJulia.cmake
+++ b/cmake/FindJulia.cmake
@@ -80,16 +80,46 @@ if(RESULT EQUAL 0)
CACHE PATH "Julia library directory")
endif()
+if(NOT ${JULIA_VERSION_STRING} VERSION_LESS 1.6.0)
+ set(JULIA_INTERNAL_LIBDL_COMMAND "using Libdl\; abspath(dirname(Libdl.dlpath(\"libjulia-internal\")))")
+ execute_process(
+ COMMAND ${JULIA_EXECUTABLE} -E ${JULIA_INTERNAL_LIBDL_COMMAND}
+ OUTPUT_VARIABLE JULIA_INTERNAL_LIBRARY_DIR
+ RESULT_VARIABLE RESULT
+ )
+
+ if(RESULT EQUAL 0)
+ string(REGEX REPLACE "\"" "" JULIA_INTERNAL_LIBRARY_DIR ${JULIA_INTERNAL_LIBRARY_DIR})
+ string(STRIP ${JULIA_INTERNAL_LIBRARY_DIR} JULIA_INTERNAL_LIBRARY_DIR)
+ set(JULIA_INTERNAL_LIBRARY_DIR ${JULIA_INTERNAL_LIBRARY_DIR}
+ CACHE PATH "Julia internal library directory")
+ endif()
+endif()
+
find_library( JULIA_LIBRARY
NAMES julia
PATHS ${JULIA_LIBRARY_DIR}
)
+if(NOT ${JULIA_VERSION_STRING} VERSION_LESS 1.6.0)
+ find_library( JULIA_INTERNAL_LIBRARY
+ NAMES julia-internal
+ PATHS ${JULIA_INTERNAL_LIBRARY_DIR}
+ )
+endif()
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(
- Julia
- REQUIRED_VARS JULIA_LIBRARY JULIA_LIBRARY_DIR JULIA_INCLUDE_DIRS
- VERSION_VAR JULIA_VERSION_STRING
- FAIL_MESSAGE "Julia not found"
-)
+if(${JULIA_VERSION_STRING} VERSION_LESS 1.6.0)
+ find_package_handle_standard_args(
+ Julia
+ REQUIRED_VARS JULIA_LIBRARY JULIA_INCLUDE_DIRS
+ VERSION_VAR JULIA_VERSION_STRING
+ FAIL_MESSAGE "Julia not found"
+ )
+else()
+ find_package_handle_standard_args(
+ Julia
+ REQUIRED_VARS JULIA_LIBRARY JULIA_INTERNAL_LIBRARY JULIA_INCLUDE_DIRS
+ VERSION_VAR JULIA_VERSION_STRING
+ FAIL_MESSAGE "Julia not found"
+ )
+endif()
diff --git a/src/backends/julia/juliaserver/CMakeLists.txt b/src/backends/julia/juliaserver/CMakeLists.txt
index 7301eca0..f12628e1 100644
--- a/src/backends/julia/juliaserver/CMakeLists.txt
+++ b/src/backends/julia/juliaserver/CMakeLists.txt
@@ -8,6 +8,7 @@ add_executable(cantor_juliaserver ${JuliaServer_SRCS})
target_link_libraries(cantor_juliaserver
${JULIA_LIBRARY}
+ ${JULIA_INTERNAL_LIBRARY}
Qt5::Widgets
Qt5::DBus
)

View file

@ -0,0 +1,15 @@
diff --git a/src/backends/julia/juliaserver/juliaserver.cpp b/src/backends/julia/juliaserver/juliaserver.cpp
index c68fd46f..e2995cb7 100644
--- a/src/backends/julia/juliaserver/juliaserver.cpp
+++ b/src/backends/julia/juliaserver/juliaserver.cpp
@@ -91,7 +91,9 @@ void JuliaServer::runJuliaCommand(const QString &command)
if (jl_exception_occurred()) { // If exception occurred
// Show it to user in stderr
-#if QT_VERSION_CHECK(JULIA_VERSION_MAJOR, JULIA_VERSION_MINOR, 0) >= QT_VERSION_CHECK(1, 1, 0)
+#if QT_VERSION_CHECK(JULIA_VERSION_MAJOR, JULIA_VERSION_MINOR, 0) >= QT_VERSION_CHECK(1, 7, 0)
+ jl_value_t *ex = jl_current_task->ptls->previous_exception;
+#elif QT_VERSION_CHECK(JULIA_VERSION_MAJOR, JULIA_VERSION_MINOR, 0) >= QT_VERSION_CHECK(1, 1, 0)
jl_value_t *ex = jl_get_ptls_states()->previous_exception;
#else
jl_value_t *ex = jl_exception_in_transit;