diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1b4eadf12..c01ea0183 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -84,6 +84,20 @@ find_package(SWIG)
if(SWIG_FOUND)
find_package(Java COMPONENTS Development)
find_package(JNI)
+ if(APPLE AND NOT Python3_ROOT_DIR)
+ foreach(_py3_candidate
+ /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/Current
+ /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/Current
+ )
+ if(EXISTS ${_py3_candidate}/Headers/Python.h)
+ set(Python3_ROOT_DIR ${_py3_candidate})
+ set(Python3_FIND_FRAMEWORK FIRST)
+ set(Python3_FIND_STRATEGY LOCATION)
+ break()
+ endif()
+ endforeach()
+ unset(_py3_candidate)
+ endif()
find_package(Python3 COMPONENTS Development)
if((WIN32 OR APPLE) AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.24")
find_package(Python3 COMPONENTS Development.SABIModule)
diff --git a/etc/digidoc-tool.entitlements b/etc/digidoc-tool.entitlements
new file mode 100644
index 000000000..123d12a53
--- /dev/null
+++ b/etc/digidoc-tool.entitlements
@@ -0,0 +1,8 @@
+
+
+
+
+ com.apple.security.cs.disable-library-validation
+
+
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 5ee902147..224b15d1c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -183,6 +183,11 @@ if(SWIG_FOUND)
include(${SWIG_USE_FILE})
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
set_property(SOURCE ../libdigidocpp.i PROPERTY CPLUSPLUS ON)
+ if(APPLE)
+ set(SWIG_MODULE_BUILD_WITH_INSTALL_RPATH TRUE)
+ else()
+ set(SWIG_MODULE_BUILD_WITH_INSTALL_RPATH FALSE)
+ endif()
if(JAVA_INCLUDE_PATH)
set(CMAKE_SWIG_FLAGS -package ee.ria.libdigidocpp)
set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/java)
@@ -191,6 +196,7 @@ if(SWIG_FOUND)
target_link_libraries(digidoc_java digidocpp digidocpp_util)
set_target_properties(digidoc_java PROPERTIES
INSTALL_RPATH $<$:/Library/Frameworks>
+ BUILD_WITH_INSTALL_RPATH ${SWIG_MODULE_BUILD_WITH_INSTALL_RPATH}
SWIG_COMPILE_DEFINITIONS $<$:SWIGWIN>
)
install(TARGETS digidoc_java DESTINATION $,/Library/Java/Extensions,${CMAKE_INSTALL_LIBDIR}>)
@@ -240,6 +246,7 @@ if(SWIG_FOUND)
endif()
set_target_properties(digidoc_python PROPERTIES
INSTALL_RPATH $<$:/Library/Frameworks>
+ BUILD_WITH_INSTALL_RPATH ${SWIG_MODULE_BUILD_WITH_INSTALL_RPATH}
SWIG_COMPILE_DEFINITIONS $<$:SWIGWIN>
)
install(TARGETS digidoc_python DESTINATION ${Python3_SITELIB})
@@ -253,6 +260,7 @@ if(SWIG_FOUND)
set_target_properties(digidoc_csharp PROPERTIES
SWIG_COMPILE_DEFINITIONS $<$:SWIGWIN>
INSTALL_RPATH $<$:/Library/Frameworks>
+ BUILD_WITH_INSTALL_RPATH ${SWIG_MODULE_BUILD_WITH_INSTALL_RPATH}
PREFIX "${CMAKE_SHARED_LIBRARY_PREFIX}"
)
install(TARGETS digidoc_csharp DESTINATION ${CMAKE_INSTALL_LIBDIR})
@@ -334,7 +342,7 @@ if( FRAMEWORK )
file(GET_RUNTIME_DEPENDENCIES LIBRARIES \$ENV{LIBRARY} RESOLVED_DEPENDENCIES_VAR OUT)
file(COPY \${OUT} DESTINATION \$ENV{BUNDLE_DIR})
")
- add_custom_target( embedlibs DEPENDS digidocpp $
+ add_custom_target(embedlibs DEPENDS digidocpp
COMMAND mkdir -p $/Libraries
COMMAND ln -s -f Versions/Current/Libraries $
COMMAND ${CMAKE_COMMAND} -E env
@@ -379,12 +387,25 @@ if( FRAMEWORK )
COMMAND /usr/libexec/PlistBuddy -c "Add :MinimumOSVersion string ${CMAKE_OSX_DEPLOYMENT_TARGET}" $/Info.plist)
endif()
if(SIGNCERT)
+ if(TARGET digidoc-tool)
+ add_custom_command(TARGET embedlibs POST_BUILD
+ COMMAND codesign -f -s "Developer ID Application: ${SIGNCERT}" --options runtime --timestamp
+ --entitlements ${PROJECT_SOURCE_DIR}/etc/digidoc-tool.entitlements
+ $/Resources/digidoc-tool
+ )
+ endif()
add_custom_command(TARGET embedlibs POST_BUILD
- COMMAND codesign -f -s "Developer ID Application: ${SIGNCERT}"
+ COMMAND codesign -f -s "Developer ID Application: ${SIGNCERT}" --options runtime --timestamp
$/Libraries/*
- $<$:$/Resources/digidoc-tool>
+ $<$:$>
+ $<$:$>
+ $<$:$>
$
- COMMAND touch $ $<$:$>
+ COMMAND touch $
+ $<$:$>
+ $<$:$>
+ $<$:$>
+ $<$:$>
)
endif()
add_custom_target(pkgbuild DEPENDS digidocpp $