Skip to content

Commit 2a7c72e

Browse files
committed
Build JAR and bundle into installer
IB-8345 Signed-off-by: Raul Metsma <[email protected]>
1 parent b97c741 commit 2a7c72e

File tree

6 files changed

+30
-1
lines changed

6 files changed

+30
-1
lines changed

.github/workflows/build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,10 @@ jobs:
198198
choco install doxygen.install -y > $null
199199
Invoke-WebRequest -UserAgent "Wget" "https://sourceforge.net/projects/swig/files/swigwin/swigwin-4.2.1/swigwin-4.2.1.zip/download" -OutFile swig.zip
200200
tar xf swig.zip
201+
- uses: actions/setup-java@v4
202+
with:
203+
distribution: 'temurin'
204+
java-version: '17'
201205
- uses: actions/setup-python@v5
202206
if: matrix.platform != 'arm64'
203207
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/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+
}

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
@@ -183,6 +183,23 @@ if(SWIG_FOUND)
183183
if(WIN32)
184184
install(FILES $<TARGET_PDB_FILE:digidoc_java> DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
185185
endif()
186+
if(Java_Development_FOUND)
187+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/glob_java_files.cmake "
188+
file(GLOB_RECURSE JAVA_COMPILE_FILELISTS \${JAVA_DIR}/*.java)
189+
file(WRITE \${CMAKE_CURRENT_BINARY_DIR}/java_file_list \"\")
190+
foreach(JAVA_FILE \${JAVA_COMPILE_FILELISTS})
191+
file(APPEND \${CMAKE_CURRENT_BINARY_DIR}/java_file_list \"\${JAVA_FILE}\n\")
192+
endforeach()
193+
")
194+
add_custom_command(TARGET digidoc_java POST_BUILD
195+
COMMAND ${CMAKE_COMMAND} -D JAVA_DIR=${CMAKE_CURRENT_BINARY_DIR}/java -P ${CMAKE_CURRENT_BINARY_DIR}/glob_java_files.cmake
196+
BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/java_file_list
197+
)
198+
include(UseJava)
199+
set(CMAKE_JAVA_COMPILE_FLAGS --release 11)
200+
add_jar(digidocpp_jar SOURCES @${CMAKE_CURRENT_BINARY_DIR}/java_file_list OUTPUT_NAME digidocpp)
201+
install_jar(digidocpp_jar DESTINATION $<IF:$<PLATFORM_ID:Darwin>,/Library/Java/Extensions,${CMAKE_INSTALL_DATADIR}/digidocpp>)
202+
endif()
186203
endif()
187204
if(Python3_FOUND)
188205
set(CMAKE_SWIG_FLAGS -py3)

0 commit comments

Comments
 (0)