cmake: update samples and examples management

This commit is contained in:
Mizux Seiha
2020-09-11 16:05:03 +02:00
parent 5065b5463c
commit fff7b6ad8b
11 changed files with 99 additions and 59 deletions

View File

@@ -104,11 +104,29 @@ if(BUILD_PYTHON OR BUILD_JAVA OR BUILD_DOTNET)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
endif()
include(CMakeDependentOption)
option(BUILD_SAMPLES "Build samples" ON)
message(STATUS "Build samples: ${BUILD_SAMPLES}")
CMAKE_DEPENDENT_OPTION(BUILD_CXX_SAMPLES "Build cxx samples" ON "BUILD_SAMPLES;BUILD_CXX" OFF)
message(STATUS "Build C++ samples: ${BUILD_CXX_SAMPLES}")
CMAKE_DEPENDENT_OPTION(BUILD_PYTHON_SAMPLES "Build python samples" ON "BUILD_SAMPLES;BUILD_PYTHON" OFF)
message(STATUS "Build Python samples: ${BUILD_PYTHON_SAMPLES}")
CMAKE_DEPENDENT_OPTION(BUILD_JAVA_SAMPLES "Build java samples" ON "BUILD_SAMPLES;BUILD_JAVA" OFF)
message(STATUS "Build Java samples: ${BUILD_JAVA_SAMPLES}")
CMAKE_DEPENDENT_OPTION(BUILD_DOTNET_SAMPLES "Build dotnet samples" ON "BUILD_SAMPLES;BUILD_DOTNET" OFF)
message(STATUS "Build .Net samples: ${BUILD_DOTNET_SAMPLES}")
option(BUILD_EXAMPLES "Build examples" ON)
message(STATUS "Build examples: ${BUILD_EXAMPLES}")
CMAKE_DEPENDENT_OPTION(BUILD_CXX_EXAMPLES "Build cxx samples" ON "BUILD_EXAMPLES;BUILD_CXX" OFF)
message(STATUS "Build C++ samples: ${BUILD_CXX_EXAMPLES}")
CMAKE_DEPENDENT_OPTION(BUILD_PYTHON_EXAMPLES "Build python samples" ON "BUILD_EXAMPLES;BUILD_PYTHON" OFF)
message(STATUS "Build Python samples: ${BUILD_PYTHON_EXAMPLES}")
CMAKE_DEPENDENT_OPTION(BUILD_JAVA_EXAMPLES "Build java samples" ON "BUILD_EXAMPLES;BUILD_JAVA" OFF)
message(STATUS "Build Java samples: ${BUILD_JAVA_EXAMPLES}")
CMAKE_DEPENDENT_OPTION(BUILD_DOTNET_EXAMPLES "Build dotnet samples" ON "BUILD_EXAMPLES;BUILD_DOTNET" OFF)
message(STATUS "Build .Net samples: ${BUILD_DOTNET_EXAMPLES}")
#option(BUILD_DOC "Build doxygen" OFF)
#message(STATUS "Build doxygen: ${BUILD_DOC}")
@@ -125,7 +143,6 @@ message(STATUS "Build all dependencies: ${BUILD_DEPS}")
option(INSTALL_BUILD_DEPS "Install build all dependencies" ON)
# IF BUILD_DEPS=ON THEN Force all BUILD_*=ON
include(CMakeDependentOption)
CMAKE_DEPENDENT_OPTION(BUILD_ZLIB "Build the ZLIB dependency Library" OFF
"NOT BUILD_DEPS" ON)
message(STATUS "Build ZLIB: ${BUILD_ZLIB}")

View File

