diff --git a/cmake/cpp.cmake b/cmake/cpp.cmake index a4f3980d39..e4e5519a05 100644 --- a/cmake/cpp.cmake +++ b/cmake/cpp.cmake @@ -720,6 +720,9 @@ target_link_libraries(${PROJECT_NAME} PUBLIC ${PDLP_DEPS} ${SCIP_DEPS} Threads::Threads) +if(UNIX AND NOT APPLE AND USE_HIGHS AND BUILD_HIGHS) + target_link_options(${PROJECT_NAME} PRIVATE "LINKER:--exclude-libs,libhighs.a") +endif() if(WIN32) target_link_libraries(${PROJECT_NAME} PUBLIC psapi.lib ws2_32.lib) endif() diff --git a/cmake/dependencies/CMakeLists.txt b/cmake/dependencies/CMakeLists.txt index 7fabed5221..828ae4a686 100644 --- a/cmake/dependencies/CMakeLists.txt +++ b/cmake/dependencies/CMakeLists.txt @@ -321,7 +321,15 @@ if(BUILD_HIGHS) ) set(CI OFF) # disable CI tests set(BUILD_EXAMPLES OFF) + if(UNIX AND NOT APPLE) + set(_saved_build_shared_libs ${BUILD_SHARED_LIBS}) + set(BUILD_SHARED_LIBS OFF) + endif() FetchContent_MakeAvailable(highs) + if(UNIX AND NOT APPLE) + set(BUILD_SHARED_LIBS ${_saved_build_shared_libs}) + unset(_saved_build_shared_libs) + endif() list(POP_BACK CMAKE_MESSAGE_INDENT) message(CHECK_PASS "fetched") endif() diff --git a/cmake/dotnet.cmake b/cmake/dotnet.cmake index 983f5e0948..6618924817 100644 --- a/cmake/dotnet.cmake +++ b/cmake/dotnet.cmake @@ -405,8 +405,9 @@ set(need_clp_lib "$>") set(need_cgl_lib "$>") set(need_cbc_lib "$>") -set(need_unix_highs_lib "$>") -set(need_windows_highs_lib "$>") +set(is_highs_shared "$,SHARED_LIBRARY>") +set(need_unix_highs_lib "$,${is_highs_shared}>") +set(need_windows_highs_lib "$,${is_highs_shared}>") set(need_unix_scip_lib "$>") set(need_windows_scip_lib "$>") diff --git a/cmake/java.cmake b/cmake/java.cmake index 74e30acabb..81c8a56c73 100644 --- a/cmake/java.cmake +++ b/cmake/java.cmake @@ -325,8 +325,9 @@ set(need_unix_clp_lib "$>") set(need_unix_cgl_lib "$>") set(need_unix_cbc_lib "$>") -set(need_unix_highs_lib "$>") -set(need_windows_highs_lib "$>") +set(is_highs_shared "$,SHARED_LIBRARY>") +set(need_unix_highs_lib "$,${is_highs_shared}>") +set(need_windows_highs_lib "$,${is_highs_shared}>") set(need_unix_scip_lib "$>") set(need_windows_scip_lib "$>") @@ -477,7 +478,7 @@ add_custom_command( ${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/ COMMAND ${CMAKE_COMMAND} -E - $,copy,true> + $,copy,true> $<${need_unix_highs_lib}:$> $<${need_windows_highs_lib}:$> ${JAVA_RESSOURCES_PATH}/${JAVA_NATIVE_PROJECT}/ diff --git a/cmake/python.cmake b/cmake/python.cmake index c7065ce237..a2c8cda932 100644 --- a/cmake/python.cmake +++ b/cmake/python.cmake @@ -483,8 +483,9 @@ set(need_unix_clp_lib "$>") set(need_unix_cgl_lib "$>") set(need_unix_cbc_lib "$>") -set(need_unix_highs_lib "$>") -set(need_windows_highs_lib "$>") +set(is_highs_shared "$,SHARED_LIBRARY>") +set(need_unix_highs_lib "$,${is_highs_shared}>") +set(need_windows_highs_lib "$,${is_highs_shared}>") set(need_unix_scip_lib "$>") set(need_windows_scip_lib "$>") @@ -638,7 +639,7 @@ add_custom_command( ${PYTHON_PROJECT}/.libs COMMAND ${CMAKE_COMMAND} -E - $,copy,true> + $,copy,true> $<${need_unix_highs_lib}:$> $<${need_windows_highs_lib}:$> ${PYTHON_PROJECT}/.libs