diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a566664c4e..fae2256247e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) @@ -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" diff --git a/azure-pipelines.yml b/azure-pipelines.yml index aaa217ccff2..811d256f071 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -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' \ diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt index 55d88294000..ccaf4a33d6d 100644 --- a/base/CMakeLists.txt +++ b/base/CMakeLists.txt @@ -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) diff --git a/base/acme/CMakeLists.txt b/base/acme/CMakeLists.txt index 22325587a7a..ee5c973225d 100644 --- a/base/acme/CMakeLists.txt +++ b/base/acme/CMakeLists.txt @@ -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" ) @@ -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") @@ -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 diff --git a/base/ca/CMakeLists.txt b/base/ca/CMakeLists.txt index 9a0998e1399..472667d89a3 100644 --- a/base/ca/CMakeLists.txt +++ b/base/ca/CMakeLists.txt @@ -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" ) @@ -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. @@ -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( diff --git a/base/common/CMakeLists.txt b/base/common/CMakeLists.txt index fe4073b6722..d6b4ac3e4f7 100644 --- a/base/common/CMakeLists.txt +++ b/base/common/CMakeLists.txt @@ -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" ) @@ -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 @@ -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} @@ -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. @@ -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 diff --git a/base/common/examples/CMakeLists.txt b/base/common/examples/CMakeLists.txt index 3dc381527e0..6bf099a3d31 100644 --- a/base/common/examples/CMakeLists.txt +++ b/base/common/examples/CMakeLists.txt @@ -14,6 +14,8 @@ javac(pki-examples-classes pki-common-jar ) +add_dependencies(java pki-examples-classes) + install( DIRECTORY java diff --git a/base/console/CMakeLists.txt b/base/console/CMakeLists.txt index 87b418288c7..40835b51046 100644 --- a/base/console/CMakeLists.txt +++ b/base/console/CMakeLists.txt @@ -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" ) @@ -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 diff --git a/base/est/CMakeLists.txt b/base/est/CMakeLists.txt index 6f93d256348..05f7d1c98ca 100644 --- a/base/est/CMakeLists.txt +++ b/base/est/CMakeLists.txt @@ -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" ) @@ -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") @@ -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( diff --git a/base/javadoc/CMakeLists.txt b/base/javadoc/CMakeLists.txt index af0a5044968..108f2528ba2 100644 --- a/base/javadoc/CMakeLists.txt +++ b/base/javadoc/CMakeLists.txt @@ -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 diff --git a/base/kra/CMakeLists.txt b/base/kra/CMakeLists.txt index 480a3f98846..fda4ffa86c7 100644 --- a/base/kra/CMakeLists.txt +++ b/base/kra/CMakeLists.txt @@ -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" ) @@ -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. @@ -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( diff --git a/base/ocsp/CMakeLists.txt b/base/ocsp/CMakeLists.txt index 9816054f231..0223f2fcb4e 100644 --- a/base/ocsp/CMakeLists.txt +++ b/base/ocsp/CMakeLists.txt @@ -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" ) @@ -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. @@ -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( diff --git a/base/server-webapp/CMakeLists.txt b/base/server-webapp/CMakeLists.txt index a6108809ff2..0729d59aa5a 100644 --- a/base/server-webapp/CMakeLists.txt +++ b/base/server-webapp/CMakeLists.txt @@ -18,6 +18,8 @@ javac(pki-server-webapp-classes pki-server-jar ) +add_dependencies(java pki-server-webapp-classes) + set(PKI_SERVER_WEBAPP_JAR ${CMAKE_BINARY_DIR}/dist/pki-server-webapp.jar CACHE INTERNAL "pki-server-webapp.jar" ) @@ -42,6 +44,8 @@ jar(pki-server-webapp-jar pki-server-webapp-classes ) +add_dependencies(java pki-server-webapp-jar) + # Create /usr/share/pki/server/webapps/pki/WEB-INF/lib. This can be customized for different platforms in RPM spec. add_custom_target(pki-server-webapp-lib ALL @@ -64,12 +68,14 @@ install( ${DATA_INSTALL_DIR}/server ) -install( - FILES - ${PKI_SERVER_WEBAPP_JAR} - DESTINATION - ${JAVA_JAR_INSTALL_DIR}/pki -) +if(WITH_JAVA) + install( + FILES + ${PKI_SERVER_WEBAPP_JAR} + DESTINATION + ${JAVA_JAR_INSTALL_DIR}/pki + ) +endif(WITH_JAVA) install( DIRECTORY diff --git a/base/server/CMakeLists.txt b/base/server/CMakeLists.txt index 3a592e68521..e11bdb66719 100644 --- a/base/server/CMakeLists.txt +++ b/base/server/CMakeLists.txt @@ -29,6 +29,8 @@ javac(pki-server-classes pki-common-jar pki-tools-jar pki-tomcat-jar pki-tomcat-9.0-jar ) +add_dependencies(java pki-server-classes) + set(PKI_SERVER_JAR ${CMAKE_BINARY_DIR}/dist/pki-server.jar CACHE INTERNAL "pki-server.jar" ) @@ -58,6 +60,8 @@ jar(pki-server-jar pki-server-classes ) +add_dependencies(java pki-server-jar) + if(RUN_TESTS) # build pki-server-test javac(pki-server-test-classes @@ -79,6 +83,8 @@ if(RUN_TESTS) pki-common-test-classes pki-common-jar pki-server-jar ) + add_dependencies(java pki-server-test-classes) + add_junit_test(test-pki-server CLASSPATH ${SLF4J_API_JAR} ${SLF4J_SIMPLE_JAR} @@ -97,6 +103,9 @@ if(RUN_TESTS) DEPENDS pki-server-test-classes ) + + add_dependencies(java test-pki-server) + endif(RUN_TESTS) # Create /usr/share/pki/server/lib. This can be customized for different platforms in RPM spec. @@ -186,12 +195,14 @@ configure_file( ${CMAKE_CURRENT_BINARY_DIR}/share/etc/tomcat.conf ) -install( - FILES - ${PKI_SERVER_JAR} - DESTINATION - ${JAVA_JAR_INSTALL_DIR}/pki -) +if(WITH_JAVA) + install( + FILES + ${PKI_SERVER_JAR} + DESTINATION + ${JAVA_JAR_INSTALL_DIR}/pki + ) +endif(WITH_JAVA) install( DIRECTORY diff --git a/base/tks/CMakeLists.txt b/base/tks/CMakeLists.txt index f14ea449d21..ba9f3e294ed 100644 --- a/base/tks/CMakeLists.txt +++ b/base/tks/CMakeLists.txt @@ -27,6 +27,8 @@ javac(pki-tks-classes pki-server-jar ) +add_dependencies(java pki-tks-classes) + set(PKI_TKS_JAR ${CMAKE_BINARY_DIR}/dist/pki-tks.jar CACHE INTERNAL "pki-tks.jar" ) @@ -49,6 +51,8 @@ jar(pki-tks-jar pki-tks-classes ) +add_dependencies(java pki-tks-jar) + # Create links at /usr/share/pki/tks/webapps/tks/admin/console. # Create /usr/share/pki/tks/webapps/tks/WEB-INF/lib. # This can be customized for different platforms in RPM spec. @@ -68,12 +72,14 @@ add_custom_command( COMMAND ln -sf ../../../../../../../..${RESTEASY_SERVLET_INITIALIZER_JAR} webapp/lib/resteasy-servlet-intializer.jar ) -install( - FILES - ${PKI_TKS_JAR} - DESTINATION - ${JAVA_JAR_INSTALL_DIR}/pki -) +if(WITH_JAVA) + install( + FILES + ${PKI_TKS_JAR} + DESTINATION + ${JAVA_JAR_INSTALL_DIR}/pki + ) +endif(WITH_JAVA) # install directories install( diff --git a/base/tomcat-9.0/CMakeLists.txt b/base/tomcat-9.0/CMakeLists.txt index 7b8236daa62..732a0526126 100644 --- a/base/tomcat-9.0/CMakeLists.txt +++ b/base/tomcat-9.0/CMakeLists.txt @@ -21,6 +21,8 @@ javac(pki-tomcat-9.0-classes pki-tomcat-jar ) +add_dependencies(java pki-tomcat-9.0-classes) + set(PKI_TOMCAT_9_0_JAR ${CMAKE_BINARY_DIR}/dist/pki-tomcat-9.0.jar CACHE INTERNAL "pki-tomcat-9.0.jar" ) @@ -43,12 +45,16 @@ jar(pki-tomcat-9.0-jar pki-tomcat-9.0-classes ) -install( - FILES - ${PKI_TOMCAT_9_0_JAR} - DESTINATION - ${JAVA_JAR_INSTALL_DIR}/pki -) +add_dependencies(java pki-tomcat-9.0-jar) + +if(WITH_JAVA) + install( + FILES + ${PKI_TOMCAT_9_0_JAR} + DESTINATION + ${JAVA_JAR_INSTALL_DIR}/pki + ) +endif(WITH_JAVA) install( DIRECTORY diff --git a/base/tomcat/CMakeLists.txt b/base/tomcat/CMakeLists.txt index 1e0f07bf97b..3af6947f34d 100644 --- a/base/tomcat/CMakeLists.txt +++ b/base/tomcat/CMakeLists.txt @@ -20,6 +20,8 @@ javac(pki-tomcat-classes pki-common-jar ) +add_dependencies(java pki-tomcat-classes) + set(PKI_TOMCAT_JAR ${CMAKE_BINARY_DIR}/dist/pki-tomcat.jar CACHE INTERNAL "pki-tomcat.jar" ) @@ -42,9 +44,13 @@ jar(pki-tomcat-jar pki-tomcat-classes ) -install( - FILES - ${PKI_TOMCAT_JAR} - DESTINATION - ${JAVA_JAR_INSTALL_DIR}/pki -) +add_dependencies(java pki-tomcat-jar) + +if(WITH_JAVA) + install( + FILES + ${PKI_TOMCAT_JAR} + DESTINATION + ${JAVA_JAR_INSTALL_DIR}/pki + ) +endif(WITH_JAVA) diff --git a/base/tools/CMakeLists.txt b/base/tools/CMakeLists.txt index fa0f2c4cefc..5ff075b26b5 100644 --- a/base/tools/CMakeLists.txt +++ b/base/tools/CMakeLists.txt @@ -29,6 +29,8 @@ javac(pki-tools-classes pki-common-jar ) +add_dependencies(java pki-tools-classes) + set(PKI_TOOLS_JAR ${CMAKE_BINARY_DIR}/dist/pki-tools.jar CACHE INTERNAL "pki-tools.jar" ) @@ -51,12 +53,16 @@ jar(pki-tools-jar pki-tools-classes ) -install( - FILES - ${PKI_TOOLS_JAR} - DESTINATION - ${JAVA_JAR_INSTALL_DIR}/pki -) +add_dependencies(java pki-tools-jar) + +if(WITH_JAVA) + install( + FILES + ${PKI_TOOLS_JAR} + DESTINATION + ${JAVA_JAR_INSTALL_DIR}/pki + ) +endif(WITH_JAVA) install( FILES diff --git a/base/tools/src/main/native/bulkissuance/CMakeLists.txt b/base/tools/src/main/native/bulkissuance/CMakeLists.txt index 6f3eeab081b..8be162c1e20 100644 --- a/base/tools/src/main/native/bulkissuance/CMakeLists.txt +++ b/base/tools/src/main/native/bulkissuance/CMakeLists.txt @@ -18,7 +18,8 @@ set(bulkissuance_SRCS include_directories(${BULKISSUANCE_PRIVATE_INCLUDE_DIRS}) -add_executable(bulkissuance ${bulkissuance_SRCS}) +add_executable(bulkissuance EXCLUDE_FROM_ALL ${bulkissuance_SRCS}) +add_dependencies(native bulkissuance) target_link_libraries(bulkissuance ${BULKISSUANCE_LINK_LIBRARIES}) diff --git a/base/tools/src/main/native/p12tool/CMakeLists.txt b/base/tools/src/main/native/p12tool/CMakeLists.txt index 8252942024f..4a03b630504 100755 --- a/base/tools/src/main/native/p12tool/CMakeLists.txt +++ b/base/tools/src/main/native/p12tool/CMakeLists.txt @@ -22,8 +22,8 @@ set(p12tool_SRCS include_directories(${P12TOOL_PRIVATE_INCLUDE_DIRS}) -add_executable(p12tool ${p12tool_SRCS}) -add_dependencies(p12tool pki-common-jar) +add_executable(p12tool EXCLUDE_FROM_ALL ${p12tool_SRCS}) +add_dependencies(native p12tool) target_link_libraries(p12tool ${P12TOOL_LINK_LIBRARIES}) install( diff --git a/base/tools/src/main/native/p7tool/CMakeLists.txt b/base/tools/src/main/native/p7tool/CMakeLists.txt index f46ebcb941b..03ed2e1276e 100644 --- a/base/tools/src/main/native/p7tool/CMakeLists.txt +++ b/base/tools/src/main/native/p7tool/CMakeLists.txt @@ -21,8 +21,8 @@ set(p7tool_SRCS include_directories(${P7TOOL_PRIVATE_INCLUDE_DIRS}) -add_executable(p7tool ${p7tool_SRCS}) -add_dependencies(p7tool pki-common-jar) +add_executable(p7tool EXCLUDE_FROM_ALL ${p7tool_SRCS}) +add_dependencies(native p7tool) target_link_libraries(p7tool ${P7TOOL_LINK_LIBRARIES}) install( diff --git a/base/tools/src/main/native/pistool/src/CMakeLists.txt b/base/tools/src/main/native/pistool/src/CMakeLists.txt index a30b8df4cdf..2eade65793d 100644 --- a/base/tools/src/main/native/pistool/src/CMakeLists.txt +++ b/base/tools/src/main/native/pistool/src/CMakeLists.txt @@ -66,8 +66,8 @@ set(pistool_SRCS include_directories(${PISTOOL_PRIVATE_INCLUDE_DIRS}) -add_executable(pistool ${pistool_SRCS}) -add_dependencies(pistool sslget) +add_executable(pistool EXCLUDE_FROM_ALL ${pistool_SRCS}) +add_dependencies(native pistool) target_link_libraries(pistool ${PISTOOL_LINK_LIBRARIES}) install( diff --git a/base/tools/src/main/native/revoker/CMakeLists.txt b/base/tools/src/main/native/revoker/CMakeLists.txt index c70b5d7463f..e3ba2aff635 100644 --- a/base/tools/src/main/native/revoker/CMakeLists.txt +++ b/base/tools/src/main/native/revoker/CMakeLists.txt @@ -18,8 +18,8 @@ set(revoker_SRCS include_directories(${REVOKER_PRIVATE_INCLUDE_DIRS}) -add_executable(revoker ${revoker_SRCS}) -add_dependencies(revoker p7tool) +add_executable(revoker EXCLUDE_FROM_ALL ${revoker_SRCS}) +add_dependencies(native revoker) target_link_libraries(revoker ${REVOKER_LINK_LIBRARIES}) install( diff --git a/base/tools/src/main/native/setpin/CMakeLists.txt b/base/tools/src/main/native/setpin/CMakeLists.txt index 6278910e60b..bb053497c5c 100644 --- a/base/tools/src/main/native/setpin/CMakeLists.txt +++ b/base/tools/src/main/native/setpin/CMakeLists.txt @@ -24,8 +24,8 @@ set(setpin_SRCS include_directories(${SETPIN_PRIVATE_INCLUDE_DIRS}) -add_executable(setpin ${setpin_SRCS}) -add_dependencies(setpin revoker) +add_executable(setpin EXCLUDE_FROM_ALL ${setpin_SRCS}) +add_dependencies(native setpin) target_link_libraries(setpin ${SETPIN_LINK_LIBRARIES}) install( diff --git a/base/tools/src/main/native/sslget/CMakeLists.txt b/base/tools/src/main/native/sslget/CMakeLists.txt index 91d953fb6f7..d0a683fc77a 100644 --- a/base/tools/src/main/native/sslget/CMakeLists.txt +++ b/base/tools/src/main/native/sslget/CMakeLists.txt @@ -18,8 +18,8 @@ set(sslget_SRCS include_directories(${SSLGET_PRIVATE_INCLUDE_DIRS}) -add_executable(sslget ${sslget_SRCS}) -add_dependencies(sslget setpin) +add_executable(sslget EXCLUDE_FROM_ALL ${sslget_SRCS}) +add_dependencies(native sslget) target_link_libraries(sslget ${SSLGET_LINK_LIBRARIES}) install( diff --git a/base/tools/src/main/native/tkstool/CMakeLists.txt b/base/tools/src/main/native/tkstool/CMakeLists.txt index 66eee6640dd..2b239a3cbfd 100644 --- a/base/tools/src/main/native/tkstool/CMakeLists.txt +++ b/base/tools/src/main/native/tkstool/CMakeLists.txt @@ -33,8 +33,8 @@ set(tkstool_SRCS include_directories(${TKSTOOL_PRIVATE_INCLUDE_DIRS}) -add_executable(tkstool ${tkstool_SRCS}) -add_dependencies(tkstool sslget) +add_executable(tkstool EXCLUDE_FROM_ALL ${tkstool_SRCS}) +add_dependencies(native tkstool) target_link_libraries(tkstool ${TKSTOOL_LINK_LIBRARIES}) install( diff --git a/base/tps/CMakeLists.txt b/base/tps/CMakeLists.txt index c27a6256676..515ea17fe07 100644 --- a/base/tps/CMakeLists.txt +++ b/base/tps/CMakeLists.txt @@ -25,6 +25,8 @@ javac(pki-tps-classes pki-server-jar ) +add_dependencies(java pki-tps-classes) + set(PKI_TPS_JAR ${CMAKE_BINARY_DIR}/dist/pki-tps.jar CACHE INTERNAL "pki-tps.jar" ) @@ -47,6 +49,8 @@ jar(pki-tps-jar pki-tps-classes ) +add_dependencies(java pki-tps-jar) + # TPS does not support admin console. # Create links in /usr/share/pki/tps/webapps/tps/WEB-INF/lib. # This can be customized for different platforms in RPM spec. @@ -74,12 +78,14 @@ add_custom_command( COMMAND go-md2man -in ${CMAKE_SOURCE_DIR}/docs/manuals/man5/pki-tps-profile.5.md -out man/man5/pki-tps-profile.5 ) -install( - FILES - ${PKI_TPS_JAR} - DESTINATION - ${JAVA_JAR_INSTALL_DIR}/pki -) +if(WITH_JAVA) + install( + FILES + ${CMAKE_BINARY_DIR}/dist/pki-tps.jar + DESTINATION + ${JAVA_JAR_INSTALL_DIR}/pki + ) +endif(WITH_JAVA) # install directories install( diff --git a/build.sh b/build.sh index 32cccc2fd01..8f3404c9108 100755 --- a/build.sh +++ b/build.sh @@ -47,6 +47,7 @@ WITH_TIMESTAMP= WITH_COMMIT_ID= DIST= +WITH_JAVA=true WITH_CONSOLE= RUN_TESTS=true @@ -86,6 +87,7 @@ usage() { echo " --with-timestamp Append timestamp to release number." echo " --with-commit-id Append commit ID to release number." echo " --dist= Distribution name (e.g. fc28)." + echo " --without-java Do not build Java binaries." echo " --with-console Build console package." echo " --with-pkgs= Build packages specified in comma-separated list only." echo " --without-pkgs= Build everything except packages specified in comma-separated list." @@ -308,6 +310,9 @@ while getopts v-: arg ; do dist=?*) DIST="$LONG_OPTARG" ;; + without-java) + WITH_JAVA=false + ;; with-console) WITH_CONSOLE=true ;; @@ -665,6 +670,10 @@ if [ "$BUILD_TARGET" = "dist" ] ; then OPTIONS+=(-DSYSTEMD_LIB_INSTALL_DIR=$UNIT_DIR) + if [ "$WITH_JAVA" = false ] ; then + OPTIONS+=(-DWITH_JAVA=FALSE) + fi + for package in "${PKGS_TO_SKIP[@]}" do package=${package^^} @@ -696,6 +705,22 @@ if [ "$BUILD_TARGET" = "dist" ] ; then OPTIONS+=(CMAKE_NO_VERBOSE=1) OPTIONS+=(--no-print-directory) + if [ "$WITH_JAVA" = true ] ; then + # build Java binaries + make "${OPTIONS[@]}" java + fi + + if [ "$WITH_CONSOLE" = true ] ; then + # build PKI console + make "${OPTIONS[@]}" console + fi + + if [[ " ${PKGS_TO_BUILD[*]} " =~ " javadoc " ]]; then + # build Javadoc + make "${OPTIONS[@]}" javadoc + fi + + # build native binaries make "${OPTIONS[@]}" all if [ "$RUN_TESTS" = true ] ; then @@ -705,40 +730,42 @@ if [ "$BUILD_TARGET" = "dist" ] ; then echo echo "Build artifacts:" - echo "- Java binaries:" - if [[ " ${PKGS_TO_BUILD[*]} " =~ " base " ]]; then - echo " $WORK_DIR/dist/pki-common.jar" - echo " $WORK_DIR/dist/pki-tools.jar" - fi - if [[ " ${PKGS_TO_BUILD[*]} " =~ " server " ]]; then - echo " $WORK_DIR/dist/pki-tomcat.jar" - echo " $WORK_DIR/dist/pki-tomcat-9.0.jar" - echo " $WORK_DIR/dist/pki-server.jar" - echo " $WORK_DIR/dist/pki-server-webapp.jar" - fi - if [[ " ${PKGS_TO_BUILD[*]} " =~ " ca " ]]; then - echo " $WORK_DIR/dist/pki-ca.jar" - fi - if [[ " ${PKGS_TO_BUILD[*]} " =~ " kra " ]]; then - echo " $WORK_DIR/dist/pki-kra.jar" - fi - if [[ " ${PKGS_TO_BUILD[*]} " =~ " ocsp " ]]; then - echo " $WORK_DIR/dist/pki-ocsp.jar" - fi - if [[ " ${PKGS_TO_BUILD[*]} " =~ " tks " ]]; then - echo " $WORK_DIR/dist/pki-tks.jar" - fi - if [[ " ${PKGS_TO_BUILD[*]} " =~ " tps " ]]; then - echo " $WORK_DIR/dist/pki-tps.jar" - fi - if [[ " ${PKGS_TO_BUILD[*]} " =~ " acme " ]]; then - echo " $WORK_DIR/dist/pki-acme.jar" - fi - if [[ " ${PKGS_TO_BUILD[*]} " =~ " est " ]]; then - echo " $WORK_DIR/dist/pki-est.jar" - fi - if [ "$WITH_CONSOLE" = true ] ; then - echo " $WORK_DIR/dist/pki-console.jar" + if [ "$WITH_JAVA" = true ] ; then + echo "- Java binaries:" + if [[ " ${PKGS_TO_BUILD[*]} " =~ " base " ]]; then + echo " $WORK_DIR/dist/pki-common.jar" + echo " $WORK_DIR/dist/pki-tools.jar" + fi + if [[ " ${PKGS_TO_BUILD[*]} " =~ " server " ]]; then + echo " $WORK_DIR/dist/pki-tomcat.jar" + echo " $WORK_DIR/dist/pki-tomcat-9.0.jar" + echo " $WORK_DIR/dist/pki-server.jar" + echo " $WORK_DIR/dist/pki-server-webapp.jar" + fi + if [[ " ${PKGS_TO_BUILD[*]} " =~ " ca " ]]; then + echo " $WORK_DIR/dist/pki-ca.jar" + fi + if [[ " ${PKGS_TO_BUILD[*]} " =~ " kra " ]]; then + echo " $WORK_DIR/dist/pki-kra.jar" + fi + if [[ " ${PKGS_TO_BUILD[*]} " =~ " ocsp " ]]; then + echo " $WORK_DIR/dist/pki-ocsp.jar" + fi + if [[ " ${PKGS_TO_BUILD[*]} " =~ " tks " ]]; then + echo " $WORK_DIR/dist/pki-tks.jar" + fi + if [[ " ${PKGS_TO_BUILD[*]} " =~ " tps " ]]; then + echo " $WORK_DIR/dist/pki-tps.jar" + fi + if [[ " ${PKGS_TO_BUILD[*]} " =~ " acme " ]]; then + echo " $WORK_DIR/dist/pki-acme.jar" + fi + if [[ " ${PKGS_TO_BUILD[*]} " =~ " est " ]]; then + echo " $WORK_DIR/dist/pki-est.jar" + fi + if [ "$WITH_CONSOLE" = true ] ; then + echo " $WORK_DIR/dist/pki-console.jar" + fi fi echo "- native binaries:" diff --git a/cmake/Modules/JUnit.cmake b/cmake/Modules/JUnit.cmake index 715d8359954..bd5b88cb6e9 100644 --- a/cmake/Modules/JUnit.cmake +++ b/cmake/Modules/JUnit.cmake @@ -46,7 +46,7 @@ function(add_junit_test target) endforeach(arg) - add_custom_target(${target} ALL + add_custom_target(${target} DEPENDS ${depends} COMMENT "Running JUnit ${target}") diff --git a/cmake/Modules/Java.cmake b/cmake/Modules/Java.cmake index 216f3014560..48452a6f328 100644 --- a/cmake/Modules/Java.cmake +++ b/cmake/Modules/Java.cmake @@ -65,7 +65,7 @@ function(javac target) set(file_list "${CMAKE_CURRENT_BINARY_DIR}/${target}.files") - add_custom_target(${target} ALL + add_custom_target(${target} DEPENDS ${depends} COMMENT "Compiling Java sources for ${target}") @@ -150,7 +150,7 @@ function(jar target) endforeach(arg) - add_custom_target(${target} ALL + add_custom_target(${target} DEPENDS ${depends} COMMENT "Packaging resources for ${target}") @@ -285,7 +285,7 @@ function(javadoc target) set(command ${command} ${files} ${packages}) - add_custom_target(${target} ALL + add_custom_target(${target} DEPENDS ${depends} COMMENT "Generating Javadoc for ${target}") @@ -320,7 +320,7 @@ function(link target) endforeach(arg) - add_custom_target(${target} ALL + add_custom_target(${target} DEPENDS ${depends} COMMENT "Linking ${target} to ${source}") diff --git a/pki.spec b/pki.spec index 21f5811bc01..15574e70305 100644 --- a/pki.spec +++ b/pki.spec @@ -815,6 +815,32 @@ This package provides test suite for %{product_name}. # (see /usr/lib/rpm/macros.d/macros.cmake) %set_build_flags +export JAVA_HOME=%{java_home} + +# flatten-maven-plugin is not available in RPM +%pom_remove_plugin org.codehaus.mojo:flatten-maven-plugin + +# build Java binaries and run unit tests with Maven +%mvn_build %{!?with_test:-f} -j + +# create links to Maven-built JAR files for CMake +mkdir -p %{_vpath_builddir}/dist +pushd %{_vpath_builddir}/dist +ln -sf ../../base/common/target/pki-common.jar +ln -sf ../../base/tools/target/pki-tools.jar +ln -sf ../../base/tomcat/target/pki-tomcat.jar +ln -sf ../../base/tomcat-9.0/target/pki-tomcat-9.0.jar +ln -sf ../../base/server/target/pki-server.jar +ln -sf ../../base/server-webapp/target/pki-server-webapp.jar +ln -sf ../../base/ca/target/pki-ca.jar +ln -sf ../../base/kra/target/pki-kra.jar +ln -sf ../../base/ocsp/target/pki-ocsp.jar +ln -sf ../../base/tks/target/pki-tks.jar +ln -sf ../../base/tps/target/pki-tps.jar +ln -sf ../../base/acme/target/pki-acme.jar +ln -sf ../../base/est/target/pki-est.jar +popd + # Remove all symbol table and relocation information from the executable. C_FLAGS="-s" @@ -850,6 +876,7 @@ pkgs=base\ %{?with_tests:,tests}\ %{?with_debug:,debug} +# build PKI console, Javadoc, and native binaries with CMake ./build.sh \ %{?_verbose:-v} \ --product-name="%{product_name}" \ @@ -870,15 +897,20 @@ pkgs=base\ --unit-dir=%{_unitdir} \ --python=%{python3} \ --python-dir=%{python3_sitelib} \ + --without-java \ --with-pkgs=$pkgs \ %{?with_console:--with-console} \ - %{!?with_test:--without-test} \ + --without-test \ dist ################################################################################ %install ################################################################################ +# install Java binaries +%mvn_install + +# install PKI console, Javadoc, and native binaries ./build.sh \ %{?_verbose:-v} \ --work-dir=%{_vpath_builddir} \ @@ -943,10 +975,10 @@ fi %if %{with meta} %if "%{name}" != "%{product_id}" ################################################################################ -%files -n %{product_id} +%files -n %{product_id} -f .mfiles ################################################################################ %else -%files +%files -f .mfiles %endif %doc %{_datadir}/doc/pki/README diff --git a/themes/dogtag/console-ui/src/CMakeLists.txt b/themes/dogtag/console-ui/src/CMakeLists.txt index 67a99fce202..d98738a7fea 100644 --- a/themes/dogtag/console-ui/src/CMakeLists.txt +++ b/themes/dogtag/console-ui/src/CMakeLists.txt @@ -17,6 +17,8 @@ jar(pki-console-theme-jar com/netscape/admin/certsrv/theme/certmgmt.gif ) +add_dependencies(console pki-console-theme-jar) + install( FILES ${PKI_CONSOLE_THEME_JAR}