cmake: Use PROJECT_NAMESPACE
This commit is contained in:
@@ -131,7 +131,7 @@ if(WIN32)
|
||||
endif()
|
||||
|
||||
# ALIAS
|
||||
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
|
||||
add_library(${PROJECT_NAMESPACE}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
|
||||
|
||||
# Generate Protobuf cpp sources
|
||||
set(PROTO_HDRS)
|
||||
@@ -199,11 +199,11 @@ target_compile_definitions(${PROJECT_NAME}_proto PUBLIC ${OR_TOOLS_COMPILE_DEFIN
|
||||
target_compile_options(${PROJECT_NAME}_proto PUBLIC ${OR_TOOLS_COMPILE_OPTIONS})
|
||||
#target_link_libraries(${PROJECT_NAME}_proto PRIVATE protobuf::libprotobuf)
|
||||
add_dependencies(${PROJECT_NAME}_proto protobuf::libprotobuf)
|
||||
add_library(${PROJECT_NAME}::proto ALIAS ${PROJECT_NAME}_proto)
|
||||
# Add ortools::proto to libortools
|
||||
#target_link_libraries(${PROJECT_NAME} PRIVATE ${PROJECT_NAME}::proto)
|
||||
target_sources(${PROJECT_NAME} PRIVATE $<TARGET_OBJECTS:${PROJECT_NAME}::proto>)
|
||||
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}::proto)
|
||||
add_library(${PROJECT_NAMESPACE}::proto ALIAS ${PROJECT_NAME}_proto)
|
||||
# Add ${PROJECT_NAMESPACE}::proto to libortools
|
||||
#target_link_libraries(${PROJECT_NAME} PRIVATE ${PROJECT_NAMESPACE}::proto)
|
||||
target_sources(${PROJECT_NAME} PRIVATE $<TARGET_OBJECTS:${PROJECT_NAMESPACE}::proto>)
|
||||
add_dependencies(${PROJECT_NAME} ${PROJECT_NAMESPACE}::proto)
|
||||
|
||||
foreach(SUBPROJECT IN ITEMS
|
||||
algorithms
|
||||
@@ -244,7 +244,7 @@ install(TARGETS ${PROJECT_NAME}
|
||||
)
|
||||
|
||||
install(EXPORT ${PROJECT_NAME}Targets
|
||||
NAMESPACE ${PROJECT_NAME}::
|
||||
NAMESPACE ${PROJECT_NAMESPACE}::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
|
||||
install(DIRECTORY ortools
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
@@ -298,7 +298,7 @@ function(add_cxx_sample FILE_NAME)
|
||||
add_executable(${SAMPLE_NAME} ${FILE_NAME})
|
||||
target_include_directories(${SAMPLE_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
target_compile_features(${SAMPLE_NAME} PRIVATE cxx_std_17)
|
||||
target_link_libraries(${SAMPLE_NAME} PRIVATE ortools::ortools)
|
||||
target_link_libraries(${SAMPLE_NAME} PRIVATE ${PROJECT_NAMESPACE}::ortools)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS ${SAMPLE_NAME})
|
||||
@@ -331,7 +331,7 @@ function(add_cxx_example FILE_NAME)
|
||||
add_executable(${EXAMPLE_NAME} ${FILE_NAME})
|
||||
target_include_directories(${EXAMPLE_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
target_compile_features(${EXAMPLE_NAME} PRIVATE cxx_std_17)
|
||||
target_link_libraries(${EXAMPLE_NAME} PRIVATE ortools::ortools)
|
||||
target_link_libraries(${EXAMPLE_NAME} PRIVATE ${PROJECT_NAMESPACE}::ortools)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
install(TARGETS ${EXAMPLE_NAME})
|
||||
@@ -364,7 +364,7 @@ function(add_cxx_test FILE_NAME)
|
||||
add_executable(${TEST_NAME} ${FILE_NAME})
|
||||
target_include_directories(${TEST_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
target_compile_features(${TEST_NAME} PRIVATE cxx_std_17)
|
||||
target_link_libraries(${TEST_NAME} PRIVATE ortools::ortools)
|
||||
target_link_libraries(${TEST_NAME} PRIVATE ${PROJECT_NAMESPACE}::ortools)
|
||||
|
||||
if(BUILD_TESTING)
|
||||
add_test(NAME cxx_${COMPONENT_NAME}_${TEST_NAME} COMMAND ${TEST_NAME})
|
||||
|
||||
@@ -2,7 +2,7 @@ if(NOT BUILD_DOTNET)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT TARGET ortools::ortools)
|
||||
if(NOT TARGET ${PROJECT_NAMESPACE}::ortools)
|
||||
message(FATAL_ERROR ".Net: missing ortools TARGET")
|
||||
endif()
|
||||
|
||||
@@ -57,7 +57,7 @@ foreach(PROTO_FILE IN LISTS proto_dotnet_files)
|
||||
VERBATIM)
|
||||
list(APPEND PROTO_DOTNETS ${PROTO_DOTNET})
|
||||
endforeach()
|
||||
add_custom_target(Dotnet${PROJECT_NAME}_proto DEPENDS ${PROTO_DOTNETS} ortools::ortools)
|
||||
add_custom_target(Dotnet${PROJECT_NAME}_proto DEPENDS ${PROTO_DOTNETS} ${PROJECT_NAMESPACE}::ortools)
|
||||
|
||||
# Create the native library
|
||||
add_library(google-ortools-native SHARED "")
|
||||
@@ -79,7 +79,7 @@ elseif(UNIX)
|
||||
endif()
|
||||
|
||||
# CMake will remove all '-D' prefix (i.e. -DUSE_FOO become USE_FOO)
|
||||
#get_target_property(FLAGS ortools::ortools COMPILE_DEFINITIONS)
|
||||
#get_target_property(FLAGS ${PROJECT_NAMESPACE}::ortools COMPILE_DEFINITIONS)
|
||||
set(FLAGS -DUSE_BOP -DUSE_GLOP -DABSL_MUST_USE_RESULT)
|
||||
if(USE_SCIP)
|
||||
list(APPEND FLAGS "-DUSE_SCIP")
|
||||
|
||||
@@ -2,8 +2,8 @@ if(NOT BUILD_JAVA)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if(NOT TARGET ortools::ortools)
|
||||
message(FATAL_ERROR "Java: missing ortools::ortools TARGET")
|
||||
if(NOT TARGET ${PROJECT_NAMESPACE}::ortools)
|
||||
message(FATAL_ERROR "Java: missing ${PROJECT_NAMESPACE}::ortools TARGET")
|
||||
endif()
|
||||
|
||||
# Will need swig
|
||||
@@ -54,7 +54,7 @@ set(JAVA_NATIVE_PROJECT ortools-${NATIVE_IDENTIFIER})
|
||||
set(JAVA_PROJECT ortools-java)
|
||||
|
||||
# CMake will remove all '-D' prefix (i.e. -DUSE_FOO become USE_FOO)
|
||||
#get_target_property(FLAGS ortools::ortools COMPILE_DEFINITIONS)
|
||||
#get_target_property(FLAGS ${PROJECT_NAMESPACE}::ortools COMPILE_DEFINITIONS)
|
||||
set(FLAGS -DUSE_BOP -DUSE_GLOP -DABSL_MUST_USE_RESULT)
|
||||
if(USE_SCIP)
|
||||
list(APPEND FLAGS "-DUSE_SCIP")
|
||||
@@ -95,7 +95,7 @@ foreach(PROTO_FILE IN LISTS proto_java_files)
|
||||
VERBATIM)
|
||||
list(APPEND PROTO_JAVAS ${PROTO_JAVA})
|
||||
endforeach()
|
||||
add_custom_target(Java${PROJECT_NAME}_proto DEPENDS ${PROTO_JAVAS} ortools::ortools)
|
||||
add_custom_target(Java${PROJECT_NAME}_proto DEPENDS ${PROTO_JAVAS} ${PROJECT_NAMESPACE}::ortools)
|
||||
|
||||
# Create the native library
|
||||
add_library(jniortools SHARED "")
|
||||
|
||||
@@ -5,7 +5,7 @@ endif()
|
||||
# Use latest UseSWIG module (3.14) and Python3 module (3.18)
|
||||
cmake_minimum_required(VERSION 3.18)
|
||||
|
||||
if(NOT TARGET ortools::ortools)
|
||||
if(NOT TARGET ${PROJECT_NAMESPACE}::ortools)
|
||||
message(FATAL_ERROR "Python: missing ortools TARGET")
|
||||
endif()
|
||||
|
||||
@@ -144,10 +144,10 @@ foreach(PROTO_FILE IN LISTS proto_py_files)
|
||||
VERBATIM)
|
||||
list(APPEND PROTO_PYS ${PROTO_PY})
|
||||
endforeach()
|
||||
add_custom_target(Py${PROJECT_NAME}_proto DEPENDS ${PROTO_PYS} ortools::ortools)
|
||||
add_custom_target(Py${PROJECT_NAME}_proto DEPENDS ${PROTO_PYS} ${PROJECT_NAMESPACE}::ortools)
|
||||
|
||||
# CMake will remove all '-D' prefix (i.e. -DUSE_FOO become USE_FOO)
|
||||
#get_target_property(FLAGS ortools::ortools COMPILE_DEFINITIONS)
|
||||
#get_target_property(FLAGS ${PROJECT_NAMESPACE}::ortools COMPILE_DEFINITIONS)
|
||||
set(FLAGS -DUSE_BOP -DUSE_GLOP -DABSL_MUST_USE_RESULT)
|
||||
if(USE_SCIP)
|
||||
list(APPEND FLAGS "-DUSE_SCIP")
|
||||
@@ -168,30 +168,30 @@ endforeach()
|
||||
#######################
|
||||
## Python Packaging ##
|
||||
#######################
|
||||
set(PYTHON_PATH ${PROJECT_BINARY_DIR}/python/${PYTHON_PROJECT})
|
||||
message(STATUS "Python project build path: ${PYTHON_PATH}")
|
||||
set(PYTHON_PROJECT_PATH ${PROJECT_BINARY_DIR}/python/${PYTHON_PROJECT})
|
||||
message(STATUS "Python project build path: ${PYTHON_PROJECT_PATH}")
|
||||
|
||||
#file(MAKE_DIRECTORY python/${PYTHON_PROJECT})
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/__init__.py CONTENT "__version__ = \"${PROJECT_VERSION}\"\n")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/init/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/algorithms/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/graph/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/linear_solver/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/constraint_solver/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/packing/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/sat/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/sat/python/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/scheduling/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PATH}/util/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/__init__.py CONTENT "__version__ = \"${PROJECT_VERSION}\"\n")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/init/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/algorithms/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/graph/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/linear_solver/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/constraint_solver/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/packing/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/sat/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/sat/python/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/scheduling/__init__.py CONTENT "")
|
||||
file(GENERATE OUTPUT ${PYTHON_PROJECT_PATH}/util/__init__.py CONTENT "")
|
||||
|
||||
file(COPY
|
||||
ortools/linear_solver/linear_solver_natural_api.py
|
||||
DESTINATION ${PYTHON_PATH}/linear_solver)
|
||||
DESTINATION ${PYTHON_PROJECT_PATH}/linear_solver)
|
||||
file(COPY
|
||||
ortools/sat/python/cp_model.py
|
||||
ortools/sat/python/cp_model_helper.py
|
||||
ortools/sat/python/visualization.py
|
||||
DESTINATION ${PYTHON_PATH}/sat/python)
|
||||
DESTINATION ${PYTHON_PROJECT_PATH}/sat/python)
|
||||
|
||||
# setup.py.in contains cmake variable e.g. @PYTHON_PROJECT@ and
|
||||
# generator expression e.g. $<TARGET_FILE_NAME:pyFoo>
|
||||
@@ -200,14 +200,14 @@ configure_file(
|
||||
${PROJECT_BINARY_DIR}/python/setup.py.in
|
||||
@ONLY)
|
||||
file(GENERATE
|
||||
OUTPUT ${PROJECT_BINARY_DIR}/python/$<CONFIG>/setup.py
|
||||
OUTPUT ${PROJECT_BINARY_DIR}/python/setup.py
|
||||
INPUT ${PROJECT_BINARY_DIR}/python/setup.py.in)
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT python/setup.py
|
||||
DEPENDS ${PROJECT_BINARY_DIR}/python/$<CONFIG>/setup.py
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ./$<CONFIG>/setup.py setup.py
|
||||
WORKING_DIRECTORY python)
|
||||
#add_custom_command(
|
||||
# OUTPUT python/setup.py
|
||||
# DEPENDS ${PROJECT_BINARY_DIR}/python/setup.py
|
||||
# COMMAND ${CMAKE_COMMAND} -E copy setup.py setup.py
|
||||
# WORKING_DIRECTORY python)
|
||||
|
||||
configure_file(
|
||||
${PROJECT_SOURCE_DIR}/tools/README.pypi.txt
|
||||
@@ -242,15 +242,16 @@ add_custom_command(
|
||||
#COMMAND ${Python3_EXECUTABLE} setup.py bdist_egg bdist_wheel
|
||||
COMMAND ${Python3_EXECUTABLE} setup.py bdist_wheel
|
||||
MAIN_DEPENDENCY
|
||||
ortools # can't use TARGET alias here
|
||||
ortools/python/setup.py.in
|
||||
DEPENDS
|
||||
python/setup.py
|
||||
Py${PROJECT_NAME}_proto
|
||||
${PROJECT_NAMESPACE}::ortools
|
||||
BYPRODUCTS
|
||||
python/${PYTHON_PROJECT}
|
||||
python/${PYTHON_PROJECT}.egg-info
|
||||
python/build
|
||||
python/dist
|
||||
python/${PYTHON_PROJECT}.egg-info
|
||||
WORKING_DIRECTORY python
|
||||
COMMAND_EXPAND_LISTS)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user