@@ -1,23 +1,37 @@
if (NOT BUILD_PYTHON)
return()
if (NOT BUILD_EXAMPLES)
return()
endif()
foreach(TEST IN ITEMS
hidato_table
integer_programming
knapsack
linear_programming
pyflow_example
tsp
vrp
vrpgs
cvrp
cvrptw)
add_test(py${TEST}_venv ${VENV_BIN_DIR}/python ${CMAKE_CURRENT_SOURCE_DIR}/${TEST}.py)
set_tests_properties(py${TEST}_venv PROPERTIES DEPENDS build_venv)
endforeach()
if(BUILD_CXX_EXAMPLES)
include(GNUInstallDirs)
install(DIRECTORY .
DESTINATION ${CMAKE_INSTALL_DATADIR}/ortools/examples/python
FILES_MATCHING PATTERN "*.py")
endif()
if(BUILD_PYTHON)
foreach(TEST IN ITEMS
hidato_table
integer_programming
knapsack
linear_programming
pyflow_example
tsp
vrp
vrpgs
cvrp
cvrptw)
add_test(py${TEST}_venv ${VENV_BIN_DIR}/python ${CMAKE_CURRENT_SOURCE_DIR}/${TEST}.py)
set_tests_properties(py${TEST}_venv PROPERTIES DEPENDS build_venv)
endforeach()
include(GNUInstallDirs)
install(DIRECTORY .
DESTINATION ${CMAKE_INSTALL_DATADIR}/ortools/examples/python
FILES_MATCHING PATTERN "*.py")
endif()
if(BUILD_JAVA_EXAMPLES)
endif()
if(BUILD_DOTNET_EXAMPLES)
endif()

View File

