cmake: Bump Protobuf to v28.3 and use shared libraries
This commit is contained in:
@@ -13,7 +13,7 @@ jobs:
|
||||
{generator: "Visual Studio 17 2022", config: Debug, build_target: ALL_BUILD, test_target: RUN_TESTS, install_target: INSTALL},
|
||||
]
|
||||
fail-fast: false
|
||||
name: Windows • ${{ matrix.cmake.generator }} (${{ matrix.cmake.config }}) • C++
|
||||
name: Windows • VS 2022 (${{ matrix.cmake.config }}) • C++
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
run: >
|
||||
cmake -S. -Bbuild
|
||||
-G "${{ matrix.cmake.generator }}"
|
||||
-DCMAKE_BUILD_TYPE=${{ matrix.cmake.config }}
|
||||
-DCMAKE_CONFIGURATION_TYPES=${{ matrix.cmake.config }}
|
||||
-DBUILD_DEPS=ON
|
||||
-DCMAKE_INSTALL_PREFIX=install
|
||||
- name: Build
|
||||
|
||||
@@ -12,7 +12,7 @@ jobs:
|
||||
{generator: "Visual Studio 17 2022", config: Release, build_target: ALL_BUILD, test_target: RUN_TESTS, install_target: INSTALL},
|
||||
]
|
||||
fail-fast: false
|
||||
name: Windows • ${{ matrix.cmake.generator }} • .Net
|
||||
name: Windows • VS 2022 • .Net
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
{distrib: 'microsoft', version: '21'}, # 2028/09
|
||||
]
|
||||
fail-fast: false
|
||||
name: Windows • ${{ matrix.cmake.generator }} • ${{ matrix.java.distrib }}-${{ matrix.java.version }}
|
||||
name: Windows • VS 2022 • ${{ matrix.java.distrib }}-${{ matrix.java.version }}
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
{version: "3.13", dir: Python313},
|
||||
]
|
||||
fail-fast: false
|
||||
name: Windows • ${{ matrix.cmake.generator }} • Python-${{ matrix.python.version }}
|
||||
name: Windows • VS 2022 • Python-${{ matrix.python.version }}
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
|
||||
2
.github/workflows/arm64_macos_cmake_cpp.yml
vendored
2
.github/workflows/arm64_macos_cmake_cpp.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
||||
]
|
||||
fail-fast: false
|
||||
name: MacOS • ${{ matrix.cmake.generator }} • C++
|
||||
runs-on: macos-latest # macos arm64 based runner
|
||||
runs-on: macos-latest # macos M1 based runner
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Check cmake
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
ZLIB=1.3.1
|
||||
abseil-cpp=20240722.0
|
||||
Protobuf=v26.1
|
||||
Protobuf=v28.3
|
||||
Eigen=3.4.0
|
||||
Re2=2024-04-01
|
||||
CoinUtils=2.11.6
|
||||
|
||||
@@ -246,6 +246,8 @@ cmake -S. -Bbuild -LH
|
||||
| `USE_DOTNET_CORE_31` | OFF | Enable .Net Core 3.1 LTS support<br>Only available if `BUILD_DOTNET=ON` and not targeting arm64 platform |
|
||||
| `USE_DOTNET_6` | ON | Enable .Net 6 LTS support<br>Only available if `BUILD_DOTNET=ON` |
|
||||
| `USE_DOTNET_7` | OFF | Enable .Net 7 support<br>Only available if `BUILD_DOTNET=ON` |
|
||||
| `USE_DOTNET_8` | OFF | Enable .Net 8 LTS support<br>Only available if `BUILD_DOTNET=ON` |
|
||||
| `USE_DOTNET_9` | OFF | Enable .Net 9 support<br>Only available if `BUILD_DOTNET=ON` |
|
||||
| `UNIVERSAL_DOTNET_PACKAGE` | OFF | Build a multi platform package (i.e. `Google.OrTools` will depends on all runtime packages)<br>Only available if `BUILD_DOTNET=ON` |
|
||||
| | | |
|
||||
| `SKIP_GPG` | ON | Disable GPG sign<br>Only available if `BUILD_JAVA=ON` |
|
||||
|
||||
@@ -49,7 +49,7 @@ endif()
|
||||
include(FetchContent)
|
||||
set(FETCHCONTENT_QUIET OFF)
|
||||
set(FETCHCONTENT_UPDATES_DISCONNECTED ON)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
set(BUILD_TESTING OFF)
|
||||
set(CMAKE_Fortran_COMPILER OFF)
|
||||
@@ -101,17 +101,17 @@ if(BUILD_Protobuf)
|
||||
message(CHECK_START "Fetching Protobuf")
|
||||
list(APPEND CMAKE_MESSAGE_INDENT " ")
|
||||
set(protobuf_BUILD_TESTS OFF)
|
||||
set(protobuf_BUILD_SHARED_LIBS OFF)
|
||||
set(protobuf_BUILD_SHARED_LIBS ON)
|
||||
set(protobuf_BUILD_EXPORT OFF)
|
||||
set(protobuf_MSVC_STATIC_RUNTIME OFF)
|
||||
#set(protobuf_BUILD_LIBUPB ON)
|
||||
FetchContent_Declare(
|
||||
Protobuf
|
||||
GIT_REPOSITORY "https://github.com/protocolbuffers/protobuf.git"
|
||||
GIT_TAG "v26.1"
|
||||
GIT_TAG "v28.3"
|
||||
GIT_SHALLOW TRUE
|
||||
GIT_SUBMODULES ""
|
||||
PATCH_COMMAND git apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/../../patches/protobuf-v26.1.patch"
|
||||
PATCH_COMMAND git apply --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/../../patches/protobuf-v28.3.patch"
|
||||
)
|
||||
FetchContent_MakeAvailable(Protobuf)
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
@@ -295,6 +295,9 @@ endif()
|
||||
# ##############################################################################
|
||||
# Coin-OR does not support C++17/C++20 (use of 'register' storage class specifier)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
if(WIN32)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
endif()
|
||||
|
||||
if(BUILD_CoinUtils)
|
||||
message(CHECK_START "Fetching CoinUtils")
|
||||
@@ -388,6 +391,9 @@ if(BUILD_Cbc)
|
||||
message(CHECK_PASS "fetched")
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
endif()
|
||||
if(MSVC)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
else()
|
||||
@@ -412,7 +418,14 @@ if(BUILD_googletest)
|
||||
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
|
||||
set(INSTALL_GTEST OFF)
|
||||
set(GTEST_HAS_ABSL ON)
|
||||
if(WIN32)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
endif()
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
if(WIN32)
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
endif()
|
||||
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
message(CHECK_PASS "fetched")
|
||||
endif()
|
||||
@@ -430,7 +443,13 @@ if(BUILD_benchmark)
|
||||
set(BENCHMARK_ENABLE_TESTING OFF)
|
||||
set(BENCHMARK_ENABLE_WERROR OFF)
|
||||
set(BENCHMARK_ENABLE_INSTALL OFF)
|
||||
if(WIN32)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
endif()
|
||||
FetchContent_MakeAvailable(benchmark)
|
||||
if(WIN32)
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
endif()
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
message(CHECK_PASS "fetched")
|
||||
endif()
|
||||
|
||||
@@ -121,9 +121,9 @@ set(protobuf_WITH_ZLIB OFF)
|
||||
FetchContent_Declare(
|
||||
protobuf
|
||||
GIT_REPOSITORY "https://github.com/protocolbuffers/protobuf.git"
|
||||
GIT_TAG "v26.1"
|
||||
GIT_TAG "v28.3"
|
||||
GIT_SUBMODULES ""
|
||||
PATCH_COMMAND git apply "${CMAKE_CURRENT_LIST_DIR}/@PATCHES_PATH@/protobuf-v26.1.patch")
|
||||
PATCH_COMMAND git apply "${CMAKE_CURRENT_LIST_DIR}/@PATCHES_PATH@/protobuf-v28.3.patch")
|
||||
FetchContent_MakeAvailable(protobuf)
|
||||
list(POP_BACK CMAKE_MESSAGE_INDENT)
|
||||
message(CHECK_PASS "fetched")
|
||||
|
||||
139
cmake/java.cmake
139
cmake/java.cmake
@@ -306,6 +306,145 @@ add_custom_command(
|
||||
$<TARGET_FILE:jni${JAVA_ARTIFACT}>
|
||||
$<${is_ortools_shared}:$<TARGET_SONAME_FILE:ortools>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<BOOL:${BUILD_ZLIB}>,copy,true>
|
||||
$<${need_unix_zlib_lib}:$<TARGET_SONAME_FILE:ZLIB::ZLIB>>
|
||||
$<${need_windows_zlib_lib}:$<TARGET_FILE:ZLIB::ZLIB>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<BOOL:${BUILD_absl}>,copy,true>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::base>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::bad_any_cast_impl>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::bad_optional_access>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::bad_variant_access>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::city>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::civil_time>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cord>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cord_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cordz_functions>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cordz_handle>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cordz_info>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::crc32c>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::crc_cord_state>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::crc_cpu_detect>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::crc_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::debugging_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::decode_rust_punycode>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::demangle_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::demangle_rust>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::die_if_null>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::examine_stack>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::exponential_biased>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_commandlineflag>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_commandlineflag_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_config>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_marshalling>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_parse>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_private_handle_accessor>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_program_name>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_reflection>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_usage>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_usage_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::graphcycles_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::hash>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::hashtablez_sampler>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::int128>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::kernel_timeout_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::leak_check>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_entry>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_flags>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_globals>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_initialize>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_check_op>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_conditions>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_fnmatch>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_format>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_globals>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_log_sink_set>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_message>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_nullguard>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_proto>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_severity>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_sink>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::low_level_hash>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::malloc_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_distributions>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_platform>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_pool_urbg>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_randen>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_randen_hwaes>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_randen_hwaes_impl>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_randen_slow>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_seed_material>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_seed_gen_exception>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_seed_sequences>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::raw_hash_set>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::raw_logging_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::spinlock_wait>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::stacktrace>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::status>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::statusor>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::str_format_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::strerror>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::string_view>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::strings>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::strings_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::symbolize>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::synchronization>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::throw_delegate>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::time>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::time_zone>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::utf8_for_code_point>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::vlog_config_internal>>
|
||||
$<${need_windows_absl_lib}:$<TARGET_FILE:absl::abseil_dll>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<BOOL:${BUILD_re2}>,copy,true>
|
||||
$<${need_unix_re2_lib}:$<TARGET_SONAME_FILE:re2::re2>>
|
||||
$<${need_windows_re2_lib}:$<TARGET_FILE:re2::re2>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<BOOL:${BUILD_Protobuf}>,copy,true>
|
||||
$<${need_unix_protobuf_lib}:$<TARGET_SONAME_FILE:protobuf::libprotobuf>>
|
||||
$<${need_unix_protobuf_lib}:$<TARGET_SONAME_FILE:utf8_validity>>
|
||||
$<${need_windows_protobuf_lib}:$<TARGET_FILE:protobuf::libprotobuf>>
|
||||
$<${need_windows_protobuf_lib}:$<TARGET_FILE:utf8_validity>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_coinutils_lib},copy,true>
|
||||
$<${need_unix_coinutils_lib}:$<TARGET_SONAME_FILE:Coin::CoinUtils>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_osi_lib},copy,true>
|
||||
$<${need_unix_osi_lib}:$<TARGET_SONAME_FILE:Coin::Osi>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_clp_lib},copy,true>
|
||||
$<${need_unix_clp_lib}:$<TARGET_SONAME_FILE:Coin::Clp>>
|
||||
$<${need_unix_clp_lib}:$<TARGET_SONAME_FILE:Coin::OsiClp>>
|
||||
$<${need_unix_clp_lib}:$<TARGET_SONAME_FILE:Coin::ClpSolver>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_cgl_lib},copy,true>
|
||||
$<${need_unix_cgl_lib}:$<TARGET_SONAME_FILE:Coin::Cgl>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_cbc_lib},copy,true>
|
||||
$<${need_unix_cbc_lib}:$<TARGET_SONAME_FILE:Coin::Cbc>>
|
||||
$<${need_unix_cbc_lib}:$<TARGET_SONAME_FILE:Coin::OsiCbc>>
|
||||
$<${need_unix_cbc_lib}:$<TARGET_SONAME_FILE:Coin::CbcSolver>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<BOOL:${BUILD_HIGHS}>,copy,true>
|
||||
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs>>
|
||||
$<${need_windows_highs_lib}:$<TARGET_FILE:highs>>
|
||||
${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/
|
||||
|
||||
COMMAND ${MAVEN_EXECUTABLE} compile -B
|
||||
COMMAND ${MAVEN_EXECUTABLE} package -B $<$<BOOL:${BUILD_FAT_JAR}>:-Dfatjar=true>
|
||||
COMMAND ${MAVEN_EXECUTABLE} install -B $<$<BOOL:${SKIP_GPG}>:-Dgpg.skip=true>
|
||||
|
||||
@@ -456,9 +456,147 @@ add_custom_command(
|
||||
COMMAND ${CMAKE_COMMAND} -E remove -f ortools_timestamp
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTHON_PROJECT}/.libs
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>,copy,true>
|
||||
$<$<STREQUAL:$<TARGET_PROPERTY:ortools,TYPE>,SHARED_LIBRARY>:$<TARGET_SONAME_FILE:ortools>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
$<IF:$<BOOL:${BUILD_ZLIB}>,copy,true>
|
||||
$<${need_unix_zlib_lib}:$<TARGET_SONAME_FILE:ZLIB::ZLIB>>
|
||||
$<${need_windows_zlib_lib}:$<TARGET_FILE:ZLIB::ZLIB>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<BOOL:${BUILD_absl}>,copy,true>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::base>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::bad_any_cast_impl>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::bad_optional_access>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::bad_variant_access>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::city>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::civil_time>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cord>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cord_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cordz_functions>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cordz_handle>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::cordz_info>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::crc32c>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::crc_cord_state>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::crc_cpu_detect>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::crc_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::debugging_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::decode_rust_punycode>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::demangle_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::demangle_rust>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::die_if_null>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::examine_stack>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::exponential_biased>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_commandlineflag>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_commandlineflag_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_config>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_marshalling>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_parse>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_private_handle_accessor>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_program_name>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_reflection>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_usage>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::flags_usage_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::graphcycles_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::hash>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::hashtablez_sampler>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::int128>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::kernel_timeout_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::leak_check>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_entry>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_flags>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_globals>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_initialize>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_check_op>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_conditions>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_fnmatch>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_format>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_globals>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_log_sink_set>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_message>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_nullguard>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_internal_proto>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_severity>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::log_sink>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::low_level_hash>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::malloc_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_distributions>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_platform>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_pool_urbg>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_randen>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_randen_hwaes>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_randen_hwaes_impl>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_randen_slow>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_internal_seed_material>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_seed_gen_exception>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::random_seed_sequences>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::raw_hash_set>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::raw_logging_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::spinlock_wait>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::stacktrace>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::status>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::statusor>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::str_format_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::strerror>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::string_view>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::strings>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::strings_internal>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::symbolize>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::synchronization>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::throw_delegate>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::time>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::time_zone>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::utf8_for_code_point>>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::vlog_config_internal>>
|
||||
$<${need_windows_absl_lib}:$<TARGET_FILE:absl::abseil_dll>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_re2_lib},copy,true>
|
||||
$<${need_unix_re2_lib}:$<TARGET_SONAME_FILE:re2::re2>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<BOOL:${BUILD_Protobuf}>,copy,true>
|
||||
$<${need_unix_protobuf_lib}:$<TARGET_SONAME_FILE:protobuf::libprotobuf>>
|
||||
$<${need_unix_protobuf_lib}:$<TARGET_SONAME_FILE:utf8_validity>>
|
||||
$<${need_windows_protobuf_lib}:$<TARGET_FILE:protobuf::libprotobuf>>
|
||||
$<${need_windows_protobuf_lib}:$<TARGET_FILE:utf8_validity>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_coinutils_lib},copy,true>
|
||||
$<${need_unix_coinutils_lib}:$<TARGET_SONAME_FILE:Coin::CoinUtils>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_osi_lib},copy,true>
|
||||
$<${need_unix_osi_lib}:$<TARGET_SONAME_FILE:Coin::Osi>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_clp_lib},copy,true>
|
||||
$<${need_unix_clp_lib}:$<TARGET_SONAME_FILE:Coin::Clp>>
|
||||
$<${need_unix_clp_lib}:$<TARGET_SONAME_FILE:Coin::OsiClp>>
|
||||
$<${need_unix_clp_lib}:$<TARGET_SONAME_FILE:Coin::ClpSolver>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_cgl_lib},copy,true>
|
||||
$<${need_unix_cgl_lib}:$<TARGET_SONAME_FILE:Coin::Cgl>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${need_unix_cbc_lib},copy,true>
|
||||
$<${need_unix_cbc_lib}:$<TARGET_SONAME_FILE:Coin::Cbc>>
|
||||
$<${need_unix_cbc_lib}:$<TARGET_SONAME_FILE:Coin::OsiCbc>>
|
||||
$<${need_unix_cbc_lib}:$<TARGET_SONAME_FILE:Coin::CbcSolver>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<BOOL:${BUILD_HIGHS}>,copy,true>
|
||||
$<${need_unix_highs_lib}:$<TARGET_SONAME_FILE:highs>>
|
||||
$<${need_windows_highs_lib}:$<TARGET_FILE:highs>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:${is_ortools_shared},copy,true>
|
||||
$<${is_ortools_shared}:$<TARGET_SONAME_FILE:ortools>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
COMMAND ${CMAKE_COMMAND} -E touch ${PROJECT_BINARY_DIR}/python/ortools_timestamp
|
||||
MAIN_DEPENDENCY
|
||||
ortools/python/setup.py.in
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Google.Protobuf" Version="3.26.1"/>
|
||||
<PackageReference Include="Google.Protobuf" Version="3.28.3"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Need to add required runtime dependencies so Meta-Project will pull runtime Nuget(s) -->
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Google.Protobuf" Version="3.26.1"/>
|
||||
<PackageReference Include="Google.Protobuf" Version="3.28.3"/>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Need to add required runtime dependencies so Meta-Project will pull runtime Nuget(s) -->
|
||||
|
||||
@@ -26,7 +26,113 @@
|
||||
<!-- If ortools is built as a STATIC_LIBRARY (e.g. Windows) then we don't have to include it -->
|
||||
<Content Include="
|
||||
$<TARGET_FILE:google-ortools-native>
|
||||
$<$<STREQUAL:$<TARGET_PROPERTY:@PROJECT_NAME@,TYPE>,SHARED_LIBRARY>:;$<TARGET_SONAME_FILE:@PROJECT_NAME@>>
|
||||
$<@is_ortools_shared@:;$<TARGET_SONAME_FILE:ortools>>
|
||||
|
||||
$<@need_unix_zlib_lib@:;$<TARGET_SONAME_FILE:ZLIB::ZLIB>>
|
||||
$<@need_windows_zlib_lib@:;$<TARGET_FILE:ZLIB::ZLIB>>
|
||||
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::base>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::bad_any_cast_impl>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::bad_optional_access>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::bad_variant_access>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::city>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::civil_time>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::cord>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::cord_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::cordz_functions>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::cordz_handle>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::cordz_info>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::crc32c>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::crc_cord_state>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::crc_cpu_detect>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::crc_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::debugging_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::decode_rust_punycode>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::demangle_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::demangle_rust>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::die_if_null>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::examine_stack>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::exponential_biased>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_commandlineflag>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_commandlineflag_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_config>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_marshalling>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_parse>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_private_handle_accessor>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_program_name>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_reflection>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_usage>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::flags_usage_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::graphcycles_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::hash>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::hashtablez_sampler>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::int128>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::kernel_timeout_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::leak_check>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_entry>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_flags>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_globals>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_initialize>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_internal_check_op>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_internal_conditions>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_internal_fnmatch>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_internal_format>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_internal_globals>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_internal_log_sink_set>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_internal_message>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_internal_nullguard>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_internal_proto>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_severity>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::log_sink>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::low_level_hash>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::malloc_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_distributions>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_internal_platform>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_internal_pool_urbg>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_internal_randen>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_internal_randen_hwaes>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_internal_randen_hwaes_impl>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_internal_randen_slow>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_internal_seed_material>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_seed_gen_exception>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::random_seed_sequences>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::raw_hash_set>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::raw_logging_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::spinlock_wait>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::stacktrace>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::status>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::statusor>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::str_format_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::strerror>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::string_view>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::strings>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::strings_internal>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::symbolize>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::synchronization>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::throw_delegate>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::time>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::time_zone>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::utf8_for_code_point>>
|
||||
$<@need_unix_absl_lib@:;$<TARGET_SONAME_FILE:absl::vlog_config_internal>>
|
||||
$<@need_windows_absl_lib@:;$<TARGET_FILE:absl::abseil_dll>>
|
||||
|
||||
$<@need_unix_re2_lib@:;$<TARGET_SONAME_FILE:re2::re2>>
|
||||
$<@need_windows_re2_lib@:;$<TARGET_FILE:re2::re2>>
|
||||
|
||||
$<@need_unix_protobuf_lib@:;$<TARGET_SONAME_FILE:protobuf::libprotobuf>>
|
||||
$<@need_unix_protobuf_lib@:;$<TARGET_SONAME_FILE:utf8_validity>>
|
||||
$<@need_windows_protobuf_lib@:;$<TARGET_FILE:protobuf::libprotobuf>>
|
||||
$<@need_windows_protobuf_lib@:;$<TARGET_FILE:utf8_validity>>
|
||||
|
||||
$<@need_coinutils_lib@:;$<TARGET_SONAME_FILE:Coin::CoinUtils>>
|
||||
$<@need_osi_lib@:;$<TARGET_SONAME_FILE:Coin::Osi>>
|
||||
$<@need_clp_lib@:;$<TARGET_SONAME_FILE:Coin::Clp>;$<TARGET_SONAME_FILE:Coin::OsiClp>;$<TARGET_SONAME_FILE:Coin::ClpSolver>>
|
||||
$<@need_cgl_lib@:;$<TARGET_SONAME_FILE:Coin::Cgl>>
|
||||
$<@need_cbc_lib@:;$<TARGET_SONAME_FILE:Coin::Cbc>;$<TARGET_SONAME_FILE:Coin::OsiCbc>;$<TARGET_SONAME_FILE:Coin::CbcSolver>>
|
||||
|
||||
$<@need_unix_highs_lib@:;$<TARGET_SONAME_FILE:highs>>
|
||||
$<@need_windows_highs_lib@:;$<TARGET_FILE:highs>>
|
||||
">
|
||||
<PackagePath>runtimes/@DOTNET_RID@/native/%(Filename)%(Extension)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
|
||||
@@ -131,8 +131,37 @@ public class Loader {
|
||||
loaded = true;
|
||||
return;
|
||||
} catch (IOException | UnsatisfiedLinkError e) {
|
||||
// Do nothing.
|
||||
// System.out.println("Can't System.load(jniortools)");
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
// On windows, try to load each libraries one by one.
|
||||
// System.out.println("Prefix: " + Platform.RESOURCE_PREFIX);
|
||||
if (Platform.RESOURCE_PREFIX.equals("win32-x86-64")) {
|
||||
try {
|
||||
URI resourceURI = getNativeResourceURI();
|
||||
Path tempPath = unpackNativeResources(resourceURI);
|
||||
// libraries order does matter !
|
||||
List<String> dlls = Arrays.asList(
|
||||
"zlib1", "abseil_dll", "re2", "utf8_validity", "libprotobuf", "highs", "jniortools");
|
||||
for (String dll : dlls) {
|
||||
try {
|
||||
// System.out.println("System.load(" + dll + ")");
|
||||
System.load(tempPath.resolve(RESOURCE_PATH)
|
||||
.resolve(System.mapLibraryName(dll))
|
||||
.toAbsolutePath()
|
||||
.toString());
|
||||
} catch (UnsatisfiedLinkError e) {
|
||||
System.out.println("System.load(" + dll + ") failed!");
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
loaded = true;
|
||||
return;
|
||||
} catch (IOException e) {
|
||||
// Do nothing.
|
||||
// System.out.println("unpack failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
<version>4.26.1</version>
|
||||
<version>4.28.3</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
<version>4.26.1</version>
|
||||
<version>4.28.3</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
@@ -43,3 +43,23 @@ This repository contains several component:
|
||||
|
||||
__docformat__ = "markdown" # explicitly disable rST processing above.
|
||||
__version__ = "@PROJECT_VERSION@"
|
||||
|
||||
import os
|
||||
|
||||
def _load_ortools_libs():
|
||||
"""Load shared libraries on Windows"""
|
||||
if os.name == "nt":
|
||||
try:
|
||||
from ctypes import WinDLL
|
||||
basedir = os.path.dirname(__file__)
|
||||
except:
|
||||
pass
|
||||
else:
|
||||
for dll in ["zlib1.dll", "abseil_dll.dll", "utf8_validity.dll", "libprotobuf.dll", "highs.dll"]:
|
||||
dll_path = os.path.join(basedir, ".libs", dll)
|
||||
if os.path.exists(dll_path):
|
||||
print(f"load {dll_path}...")
|
||||
WinDLL(dll_path)
|
||||
|
||||
|
||||
_load_ortools_libs()
|
||||
|
||||
@@ -46,11 +46,14 @@ setup(
|
||||
'absl-py >= 2.0.0',
|
||||
'numpy >= 1.13.3',
|
||||
'pandas >= 2.0.0',
|
||||
'protobuf >= 5.26.1,<5.27',
|
||||
'protobuf >= 5.28.3,<5.29',
|
||||
'immutabledict >= 3.0.0',
|
||||
],
|
||||
package_data={
|
||||
'@PYTHON_PROJECT@':[$<$<STREQUAL:$<TARGET_PROPERTY:@PROJECT_NAME@,TYPE>,SHARED_LIBRARY>:'.libs/*','../$<TARGET_SONAME_FILE_NAME:@PROJECT_NAME@>'>],
|
||||
'@PYTHON_PROJECT@':[
|
||||
'.libs/*',
|
||||
$<$<STREQUAL:$<TARGET_PROPERTY:@PROJECT_NAME@,TYPE>,SHARED_LIBRARY>:'../$<TARGET_SONAME_FILE_NAME:@PROJECT_NAME@>'>
|
||||
],
|
||||
'@PYTHON_PROJECT@.init.python':[
|
||||
'$<TARGET_FILE_NAME:init_pybind11>',
|
||||
'*.pyi'
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
exports_files([
|
||||
"abseil-cpp-20240722.0.patch",
|
||||
"highs-v1.8.0.patch",
|
||||
"protobuf-v26.1.patch",
|
||||
"protobuf-v28.3.patch",
|
||||
"pybind11_abseil.patch",
|
||||
"pybind11_bazel.patch",
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 312eeb928..3e154785b 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -41,7 +41,7 @@ else (BUILD_SHARED_LIBS)
|
||||
endif (BUILD_SHARED_LIBS)
|
||||
option(protobuf_BUILD_SHARED_LIBS "Build Shared Libraries" ${protobuf_BUILD_SHARED_LIBS_DEFAULT})
|
||||
include(CMakeDependentOption)
|
||||
-cmake_dependent_option(protobuf_MSVC_STATIC_RUNTIME "Link static runtime libraries" ON
|
||||
+cmake_dependent_option(protobuf_MSVC_STATIC_RUNTIME "Link static runtime libraries" OFF
|
||||
"NOT protobuf_BUILD_SHARED_LIBS" OFF)
|
||||
set(protobuf_WITH_ZLIB_DEFAULT ON)
|
||||
option(protobuf_WITH_ZLIB "Build with zlib support" ${protobuf_WITH_ZLIB_DEFAULT})
|
||||
@@ -158,24 +158,16 @@ endif()
|
||||
|
||||
set(_protobuf_FIND_ZLIB)
|
||||
if (protobuf_WITH_ZLIB)
|
||||
- find_package(ZLIB)
|
||||
- if (ZLIB_FOUND)
|
||||
- set(HAVE_ZLIB 1)
|
||||
- # FindZLIB module define ZLIB_INCLUDE_DIRS variable
|
||||
- # Set ZLIB_INCLUDE_DIRECTORIES for compatible
|
||||
- set(ZLIB_INCLUDE_DIRECTORIES ${ZLIB_INCLUDE_DIRECTORIES} ${ZLIB_INCLUDE_DIRS})
|
||||
- # Using imported target if exists
|
||||
- if (TARGET ZLIB::ZLIB)
|
||||
- set(ZLIB_LIBRARIES ZLIB::ZLIB)
|
||||
- set(_protobuf_FIND_ZLIB "if(NOT ZLIB_FOUND)\n find_package(ZLIB)\nendif()")
|
||||
- endif (TARGET ZLIB::ZLIB)
|
||||
- else (ZLIB_FOUND)
|
||||
- set(HAVE_ZLIB 0)
|
||||
- # Explicitly set these to empty (override NOT_FOUND) so cmake doesn't
|
||||
- # complain when we use them later.
|
||||
- set(ZLIB_INCLUDE_DIRECTORIES)
|
||||
- set(ZLIB_LIBRARIES)
|
||||
- endif (ZLIB_FOUND)
|
||||
+ if (NOT TARGET ZLIB::ZLIB)
|
||||
+ find_package(ZLIB REQUIRED)
|
||||
+ endif()
|
||||
+ set(HAVE_ZLIB 1)
|
||||
+ # FindZLIB module define ZLIB_INCLUDE_DIRS variable
|
||||
+ # Set ZLIB_INCLUDE_DIRECTORIES for compatible
|
||||
+ set(ZLIB_INCLUDE_DIRECTORIES ${ZLIB_INCLUDE_DIRECTORIES} ${ZLIB_INCLUDE_DIRS})
|
||||
+ # Using imported target if exists
|
||||
+ set(ZLIB_LIBRARIES ZLIB::ZLIB)
|
||||
+ set(_protobuf_FIND_ZLIB "if(NOT ZLIB_FOUND AND NOT TARGET ZLIB::ZLIB)\n find_package(ZLIB REQUIRED)\nendif()")
|
||||
endif (protobuf_WITH_ZLIB)
|
||||
|
||||
# We need to link with libatomic on systems that do not have builtin atomics, or
|
||||
@@ -277,7 +269,6 @@ else (MSVC)
|
||||
endif (MSVC)
|
||||
|
||||
include_directories(
|
||||
- ${ZLIB_INCLUDE_DIRECTORIES}
|
||||
${protobuf_BINARY_DIR}
|
||||
# Support #include-ing other top-level directories, i.e. upb_generator.
|
||||
${protobuf_SOURCE_DIR}
|
||||
diff --git a/cmake/install.cmake b/cmake/install.cmake
|
||||
index 52914a8ea..d7dc5f232 100644
|
||||
--- a/cmake/install.cmake
|
||||
+++ b/cmake/install.cmake
|
||||
@@ -31,6 +31,7 @@ foreach(_library ${_protobuf_libraries})
|
||||
set_property(TARGET ${_library}
|
||||
PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
$<BUILD_INTERFACE:${protobuf_SOURCE_DIR}/src>
|
||||
+ $<BUILD_INTERFACE:${protobuf_SOURCE_DIR}>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
if (UNIX AND NOT APPLE)
|
||||
set_property(TARGET ${_library}
|
||||
Reference in New Issue
Block a user