Revert "cmake: Move test macros after package build"

This reverts commit 2118b9f52d.
This commit is contained in:
Corentin Le Molgat
2023-02-22 09:26:36 +01:00
parent e106e23600
commit b6425df8e4
3 changed files with 168 additions and 166 deletions

View File

@@ -156,6 +156,69 @@ set(JAVA_SRC_PATH src/main/java/${JAVA_DOMAIN_EXTENSION}/${JAVA_DOMAIN_NAME}/${J
set(JAVA_TEST_PATH src/test/java/${JAVA_DOMAIN_EXTENSION}/${JAVA_DOMAIN_NAME}/${JAVA_ARTIFACT})
set(JAVA_RESSOURCES_PATH src/main/resources)
#################
## Java Test ##
#################
if(BUILD_TESTING)
# add_java_test()
# CMake function to generate and build java test.
# Parameters:
# the java filename
# e.g.:
# add_java_test(FooTests.java)
function(add_java_test FILE_NAME)
message(STATUS "Configuring test ${FILE_NAME}: ...")
get_filename_component(TEST_NAME ${FILE_NAME} NAME_WE)
get_filename_component(WRAPPER_DIR ${FILE_NAME} DIRECTORY)
get_filename_component(COMPONENT_DIR ${WRAPPER_DIR} DIRECTORY)
get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME)
set(JAVA_TEST_DIR ${PROJECT_BINARY_DIR}/java/${COMPONENT_NAME}/${TEST_NAME})
message(STATUS "build path: ${JAVA_TEST_DIR}")
add_custom_command(
OUTPUT ${JAVA_TEST_DIR}/${JAVA_TEST_PATH}/${TEST_NAME}.java
COMMAND ${CMAKE_COMMAND} -E make_directory
${JAVA_TEST_DIR}/${JAVA_TEST_PATH}
COMMAND ${CMAKE_COMMAND} -E copy
${FILE_NAME}
${JAVA_TEST_DIR}/${JAVA_TEST_PATH}/
MAIN_DEPENDENCY ${FILE_NAME}
VERBATIM
)
string(TOLOWER ${TEST_NAME} JAVA_TEST_PROJECT)
configure_file(
${PROJECT_SOURCE_DIR}/ortools/java/pom-test.xml.in
${JAVA_TEST_DIR}/pom.xml
@ONLY)
add_custom_command(
OUTPUT ${JAVA_TEST_DIR}/timestamp
COMMAND ${MAVEN_EXECUTABLE} compile -B
COMMAND ${CMAKE_COMMAND} -E touch ${JAVA_TEST_DIR}/timestamp
DEPENDS
${JAVA_TEST_DIR}/pom.xml
${JAVA_TEST_DIR}/${JAVA_TEST_PATH}/${TEST_NAME}.java
java_package
BYPRODUCTS
${JAVA_TEST_DIR}/target
COMMENT "Compiling Java ${COMPONENT_NAME}/${TEST_NAME}.java (${JAVA_TEST_DIR}/timestamp)"
WORKING_DIRECTORY ${JAVA_TEST_DIR})
add_custom_target(java_${COMPONENT_NAME}_${TEST_NAME} ALL
DEPENDS
${JAVA_TEST_DIR}/timestamp
WORKING_DIRECTORY ${JAVA_TEST_DIR})
add_test(
NAME java_${COMPONENT_NAME}_${TEST_NAME}
COMMAND ${MAVEN_EXECUTABLE} test
WORKING_DIRECTORY ${JAVA_TEST_DIR})
message(STATUS "Configuring test ${FILE_NAME}: ...DONE")
endfunction()
endif()
#####################
## JAVA WRAPPERS ##
#####################
@@ -317,69 +380,6 @@ if(BUILD_JAVA_DOC)
endif()
endif()
#################
## Java Test ##
#################
if(BUILD_TESTING)
# add_java_test()
# CMake function to generate and build java test.
# Parameters:
# the java filename
# e.g.:
# add_java_test(FooTests.java)
function(add_java_test FILE_NAME)
message(STATUS "Configuring test ${FILE_NAME}: ...")
get_filename_component(TEST_NAME ${FILE_NAME} NAME_WE)
get_filename_component(WRAPPER_DIR ${FILE_NAME} DIRECTORY)
get_filename_component(COMPONENT_DIR ${WRAPPER_DIR} DIRECTORY)
get_filename_component(COMPONENT_NAME ${COMPONENT_DIR} NAME)
set(JAVA_TEST_DIR ${PROJECT_BINARY_DIR}/java/${COMPONENT_NAME}/${TEST_NAME})
message(STATUS "build path: ${JAVA_TEST_DIR}")
add_custom_command(
OUTPUT ${JAVA_TEST_DIR}/${JAVA_TEST_PATH}/${TEST_NAME}.java
COMMAND ${CMAKE_COMMAND} -E make_directory
${JAVA_TEST_DIR}/${JAVA_TEST_PATH}
COMMAND ${CMAKE_COMMAND} -E copy
${FILE_NAME}
${JAVA_TEST_DIR}/${JAVA_TEST_PATH}/
MAIN_DEPENDENCY ${FILE_NAME}
VERBATIM
)
string(TOLOWER ${TEST_NAME} JAVA_TEST_PROJECT)
configure_file(
${PROJECT_SOURCE_DIR}/ortools/java/pom-test.xml.in
${JAVA_TEST_DIR}/pom.xml
@ONLY)
add_custom_command(
OUTPUT ${JAVA_TEST_DIR}/timestamp
COMMAND ${MAVEN_EXECUTABLE} compile -B
COMMAND ${CMAKE_COMMAND} -E touch ${JAVA_TEST_DIR}/timestamp
DEPENDS
${JAVA_TEST_DIR}/pom.xml
${JAVA_TEST_DIR}/${JAVA_TEST_PATH}/${TEST_NAME}.java
java_package
BYPRODUCTS
${JAVA_TEST_DIR}/target
COMMENT "Compiling Java ${COMPONENT_NAME}/${TEST_NAME}.java (${JAVA_TEST_DIR}/timestamp)"
WORKING_DIRECTORY ${JAVA_TEST_DIR})
add_custom_target(java_${COMPONENT_NAME}_${TEST_NAME} ALL
DEPENDS
${JAVA_TEST_DIR}/timestamp
WORKING_DIRECTORY ${JAVA_TEST_DIR})
add_test(
NAME java_${COMPONENT_NAME}_${TEST_NAME}
COMMAND ${MAVEN_EXECUTABLE} test
WORKING_DIRECTORY ${JAVA_TEST_DIR})
message(STATUS "Configuring test ${FILE_NAME}: ...DONE")
endfunction()
endif()
###################
## Java Sample ##
###################