cmake: BZip2 fixup
This commit is contained in:
@@ -80,6 +80,7 @@ if(BUILD_BZip2)
|
||||
message(CHECK_START "Fetching BZip2")
|
||||
list(APPEND CMAKE_MESSAGE_INDENT " ")
|
||||
set(ENABLE_LIB_ONLY ON)
|
||||
set(ENABLE_TESTS OFF)
|
||||
FetchContent_Declare(
|
||||
BZip2
|
||||
GIT_REPOSITORY "https://gitlab.com/bzip2/bzip2.git"
|
||||
|
||||
@@ -379,6 +379,9 @@ set(is_not_windows "$<NOT:$<PLATFORM_ID:Windows>>")
|
||||
set(need_unix_zlib_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_ZLIB}>>")
|
||||
set(need_windows_zlib_lib "$<AND:${is_windows},$<BOOL:${BUILD_ZLIB}>>")
|
||||
|
||||
set(need_unix_bzip2_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_BZip2}>>")
|
||||
set(need_windows_bzip2_lib "$<AND:${is_windows},$<BOOL:${BUILD_BZip2}>>")
|
||||
|
||||
set(need_unix_absl_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_absl}>>")
|
||||
set(need_windows_absl_lib "$<AND:${is_windows},$<BOOL:${BUILD_absl}>>")
|
||||
|
||||
|
||||
@@ -282,6 +282,9 @@ set(is_not_windows "$<NOT:$<PLATFORM_ID:Windows>>")
|
||||
set(need_unix_zlib_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_ZLIB}>>")
|
||||
set(need_windows_zlib_lib "$<AND:${is_windows},$<BOOL:${BUILD_ZLIB}>>")
|
||||
|
||||
set(need_unix_bzip2_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_BZip2}>>")
|
||||
set(need_windows_bzip2_lib "$<AND:${is_windows},$<BOOL:${BUILD_BZip2}>>")
|
||||
|
||||
set(need_unix_absl_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_absl}>>")
|
||||
set(need_windows_absl_lib "$<AND:${is_windows},$<BOOL:${BUILD_absl}>>")
|
||||
|
||||
@@ -316,6 +319,11 @@ add_custom_command(
|
||||
$<${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_BZip2}>,copy,true>
|
||||
$<${need_unix_bzip2_lib}:$<TARGET_SONAME_FILE:BZip2::BZip2>>
|
||||
$<${need_windows_bzip2_lib}:$<TARGET_FILE:BZip2::BZip2>>
|
||||
${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>>
|
||||
|
||||
@@ -442,6 +442,9 @@ set(is_not_windows "$<NOT:$<PLATFORM_ID:Windows>>")
|
||||
set(need_unix_zlib_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_ZLIB}>>")
|
||||
set(need_windows_zlib_lib "$<AND:${is_windows},$<BOOL:${BUILD_ZLIB}>>")
|
||||
|
||||
set(need_unix_bzip2_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_BZip2}>>")
|
||||
set(need_windows_bzip2_lib "$<AND:${is_windows},$<BOOL:${BUILD_BZip2}>>")
|
||||
|
||||
set(need_unix_absl_lib "$<AND:${is_not_windows},$<BOOL:${BUILD_absl}>>")
|
||||
set(need_windows_absl_lib "$<AND:${is_windows},$<BOOL:${BUILD_absl}>>")
|
||||
|
||||
@@ -476,6 +479,11 @@ add_custom_command(
|
||||
$<${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_BZip2}>,copy,true>
|
||||
$<${need_unix_bzip2_lib}:$<TARGET_SONAME_FILE:BZip2::BZip2>>
|
||||
$<${need_windows_bzip2_lib}:$<TARGET_FILE:BZip2::BZip2>>
|
||||
${PYTHON_PROJECT}/.libs
|
||||
COMMAND ${CMAKE_COMMAND} -E
|
||||
$<IF:$<BOOL:${BUILD_absl}>,copy,true>
|
||||
$<${need_unix_absl_lib}:$<TARGET_SONAME_FILE:absl::base>>
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
$<@need_unix_zlib_lib@:;$<TARGET_SONAME_FILE:ZLIB::ZLIB>>
|
||||
$<@need_windows_zlib_lib@:;$<TARGET_FILE:ZLIB::ZLIB>>
|
||||
|
||||
$<@need_unix_bzip2_lib@:;$<TARGET_SONAME_FILE:BZip2::BZip2>>
|
||||
$<@need_windows_bzip2_lib@:;$<TARGET_FILE:BZip2::BZip2>>
|
||||
|
||||
$<@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>>
|
||||
|
||||
@@ -145,7 +145,9 @@ public class Loader {
|
||||
Path tempPath = unpackNativeResources(resourceURI);
|
||||
// libraries order does matter <LibraryName, isMandatory> !
|
||||
List<Map.Entry<String, Boolean>> dlls =
|
||||
Arrays.asList((new AbstractMap.SimpleEntry("zlib1", true)),
|
||||
Arrays.asList(
|
||||
(new AbstractMap.SimpleEntry("zlib1", true)),
|
||||
(new AbstractMap.SimpleEntry("bz2", true)),
|
||||
(new AbstractMap.SimpleEntry("abseil_dll", true)),
|
||||
(new AbstractMap.SimpleEntry("re2", true)),
|
||||
(new AbstractMap.SimpleEntry("libutf8_validity", true)),
|
||||
|
||||
@@ -57,7 +57,7 @@ def _load_ortools_libs():
|
||||
except:
|
||||
logger.error(f"ImportError: Cannot import WinDLL")
|
||||
else:
|
||||
for dll in ["zlib1.dll",
|
||||
for dll in ["zlib1.dll", "bz2.dll",
|
||||
"abseil_dll.dll", "utf8_validity.dll", "re2.dll", "libprotobuf.dll",
|
||||
"highs.dll", "libscip.dll",
|
||||
"ortools.dll"]:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index c4b0b6e..bd3aca3 100644
|
||||
index c4b0b6e..30f7652 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -1,5 +1,10 @@
|
||||
@@ -24,39 +24,48 @@ index c4b0b6e..bd3aca3 100644
|
||||
|
||||
# Windows resource file
|
||||
set(BZ2_RES "")
|
||||
@@ -301,10 +306,14 @@ if(ENABLE_SHARED_LIB)
|
||||
@@ -299,21 +304,30 @@ endif()
|
||||
|
||||
if(ENABLE_SHARED_LIB)
|
||||
# The libbz2 shared library.
|
||||
add_library(bz2 SHARED ${BZ2_RES})
|
||||
target_sources(bz2
|
||||
- add_library(bz2 SHARED ${BZ2_RES})
|
||||
- target_sources(bz2
|
||||
- PRIVATE ${BZ2_SOURCES}
|
||||
- ${CMAKE_CURRENT_SOURCE_DIR}/libbz2.def
|
||||
- PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/bzlib_private.h
|
||||
- INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/bzlib.h)
|
||||
+ add_library(BZip2 SHARED ${BZ2_RES})
|
||||
+ target_sources(BZip2
|
||||
+ PRIVATE ${BZ2_SOURCES}
|
||||
+ libbz2.def
|
||||
+ bzlib_private.h
|
||||
+ bzlib.h)
|
||||
+ target_include_directories(bz2 PUBLIC
|
||||
+ target_include_directories(BZip2 PUBLIC
|
||||
+ $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
|
||||
+ $<INSTALL_INTERFACE:include>
|
||||
+ )
|
||||
|
||||
# Always use '-fPIC'/'-fPIE' option for shared libraries.
|
||||
set_property(TARGET bz2 PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
@@ -312,8 +321,11 @@ if(ENABLE_SHARED_LIB)
|
||||
set_target_properties(bz2 PROPERTIES
|
||||
- set_property(TARGET bz2 PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
+ set_property(TARGET BZip2 PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
- set_target_properties(bz2 PROPERTIES
|
||||
+ set_target_properties(BZip2 PROPERTIES
|
||||
COMPILE_FLAGS "${WARNCFLAGS}"
|
||||
VERSION ${LT_VERSION} SOVERSION ${LT_SOVERSION})
|
||||
- VERSION ${LT_VERSION} SOVERSION ${LT_SOVERSION})
|
||||
- install(TARGETS bz2 DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
+ install(TARGETS bz2
|
||||
+ VERSION ${LT_VERSION} SOVERSION ${LT_SOVERSION}
|
||||
+ OUTPUT_NAME bz2
|
||||
+ )
|
||||
+ install(TARGETS BZip2
|
||||
+ EXPORT ${PROJECT_NAME}Targets
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES bzlib.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
+ add_library(BZip2::BZip2 ALIAS bz2)
|
||||
+ add_library(BZip2::BZip2 ALIAS BZip2)
|
||||
|
||||
if(USE_OLD_SONAME)
|
||||
# Hack to support the old libbz2.so.1.0 version by including an extra copy.
|
||||
@@ -323,16 +335,22 @@ if(ENABLE_SHARED_LIB)
|
||||
@@ -323,16 +337,22 @@ if(ENABLE_SHARED_LIB)
|
||||
add_library(bz2_old_soname SHARED ${BZ2_RES})
|
||||
target_sources(bz2_old_soname
|
||||
PRIVATE ${BZ2_SOURCES}
|
||||
@@ -83,7 +92,7 @@ index c4b0b6e..bd3aca3 100644
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -341,9 +359,13 @@ if(ENABLE_STATIC_LIB)
|
||||
@@ -341,9 +361,13 @@ if(ENABLE_STATIC_LIB)
|
||||
# The libbz2 static library.
|
||||
add_library(bz2_static STATIC)
|
||||
target_sources(bz2_static
|
||||
@@ -100,7 +109,7 @@ index c4b0b6e..bd3aca3 100644
|
||||
|
||||
# Use '-fPIC'/'-fPIE' option for static libraries by default.
|
||||
# You may build with ENABLE_STATIC_LIB_IS_PIC=OFF to disable PIC for the static library.
|
||||
@@ -357,8 +379,13 @@ if(ENABLE_STATIC_LIB)
|
||||
@@ -357,8 +381,13 @@ if(ENABLE_STATIC_LIB)
|
||||
SOVERSION ${LT_SOVERSION}
|
||||
ARCHIVE_OUTPUT_NAME bz2_static)
|
||||
target_compile_definitions(bz2_static PUBLIC BZ2_STATICLIB)
|
||||
@@ -109,13 +118,13 @@ index c4b0b6e..bd3aca3 100644
|
||||
+ EXPORT ${PROJECT_NAME}Targets
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES bzlib.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
+ if(NOT TARGET bz2)
|
||||
+ if(NOT TARGET BZip2)
|
||||
+ add_library(BZip2::BZip2 ALIAS bz2_static)
|
||||
+ endif()
|
||||
endif()
|
||||
|
||||
if(ENABLE_APP)
|
||||
@@ -373,7 +400,9 @@ if(ENABLE_APP)
|
||||
@@ -373,7 +402,9 @@ if(ENABLE_APP)
|
||||
else()
|
||||
target_compile_definitions(bzip2 PUBLIC BZ_LCCWIN32=0 BZ_UNIX)
|
||||
endif()
|
||||
@@ -126,7 +135,7 @@ index c4b0b6e..bd3aca3 100644
|
||||
|
||||
# Create bzip2 copies bzcat and bunzip.
|
||||
# The default behavior is altered in bzip2.c code by checking the program name.
|
||||
@@ -391,7 +420,9 @@ if(ENABLE_APP)
|
||||
@@ -391,7 +422,9 @@ if(ENABLE_APP)
|
||||
else()
|
||||
target_compile_definitions(bzip2recover PUBLIC BZ_LCCWIN32=0 BZ_UNIX)
|
||||
endif()
|
||||
@@ -137,18 +146,20 @@ index c4b0b6e..bd3aca3 100644
|
||||
|
||||
if(ENABLE_EXAMPLES)
|
||||
if(ENABLE_SHARED_LIB)
|
||||
@@ -400,7 +431,9 @@ if(ENABLE_APP)
|
||||
@@ -399,8 +432,10 @@ if(ENABLE_APP)
|
||||
add_executable(dlltest)
|
||||
target_sources(dlltest
|
||||
PRIVATE dlltest.c)
|
||||
target_link_libraries(dlltest bz2)
|
||||
- target_link_libraries(dlltest bz2)
|
||||
- install(TARGETS dlltest DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
+ target_link_libraries(dlltest BZip2)
|
||||
+ install(TARGETS dlltest
|
||||
+ EXPORT ${PROJECT_NAME}Targets
|
||||
+ DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -419,6 +452,10 @@ if(ENABLE_APP)
|
||||
@@ -419,6 +454,10 @@ if(ENABLE_APP)
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user