@@ -1,21 +1,16 @@
if (NOT BUILD_CXX)
if(NOT BUILD_CXX_EXAMPLES)
return()
endif()
project(ortools_examples)
if (APPLE)
if(APPLE)
set(CMAKE_INSTALL_RPATH
"@loader_path/../..;@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path")
else()
set(CMAKE_INSTALL_RPATH "$ORIGIN/../../:$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:$ORIGIN/")
"@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path")
elseif(UNIX)
set(CMAKE_INSTALL_RPATH "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:$ORIGIN")
endif()
get_filename_component(PARENT_SOURCE_DIR ${PROJECT_SOURCE_DIR} DIRECTORY)
include(GNUInstallDirs)
foreach(EXECUTABLE
foreach(EXECUTABLE IN ITEMS
constraint_programming_cp
costas_array_sat
cvrp_disjoint_tw
@@ -52,16 +47,13 @@ foreach(EXECUTABLE
variable_intervals_sat
weighted_tardiness_sat)
add_executable(${EXECUTABLE} ${EXECUTABLE}.cc)
target_include_directories(${EXECUTABLE} PUBLIC ${PARENT_SOURCE_DIR})
target_include_directories(${EXECUTABLE} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_compile_features(${EXECUTABLE} PRIVATE cxx_std_17)
target_link_libraries(${EXECUTABLE} PRIVATE ortools::ortools)
set_target_properties(${EXECUTABLE} PROPERTIES
INSTALL_RPATH_USE_LINK_PATH TRUE)
install(TARGETS ${EXECUTABLE}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
install(TARGETS ${EXECUTABLE})
endforeach()
foreach(TEST
foreach(TEST IN ITEMS
costas_array_sat
cvrp_disjoint_tw
cvrptw
@@ -95,5 +87,5 @@ foreach(TEST
#variable_intervals_sat
#weighted_tardiness_sat
)
add_test(NAME cc_${TEST} COMMAND ${TEST})
add_test(NAME cxx_${TEST} COMMAND ${TEST})
endforeach()

View File

@@ -0,0 +1,4 @@
if(NOT BUILD_DOTNET_EXAMPLES)
return()
endif()

View File

@@ -0,0 +1,4 @@
if(NOT BUILD_JAVA_EXAMPLES)
return()
endif()

View File

@@ -0,0 +1,4 @@
if(NOT BUILD_PYTHON_EXAMPLES)
return()
endif()

View File

@@ -2,7 +2,7 @@ if(NOT BUILD_SAMPLES)
return()
endif()
if(BUILD_CXX)
if(BUILD_CXX_SAMPLES)
if(APPLE)
set(CMAKE_INSTALL_RPATH
"@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path")
@@ -17,17 +17,18 @@ if(BUILD_CXX)
target_compile_features(${EXECUTABLE} PRIVATE cxx_std_17)
target_link_libraries(${EXECUTABLE} PRIVATE ortools::ortools)
install(TARGETS ${EXECUTABLE})
add_test(NAME cxx_${EXECUTABLE} COMMAND ${EXECUTABLE})
endforeach()
endif()
if(BUILD_PYTHON)
if(BUILD_PYTHON_SAMPLES)
endif()
if(BUILD_JAVA)
if(BUILD_JAVA_SAMPLES)
endif()
if(BUILD_DOTNET)
if(BUILD_DOTNET_SAMPLES)
endif()

View File

@@ -2,7 +2,7 @@ if(NOT BUILD_SAMPLES)
return()
endif()
if(BUILD_CXX)
if(BUILD_CXX_SAMPLES)
if(APPLE)
set(CMAKE_INSTALL_RPATH
"@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path")
@@ -40,17 +40,18 @@ if(BUILD_CXX)
target_compile_features(${EXECUTABLE} PRIVATE cxx_std_17)
target_link_libraries(${EXECUTABLE} PRIVATE ortools::ortools)
install(TARGETS ${EXECUTABLE})
add_test(NAME cxx_${EXECUTABLE} COMMAND ${EXECUTABLE})
endforeach()
endif()
if(BUILD_PYTHON)
if(BUILD_PYTHON_SAMPLES)
endif()
if(BUILD_JAVA)
if(BUILD_JAVA_SAMPLES)
endif()
if(BUILD_DOTNET)
if(BUILD_DOTNET_SAMPLES)
endif()

View File

@@ -2,7 +2,7 @@ if(NOT BUILD_SAMPLES)
return()
endif()
if(BUILD_CXX)
if(BUILD_CXX_SAMPLES)
if(APPLE)
set(CMAKE_INSTALL_RPATH
"@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path")
@@ -18,17 +18,18 @@ if(BUILD_CXX)
target_compile_features(${EXECUTABLE} PRIVATE cxx_std_17)
target_link_libraries(${EXECUTABLE} PRIVATE ortools::ortools)
install(TARGETS ${EXECUTABLE})
add_test(NAME cxx_${EXECUTABLE} COMMAND ${EXECUTABLE})
endforeach()
endif()
if(BUILD_PYTHON)
if(BUILD_PYTHON_SAMPLES)
endif()
if(BUILD_JAVA)
if(BUILD_JAVA_SAMPLES)
endif()
if(BUILD_DOTNET)
if(BUILD_DOTNET_SAMPLES)
endif()

View File

@@ -2,7 +2,7 @@ if(NOT BUILD_SAMPLES)
return()
endif()
if(BUILD_CXX)
if(BUILD_CXX_SAMPLES)
if(APPLE)
set(CMAKE_INSTALL_RPATH
"@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path")
@@ -26,17 +26,18 @@ if(BUILD_CXX)
target_compile_features(${EXECUTABLE} PRIVATE cxx_std_17)
target_link_libraries(${EXECUTABLE} PRIVATE ortools::ortools)
install(TARGETS ${EXECUTABLE})
add_test(NAME cxx_${EXECUTABLE} COMMAND ${EXECUTABLE})
endforeach()
endif()
if(BUILD_PYTHON)
if(BUILD_PYTHON_SAMPLES)
endif()
if(BUILD_JAVA)
if(BUILD_JAVA_SAMPLES)
endif()
if(BUILD_DOTNET)
if(BUILD_DOTNET_SAMPLES)
endif()

View File

@@ -2,7 +2,7 @@ if(NOT BUILD_SAMPLES)
return()
endif()
if(BUILD_CXX)
if(BUILD_CXX_SAMPLES)
if(APPLE)
set(CMAKE_INSTALL_RPATH
"@loader_path/../${CMAKE_INSTALL_LIBDIR};@loader_path")
@@ -39,17 +39,18 @@ if(BUILD_CXX)
target_compile_features(${EXECUTABLE} PRIVATE cxx_std_17)
target_link_libraries(${EXECUTABLE} PRIVATE ortools::ortools)
install(TARGETS ${EXECUTABLE})
add_test(NAME cxx_${EXECUTABLE} COMMAND ${EXECUTABLE})
endforeach()
endif()
if(BUILD_PYTHON)
if(BUILD_PYTHON_SAMPLES)
endif()
if(BUILD_JAVA)
if(BUILD_JAVA_SAMPLES)
endif()
if(BUILD_DOTNET)
if(BUILD_DOTNET_SAMPLES)
endif()