Skip to content

Commit

Permalink
Build RPM with Maven
Browse files Browse the repository at this point in the history
The RPM spec file has been modified to build Java binaries and
run unit tests with Maven, then build PKI console, Javadoc, and
native binaries with CMake. In the future it might be possible
to build everything with Maven.

The build.sh has been modified to provide an option to skip
building Java binaries. The CMake scripts have been modified to
provide separate build targets for Java binaries, PKI console,
Javadoc, and native binaries. The javac(), jar(), javadoc(),
link(), and add_junit_test() macros have been modified to no
longer be included in the default build target to provide more
controls over the build process.
  • Loading branch information
edewata committed Jul 10, 2023
1 parent a002a73 commit 7c7fdd0
Show file tree
Hide file tree
Showing 32 changed files with 323 additions and 147 deletions.
26 changes: 26 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" APPLICATION_VERSION_P

set(APP_SERVER "tomcat-9.0" CACHE STRING "Application server")

option(WITH_JAVA "Build Java binaries." TRUE)

option(WITH_SERVER "Build server package" ON)
option(WITH_CA "Build CA package" ON)
option(WITH_KRA "Build KRA package" ON)
Expand Down Expand Up @@ -121,6 +123,30 @@ configure_file(cmake/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)

add_definitions(-DHAVE_CONFIG_H)

# java target
add_custom_target(
java
COMMENT "Building Java binaries"
)

# console target
add_custom_target(
console
COMMENT "Building PKI console"
)

# javadoc target
add_custom_target(
javadoc
COMMENT "Building Javadoc"
)

# native target
add_custom_target(
native ALL
COMMENT "Building native binaries"
)

# uninstall target
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
Expand Down
5 changes: 4 additions & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,11 @@ jobs:
rpm -qlp "/root/build/pki/RPMS/$rpm" | tee -a file_list
done
# exclude RPM-specific files
# exclude Maven-specific and RPM-specific files
# from comparison with CMake files
sed -i \
-e '/^\/usr\/share\/maven-metadata\//d' \
-e '/^\/usr\/share\/maven-poms\//d' \
-e '/^\/usr\/share\/licenses\//d' \
-e '/^\/usr\/share\/man\//d' \
-e '/^\/usr\/share\/doc\//d' \
Expand Down
8 changes: 0 additions & 8 deletions base/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -436,32 +436,24 @@ if(WITH_SERVER OR WITH_CA OR WITH_KRA OR WITH_OCSP OR WITH_TKS OR WITH_TPS OR WI
${PKI_TOMCAT_9_0_JAR}
${PKI_SERVER_JAR})

list(APPEND PKI_JAVADOC_DEPENDS
pki-server-jar)

if(WITH_CA)
add_subdirectory(ca)
list(APPEND PKI_JAVADOC_DEPENDS pki-ca-jar)
endif(WITH_CA)

if(WITH_KRA)
add_subdirectory(kra)
list(APPEND PKI_JAVADOC_DEPENDS pki-kra-jar)
endif(WITH_KRA)

if(WITH_OCSP)
add_subdirectory(ocsp)
list(APPEND PKI_JAVADOC_DEPENDS pki-ocsp-jar)
endif(WITH_OCSP)

if(WITH_TKS)
add_subdirectory(tks)
list(APPEND PKI_JAVADOC_DEPENDS pki-tks-jar)
endif(WITH_TKS)

if(WITH_TPS)
add_subdirectory(tps)
list(APPEND PKI_JAVADOC_DEPENDS pki-tps-jar)
endif(WITH_TPS)

if(WITH_ACME)
Expand Down
18 changes: 12 additions & 6 deletions base/acme/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ javac(pki-acme-classes
pki-server-jar
)

add_dependencies(java pki-acme-classes)

set(PKI_ACME_JAR ${CMAKE_BINARY_DIR}/dist/pki-acme.jar
CACHE INTERNAL "pki-acme.jar"
)
Expand All @@ -46,6 +48,8 @@ jar(pki-acme-jar
pki-acme-classes
)

