Skip to content

Commit 2b576dc

Browse files
authored
Build JAR and bundle into installer (#657)
IB-8345 Signed-off-by: Raul Metsma <[email protected]>
1 parent 77c0a6e commit 2b576dc

File tree

9 files changed

+33
-4
lines changed

9 files changed

+33
-4
lines changed

.github/workflows/build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,10 @@ jobs:
200200
choco install doxygen.install -y > $null
201201
Invoke-WebRequest -UserAgent "Wget" "https://sourceforge.net/projects/swig/files/swigwin/swigwin-4.2.1/swigwin-4.2.1.zip/download" -OutFile swig.zip
202202
tar xf swig.zip
203+
- uses: actions/setup-java@v4
204+
with:
205+
distribution: 'temurin'
206+
java-version: '17'
203207
- uses: actions/setup-python@v5
204208
if: matrix.platform != 'arm64'
205209
with:

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ else()
8080
endif()
8181
find_package(SWIG)
8282
if(SWIG_FOUND)
83+
find_package(Java COMPONENTS Development)
8384
find_package(JNI)
8485
find_package(Python3 COMPONENTS Development)
8586
if((WIN32 OR APPLE) AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.24")

debian/libdigidocpp-java.install

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
usr/include/ee/ria/libdigidocpp/
22
usr/lib/*/libdigidoc_java.so
3+
usr/share/*/*.jar

examples/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ buildscript {
55
mavenCentral()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:8.7.3'
8+
classpath 'com.android.tools.build:gradle:8.8.1'
99
}
1010
}
1111

examples/android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip

examples/java/build.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ plugins {
22
id 'java'
33
}
44
group 'ee.ria'
5-
sourceSets.main.java.srcDirs += ['/Library/libdigidocpp/include', '/usr/include']
65
java {
76
targetCompatibility JavaVersion.VERSION_17
87
sourceCompatibility JavaVersion.VERSION_17
@@ -15,3 +14,9 @@ jar {
1514
attributes 'Main-Class': 'ee.ria.libdigidocpp.libdigidocpp'
1615
}
1716
}
17+
def digidocppJarPath = file('/usr/share/digidocpp/digidocpp.jar').exists() ?
18+
'/usr/share/digidocpp/digidocpp.jar' :
19+
'/Library/Java/Extensions/digidocpp.jar'
20+
dependencies {
21+
implementation files(digidocppJarPath)
22+
}

examples/java/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

libdigidocpp.wxs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
<?ifdef var.swig ?>
6464
<File Name="digidoc_csharp.dll" />
6565
<File Name="digidoc_java.dll" />
66+
<File Source="$(var.libdigidocpp)\share\digidocpp\digidocpp.jar" />
6667
<?ifndef var.disablePython ?>
6768
<File Name="_digidoc_python.pyd" />
6869
<File Name="digidoc.py" />

src/CMakeLists.txt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,23 @@ if(SWIG_FOUND)
187187
if(WIN32)
188188
install(FILES $<TARGET_PDB_FILE:digidoc_java> DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
189189
endif()
190+
if(Java_Development_FOUND)
191+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/glob_java_files.cmake "
192+
file(GLOB_RECURSE JAVA_COMPILE_FILELISTS \${JAVA_DIR}/*.java)
193+
file(WRITE \${CMAKE_CURRENT_BINARY_DIR}/java_file_list \"\")
194+
foreach(JAVA_FILE \${JAVA_COMPILE_FILELISTS})
195+
file(APPEND \${CMAKE_CURRENT_BINARY_DIR}/java_file_list \"\${JAVA_FILE}\n\")
196+
endforeach()
197+
")
198+
add_custom_command(TARGET digidoc_java POST_BUILD
199+
COMMAND ${CMAKE_COMMAND} -D JAVA_DIR=${CMAKE_CURRENT_BINARY_DIR}/java -P ${CMAKE_CURRENT_BINARY_DIR}/glob_java_files.cmake
200+
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/java_file_list
201+
)
202+
include(UseJava)
203+
set(CMAKE_JAVA_COMPILE_FLAGS --release 11)
204+
add_jar(digidocpp_jar SOURCES @${CMAKE_CURRENT_BINARY_DIR}/java_file_list OUTPUT_NAME digidocpp)
205+
install_jar(digidocpp_jar DESTINATION $<IF:$<PLATFORM_ID:Darwin>,/Library/Java/Extensions,${CMAKE_INSTALL_DATADIR}/digidocpp>)
206+
endif()
190207
endif()
191208
if(Python3_FOUND)
192209
set(CMAKE_SWIG_FLAGS -py3)

0 commit comments

Comments
 (0)