Revert "cmake: Move test macros after package build"
This reverts commit 2118b9f52d.
This commit is contained in:
@@ -179,6 +179,71 @@ elseif(UNIX)
|
||||
set_target_properties(google-ortools-native PROPERTIES INSTALL_RPATH "$ORIGIN")
|
||||
endif()
|
||||
|
||||
#################
|
||||
## .Net Test ##
|
||||
#################
|
||||
if(BUILD_TESTING)
|
||||
# add_dotnet_test()
|
||||
# CMake function to generate and build dotnet test.
|
||||
# Parameters:
|
||||
# the dotnet filename
|
||||
# e.g.:
|
||||
# add_dotnet_test(FooTests.cs)
|
||||
function(add_dotnet_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(DOTNET_TEST_DIR ${PROJECT_BINARY_DIR}/dotnet/${COMPONENT_NAME}/${TEST_NAME})
|
||||
message(STATUS "build path: ${DOTNET_TEST_DIR}")
|
||||
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/ortools/dotnet/Test.csproj.in
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.csproj
|
||||
@ONLY)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_TEST_DIR}/${TEST_NAME}.cs
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOTNET_TEST_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${FILE_NAME}
|
||||
${DOTNET_TEST_DIR}/
|
||||
MAIN_DEPENDENCY ${FILE_NAME}
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_TEST_DIR}/timestamp
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} build --nologo -c Release ${TEST_NAME}.csproj
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_TEST_DIR}/timestamp
|
||||
DEPENDS
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.csproj
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.cs
|
||||
dotnet_package
|
||||
BYPRODUCTS
|
||||
${DOTNET_TEST_DIR}/bin
|
||||
${DOTNET_TEST_DIR}/obj
|
||||
VERBATIM
|
||||
COMMENT "Compiling .Net ${COMPONENT_NAME}/${TEST_NAME}.cs (${DOTNET_TEST_DIR}/timestamp)"
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
add_custom_target(dotnet_${COMPONENT_NAME}_${TEST_NAME} ALL
|
||||
DEPENDS
|
||||
${DOTNET_TEST_DIR}/timestamp
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
add_test(
|
||||
NAME dotnet_${COMPONENT_NAME}_${TEST_NAME}
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} test --nologo -c Release ${TEST_NAME}.csproj
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
message(STATUS "Configuring test ${FILE_NAME} done")
|
||||
endfunction()
|
||||
endif()
|
||||
|
||||
#######################
|
||||
## DOTNET WRAPPERS ##
|
||||
#######################
|
||||
@@ -350,71 +415,6 @@ if(BUILD_DOTNET_DOC)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#################
|
||||
## .Net Test ##
|
||||
#################
|
||||
if(BUILD_TESTING)
|
||||
# add_dotnet_test()
|
||||
# CMake function to generate and build dotnet test.
|
||||
# Parameters:
|
||||
# the dotnet filename
|
||||
# e.g.:
|
||||
# add_dotnet_test(FooTests.cs)
|
||||
function(add_dotnet_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(DOTNET_TEST_DIR ${PROJECT_BINARY_DIR}/dotnet/${COMPONENT_NAME}/${TEST_NAME})
|
||||
message(STATUS "build path: ${DOTNET_TEST_DIR}")
|
||||
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/ortools/dotnet/Test.csproj.in
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.csproj
|
||||
@ONLY)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_TEST_DIR}/${TEST_NAME}.cs
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${DOTNET_TEST_DIR}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
${FILE_NAME}
|
||||
${DOTNET_TEST_DIR}/
|
||||
MAIN_DEPENDENCY ${FILE_NAME}
|
||||
VERBATIM
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT ${DOTNET_TEST_DIR}/timestamp
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} build --nologo -c Release ${TEST_NAME}.csproj
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${DOTNET_TEST_DIR}/timestamp
|
||||
DEPENDS
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.csproj
|
||||
${DOTNET_TEST_DIR}/${TEST_NAME}.cs
|
||||
dotnet_package
|
||||
BYPRODUCTS
|
||||
${DOTNET_TEST_DIR}/bin
|
||||
${DOTNET_TEST_DIR}/obj
|
||||
VERBATIM
|
||||
COMMENT "Compiling .Net ${COMPONENT_NAME}/${TEST_NAME}.cs (${DOTNET_TEST_DIR}/timestamp)"
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
add_custom_target(dotnet_${COMPONENT_NAME}_${TEST_NAME} ALL
|
||||
DEPENDS
|
||||
${DOTNET_TEST_DIR}/timestamp
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
|
||||
add_test(
|
||||
NAME dotnet_${COMPONENT_NAME}_${TEST_NAME}
|
||||
COMMAND ${CMAKE_COMMAND} -E env --unset=TARGETNAME
|
||||
${DOTNET_EXECUTABLE} test --nologo -c Release ${TEST_NAME}.csproj
|
||||
WORKING_DIRECTORY ${DOTNET_TEST_DIR})
|
||||
message(STATUS "Configuring test ${FILE_NAME} done")
|
||||
endfunction()
|
||||
endif()
|
||||
|
||||
###################
|
||||
## .Net Sample ##
|
||||
###################
|
||||
|
||||
126
cmake/java.cmake
126
cmake/java.cmake
@@ -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 ##
|
||||
###################
|
||||
|
||||
@@ -176,6 +176,46 @@ add_custom_target(Py${PROJECT_NAME}_proto
|
||||
${PROTO_PYS}
|
||||
${PROJECT_NAMESPACE}::ortools)
|
||||
|
||||
###################
|
||||
## Python Test ##
|
||||
###################
|
||||
if(BUILD_VENV)
|
||||
search_python_module(NAME virtualenv PACKAGE virtualenv)
|
||||
# venv not working on github runners
|
||||
# search_python_internal_module(NAME venv)
|
||||
# Testing using a vitual environment
|
||||
set(VENV_EXECUTABLE ${Python3_EXECUTABLE} -m virtualenv)
|
||||
#set(VENV_EXECUTABLE ${Python3_EXECUTABLE} -m venv)
|
||||
set(VENV_DIR ${CMAKE_CURRENT_BINARY_DIR}/python/venv)
|
||||
if(WIN32)
|
||||
set(VENV_Python3_EXECUTABLE ${VENV_DIR}/Scripts/python.exe)
|
||||
else()
|
||||
set(VENV_Python3_EXECUTABLE ${VENV_DIR}/bin/python)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(BUILD_TESTING)
|
||||
# add_python_test()
|
||||
# CMake function to generate and build python test.
|
||||
# Parameters:
|
||||
# the python filename
|
||||
# e.g.:
|
||||
# add_python_test(foo.py)
|
||||
function(add_python_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)
|
||||
|
||||
add_test(
|
||||
NAME python_${COMPONENT_NAME}_${TEST_NAME}
|
||||
COMMAND ${VENV_Python3_EXECUTABLE} -m pytest ${FILE_NAME}
|
||||
WORKING_DIRECTORY ${VENV_DIR})
|
||||
message(STATUS "Configuring test ${FILE_NAME} done")
|
||||
endfunction()
|
||||
endif()
|
||||
|
||||
#######################
|
||||
## PYTHON WRAPPERS ##
|
||||
#######################
|
||||
@@ -329,19 +369,6 @@ configure_file(
|
||||
install(SCRIPT ${PROJECT_BINARY_DIR}/python/python-install.cmake)
|
||||
|
||||
if(BUILD_VENV)
|
||||
search_python_module(NAME virtualenv PACKAGE virtualenv)
|
||||
# venv not working on github runners
|
||||
# search_python_internal_module(NAME venv)
|
||||
# Testing using a vitual environment
|
||||
set(VENV_EXECUTABLE ${Python3_EXECUTABLE} -m virtualenv)
|
||||
#set(VENV_EXECUTABLE ${Python3_EXECUTABLE} -m venv)
|
||||
set(VENV_DIR ${CMAKE_CURRENT_BINARY_DIR}/python/venv)
|
||||
if(WIN32)
|
||||
set(VENV_Python3_EXECUTABLE ${VENV_DIR}/Scripts/python.exe)
|
||||
else()
|
||||
set(VENV_Python3_EXECUTABLE ${VENV_DIR}/bin/python)
|
||||
endif()
|
||||
|
||||
# make a virtualenv to install our python package in it
|
||||
add_custom_command(TARGET python_package POST_BUILD
|
||||
# Clean previous install otherwise pip install may do nothing
|
||||
@@ -398,31 +425,6 @@ if(BUILD_PYTHON_DOC)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
###################
|
||||
## Python Test ##
|
||||
###################
|
||||
if(BUILD_TESTING)
|
||||
# add_python_test()
|
||||
# CMake function to generate and build python test.
|
||||
# Parameters:
|
||||
# the python filename
|
||||
# e.g.:
|
||||
# add_python_test(foo.py)
|
||||
function(add_python_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)
|
||||
|
||||
add_test(
|
||||
NAME python_${COMPONENT_NAME}_${TEST_NAME}
|
||||
COMMAND ${VENV_Python3_EXECUTABLE} -m pytest ${FILE_NAME}
|
||||
WORKING_DIRECTORY ${VENV_DIR})
|
||||
message(STATUS "Configuring test ${FILE_NAME} done")
|
||||
endfunction()
|
||||
endif()
|
||||
|
||||
#####################
|
||||
## Python Sample ##
|
||||
#####################
|
||||
|
||||
Reference in New Issue
Block a user