add_dependencies(java pki-acme-jar)

add_custom_target(pki-acme-links ALL
COMMENT "Creating links for ACME")

Expand All @@ -59,12 +63,14 @@ add_custom_command(
COMMAND ln -sf ../../../../../../../..${RESTEASY_SERVLET_INITIALIZER_JAR} webapp/lib/resteasy-servlet-intializer.jar
)

install(
FILES
${PKI_ACME_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
if(WITH_JAVA)
install(
FILES
${PKI_ACME_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
endif(WITH_JAVA)

install(
FILES
Expand Down
18 changes: 12 additions & 6 deletions base/ca/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ javac(pki-ca-classes
pki-server-jar
)

add_dependencies(java pki-ca-classes)

set(PKI_CA_JAR ${CMAKE_BINARY_DIR}/dist/pki-ca.jar
CACHE INTERNAL "pki-ca.jar"
)
Expand All @@ -56,6 +58,8 @@ jar(pki-ca-jar
pki-ca-classes
)

add_dependencies(java pki-ca-jar)

# Create links at /usr/share/pki/ca/webapps/ca/admin/console.
# Create links in /usr/share/pki/ca/webapps/ca/WEB-INF/lib.
# This can be customized for different platforms in RPM spec.
Expand All @@ -74,12 +78,14 @@ add_custom_command(
COMMAND ln -sf ../../../../../../../..${RESTEASY_SERVLET_INITIALIZER_JAR} webapp/lib/resteasy-servlet-intializer.jar
)

install(
FILES
${PKI_CA_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
if(WITH_JAVA)
install(
FILES
${PKI_CA_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
endif(WITH_JAVA)

# install directories
install(
Expand Down
23 changes: 17 additions & 6 deletions base/common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ javac(pki-common-classes
${CMAKE_CURRENT_BINARY_DIR}/classes
)

add_dependencies(java pki-common-classes)

set(PKI_COMMON_JAR ${CMAKE_BINARY_DIR}/dist/pki-common.jar
CACHE INTERNAL "pki-common.jar"
)
Expand All @@ -42,6 +44,8 @@ jar(pki-common-jar
pki-common-classes
)

add_dependencies(java pki-common-jar)

if(RUN_TESTS)
javac(pki-common-test-classes
SOURCES
Expand All @@ -65,6 +69,8 @@ if(RUN_TESTS)
pki-common-jar
)

add_dependencies(java pki-common-test-classes)

add_junit_test(test-pki-common
CLASSPATH
${JAVAX_ACTIVATION_JAR}
Expand All @@ -85,6 +91,9 @@ if(RUN_TESTS)
DEPENDS
pki-common-test-classes
)

add_dependencies(java test-pki-common)

endif(RUN_TESTS)

# Create /usr/share/pki/lib. This can be customized for different platforms in RPM spec.
Expand Down Expand Up @@ -144,12 +153,14 @@ configure_file(
${CMAKE_CURRENT_BINARY_DIR}/share/etc/pki.conf
)

install(
FILES
${PKI_COMMON_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
if(WITH_JAVA)
install(
FILES
${PKI_COMMON_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
endif(WITH_JAVA)

install(
DIRECTORY
Expand Down
2 changes: 2 additions & 0 deletions base/common/examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ javac(pki-examples-classes
pki-common-jar
)

add_dependencies(java pki-examples-classes)

install(
DIRECTORY
java
Expand Down
4 changes: 4 additions & 0 deletions base/console/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ javac(pki-console-classes
pki-common-jar
)

add_dependencies(console pki-console-classes)

set(PKI_CONSOLE_JAR ${CMAKE_BINARY_DIR}/dist/pki-console.jar
CACHE INTERNAL "pki-console.jar"
)
Expand Down Expand Up @@ -45,6 +47,8 @@ jar(pki-console-jar
pki-console-classes
)

add_dependencies(console pki-console-jar)

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/bin/pkiconsole
${CMAKE_CURRENT_BINARY_DIR}/bin/pkiconsole
Expand Down
18 changes: 12 additions & 6 deletions base/est/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ javac(pki-est-classes
pki-server-jar
)

add_dependencies(java pki-est-classes)

set(PKI_EST_JAR ${CMAKE_BINARY_DIR}/dist/pki-est.jar
CACHE INTERNAL "pki-est.jar"
)
Expand All @@ -48,6 +50,8 @@ jar(pki-est-jar
pki-est-classes
)

add_dependencies(java pki-est-jar)

add_custom_target(pki-est-links ALL
COMMENT "Creating links for EST")

Expand All @@ -61,12 +65,14 @@ add_custom_command(
COMMAND ln -sf ../../../../../../../..${RESTEASY_SERVLET_INITIALIZER_JAR} webapp/lib/resteasy-servlet-intializer.jar
)

install(
FILES
${PKI_EST_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
if(WITH_JAVA)
install(
FILES
${PKI_EST_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
endif(WITH_JAVA)

# install deployment descriptor
install(
Expand Down
5 changes: 2 additions & 3 deletions base/javadoc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -94,11 +94,10 @@ javadoc(pki-javadoc
-version
-quiet
${doclintstr}
DEPENDS
pki-common-jar pki-tools-jar
${PKI_JAVADOC_DEPENDS}
)

add_dependencies(javadoc pki-javadoc)

install(
DIRECTORY
${CMAKE_CURRENT_BINARY_DIR}/javadoc/pki
Expand Down
18 changes: 12 additions & 6 deletions base/kra/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ javac(pki-kra-classes
pki-server-jar
)

add_dependencies(java pki-kra-classes)

set(PKI_KRA_JAR ${CMAKE_BINARY_DIR}/dist/pki-kra.jar
CACHE INTERNAL "pki-kra.jar"
)
Expand All @@ -47,6 +49,8 @@ jar(pki-kra-jar
pki-kra-classes
)

add_dependencies(java pki-kra-jar)

# Create links at /usr/share/pki/kra/webapps/kra/admin/console.
# Create links in /usr/share/pki/kra/webapps/kra/WEB-INF/lib.
# This can be customized for different platforms in RPM spec.
Expand All @@ -66,12 +70,14 @@ add_custom_command(
COMMAND ln -sf ../../../../../../../..${RESTEASY_SERVLET_INITIALIZER_JAR} webapp/lib/resteasy-servlet-intializer.jar
)

install(
FILES
${PKI_KRA_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
if(WITH_JAVA)
install(
FILES
${PKI_KRA_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
endif(WITH_JAVA)

# install directories
install(
Expand Down
18 changes: 12 additions & 6 deletions base/ocsp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ javac(pki-ocsp-classes
pki-server-jar
)

add_dependencies(java pki-ocsp-classes)

set(PKI_OCSP_JAR ${CMAKE_BINARY_DIR}/dist/pki-ocsp.jar
CACHE INTERNAL "pki-ocsp.jar"
)
Expand All @@ -48,6 +50,8 @@ jar(pki-ocsp-jar
pki-ocsp-classes
)

add_dependencies(java pki-ocsp-jar)

# Create links at /usr/share/pki/ocsp/webapps/ocsp/admin/console.
# Create links in /usr/share/pki/ocsp/webapps/ocsp/WEB-INF/lib.
# This can be customized for different platforms in RPM spec.
Expand All @@ -67,12 +71,14 @@ add_custom_command(
COMMAND ln -sf ../../../../../../../..${RESTEASY_SERVLET_INITIALIZER_JAR} webapp/lib/resteasy-servlet-intializer.jar
)

install(
FILES
${PKI_OCSP_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
if(WITH_JAVA)
install(
FILES
${PKI_OCSP_JAR}
DESTINATION
${JAVA_JAR_INSTALL_DIR}/pki
)
endif(WITH_JAVA)

# install directories
install(
Expand Down
Loading

0 comments on commit 7c7fdd0

Please sign in to comment.