Skip to content

Commit

Permalink
Build JAR and bundle into installer
Browse files Browse the repository at this point in the history
IB-8345

Signed-off-by: Raul Metsma <[email protected]>
  • Loading branch information
metsma committed Jan 24, 2025
1 parent b05e805 commit c750f04
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 1 deletion.
4 changes: 4 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,10 @@ jobs:
choco install doxygen.install -y > $null
Invoke-WebRequest -UserAgent "Wget" "https://sourceforge.net/projects/swig/files/swigwin/swigwin-4.2.1/swigwin-4.2.1.zip/download" -OutFile swig.zip
tar xf swig.zip
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- uses: actions/setup-python@v5
if: matrix.platform != 'arm64'
with:
Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ else()
endif()
find_package(SWIG)
if(SWIG_FOUND)
find_package(Java COMPONENTS Development)
find_package(JNI)
find_package(Python3 COMPONENTS Development)
if((WIN32 OR APPLE) AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.24")
Expand Down
1 change: 1 addition & 0 deletions debian/libdigidocpp-java.install
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
usr/include/ee/ria/libdigidocpp/
usr/lib/*/libdigidoc_java.so
usr/share/*/*.jar
7 changes: 6 additions & 1 deletion examples/java/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ plugins {
id 'java'
}
group 'ee.ria'
sourceSets.main.java.srcDirs += ['/Library/libdigidocpp/include', '/usr/include']
java {
targetCompatibility JavaVersion.VERSION_17
sourceCompatibility JavaVersion.VERSION_17
Expand All @@ -15,3 +14,9 @@ jar {
attributes 'Main-Class': 'ee.ria.libdigidocpp.libdigidocpp'
}
}
def digidocppJarPath = file('/usr/share/digidocpp/digidocpp.jar').exists() ?
'/usr/share/digidocpp/digidocpp.jar' :
'/Library/Java/Extensions/digidocpp.jar'
dependencies {
implementation files(digidocppJarPath)
}
1 change: 1 addition & 0 deletions libdigidocpp.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
<?ifdef var.swig ?>
<File Name="digidoc_csharp.dll" />
<File Name="digidoc_java.dll" />
<File Source="$(var.libdigidocpp)\share\digidocpp\digidocpp.jar" />
<?ifndef var.disablePython ?>
<File Name="_digidoc_python.pyd" />
<File Name="digidoc.py" />
Expand Down
17 changes: 17 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,23 @@ if(SWIG_FOUND)
if(WIN32)
install(FILES $<TARGET_PDB_FILE:digidoc_java> DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
endif()
if(Java_Development_FOUND)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/glob_java_files.cmake "
file(GLOB_RECURSE JAVA_COMPILE_FILELISTS \${JAVA_DIR}/*.java)
file(WRITE \${CMAKE_CURRENT_BINARY_DIR}/java_file_list \"\")
foreach(JAVA_FILE \${JAVA_COMPILE_FILELISTS})
file(APPEND \${CMAKE_CURRENT_BINARY_DIR}/java_file_list \"\${JAVA_FILE}\n\")
endforeach()
")
add_custom_command(TARGET digidoc_java POST_BUILD
COMMAND ${CMAKE_COMMAND} -D JAVA_DIR=${CMAKE_CURRENT_BINARY_DIR}/java -P ${CMAKE_CURRENT_BINARY_DIR}/glob_java_files.cmake
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/java_file_list
)
include(UseJava)
set(CMAKE_JAVA_COMPILE_FLAGS --release 11)
add_jar(digidocpp_jar SOURCES @${CMAKE_CURRENT_BINARY_DIR}/java_file_list OUTPUT_NAME digidocpp)
install_jar(digidocpp_jar DESTINATION $<IF:$<PLATFORM_ID:Darwin>,/Library/Java/Extensions,${CMAKE_INSTALL_DATADIR}/digidocpp>)
endif()
endif()
if(Python3_FOUND)
set(CMAKE_SWIG_FLAGS -py3)
Expand Down

0 comments on commit c750f04

Please sign in to comment.