diff --git a/CMakeLists.txt b/CMakeLists.txt index 22db99a..abf8f65 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,21 +70,18 @@ endif() # targets and compilation flags #*********************************************************************** -file(GLOB ucl_SOURCES "vendor/ucl/src/*.c") -list(SORT ucl_SOURCES) -add_library(upx_vendor_ucl STATIC ${ucl_SOURCES}) -set_property(TARGET upx_vendor_ucl PROPERTY C_STANDARD 11) - file(GLOB zlib_SOURCES "vendor/zlib/*.c") list(SORT zlib_SOURCES) add_library(upx_vendor_zlib STATIC ${zlib_SOURCES}) set_property(TARGET upx_vendor_zlib PROPERTY C_STANDARD 11) +find_package(PkgConfig REQUIRED) +pkg_check_modules(upx_vendor_ucl REQUIRED ucl IMPORTED_TARGET GLOBAL) file(GLOB upx_SOURCES "src/*.cpp" "src/util/*.cpp") list(SORT upx_SOURCES) add_executable(upx ${upx_SOURCES}) set_property(TARGET upx PROPERTY CXX_STANDARD 14) -target_link_libraries(upx upx_vendor_ucl upx_vendor_zlib) +target_link_libraries(upx ucl upx_vendor_zlib) if(UPX_CONFIG_DISABLE_WERROR) set(warn_Werror "") @@ -118,25 +115,8 @@ else() add_definitions(-fno-tree-vectorize) endif() -set(t upx_vendor_ucl) -target_include_directories(${t} PRIVATE vendor/ucl/include vendor/ucl) -if(MSVC) - target_compile_options(${t} PRIVATE -J -W4 ${warn_WX}) -else() - target_compile_options(${t} PRIVATE -Wall -Wextra -Wvla ${warn_Werror}) -endif() - -set(t upx_vendor_zlib) -if(MSVC) - target_compile_options(${t} PRIVATE -DHAVE_STDARG_H -DHAVE_VSNPRINTF -J -W3 ${warn_WX}) -else() - target_compile_options(${t} PRIVATE -DHAVE_STDARG_H -DHAVE_UNISTD_H -DHAVE_VSNPRINTF) - # clang-15: -Wno-strict-prototypes is needed to silence the new -Wdeprecated-non-prototype warning - target_compile_options(${t} PRIVATE -Wall -Wextra -Wvla -Wno-strict-prototypes ${warn_Werror}) -endif() - set(t upx) -target_include_directories(${t} PRIVATE vendor) +target_include_directories(${t} PRIVATE upx_vendor_ucl_INCLUDE_DIRS vendor) target_compile_definitions(${t} PRIVATE $<$:DEBUG=1>) if(GITREV_SHORT) target_compile_definitions(${t} PRIVATE UPX_VERSION_GITREV="${GITREV_SHORT}${GITREV_PLUS}") diff --git a/src/conf.h b/src/conf.h index e50b250..449161d 100644 --- a/src/conf.h +++ b/src/conf.h @@ -161,8 +161,8 @@ typedef unsigned char upx_byte; #define WITH_ZLIB 1 #if (WITH_UCL) # define ucl_compress_config_t REAL_ucl_compress_config_t -# include -# include +# include +# include # undef ucl_compress_config_t # undef ucl_compress_config_p #endif