mirror of
https://github.com/upx/upx.git
synced 2024-11-23 04:39:59 +00:00
cmake update
This commit is contained in:
parent
3a11a5a82e
commit
a7fa2f87c5
@ -27,6 +27,7 @@ endif()
|
|||||||
|
|
||||||
# support functions and some utility
|
# support functions and some utility
|
||||||
include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/functions.cmake")
|
include("${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/functions.cmake")
|
||||||
|
upx_print_var(CMAKE_VERSION UPX_CONFIG_CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_GENERATOR)
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# options
|
# options
|
||||||
@ -154,9 +155,20 @@ include(CheckFunctionExists)
|
|||||||
include(CheckIncludeFile)
|
include(CheckIncludeFile)
|
||||||
include(CheckStructHasMember)
|
include(CheckStructHasMember)
|
||||||
include(CheckSymbolExists)
|
include(CheckSymbolExists)
|
||||||
|
include(CheckTypeSize)
|
||||||
|
|
||||||
upx_cmake_include_hook(3_common_compilation_flags)
|
upx_cmake_include_hook(3_common_compilation_flags)
|
||||||
|
|
||||||
|
# assert sane type sizes
|
||||||
|
check_type_size("size_t" C_SIZEOF_SIZE_T LANGUAGE C)
|
||||||
|
check_type_size("size_t" CXX_SIZEOF_SIZE_T LANGUAGE CXX)
|
||||||
|
if(NOT "${C_SIZEOF_SIZE_T}" MATCHES "^(4|8|16)$")
|
||||||
|
message(FATAL_ERROR "ERROR: unexpected C_SIZEOF_SIZE_T '${C_SIZEOF_SIZE_T}'")
|
||||||
|
endif()
|
||||||
|
if(NOT ",${C_SIZEOF_SIZE_T}," STREQUAL ",${CXX_SIZEOF_SIZE_T},")
|
||||||
|
message(FATAL_ERROR "FATAL ERROR: '${C_SIZEOF_SIZE_T}' '${CXX_SIZEOF_SIZE_T}' mismatch")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED HAVE_UNISTD_H)
|
if(NOT DEFINED HAVE_UNISTD_H)
|
||||||
check_include_file("unistd.h" HAVE_UNISTD_H)
|
check_include_file("unistd.h" HAVE_UNISTD_H)
|
||||||
endif()
|
endif()
|
||||||
|
2
NEWS
2
NEWS
@ -4,7 +4,7 @@ User visible changes for UPX
|
|||||||
|
|
||||||
Changes in 4.3.0 (XX XXX XXXX):
|
Changes in 4.3.0 (XX XXX XXXX):
|
||||||
* bug fixes - see https://github.com/upx/upx/milestone/18
|
* bug fixes - see https://github.com/upx/upx/milestone/18
|
||||||
* ELF: PT_MIPS_ABIFLAGS is now fowarded into the compressed output;
|
* ELF: PT_MIPS_ABIFLAGS is now forwarded into the compressed output;
|
||||||
qemu-mips can choose the right floating-point emulation
|
qemu-mips can choose the right floating-point emulation
|
||||||
* ELF: --unmap-all-pages completely avoids /proc/self/exe
|
* ELF: --unmap-all-pages completely avoids /proc/self/exe
|
||||||
|
|
||||||
|
@ -10,6 +10,8 @@
|
|||||||
|
|
||||||
# generator
|
# generator
|
||||||
upx_print_var(CMAKE_GENERATOR_TOOLSET CMAKE_GENERATOR_PLATFORM)
|
upx_print_var(CMAKE_GENERATOR_TOOLSET CMAKE_GENERATOR_PLATFORM)
|
||||||
|
get_property(PROPERTY_GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||||
|
upx_print_var(PROPERTY_GENERATOR_IS_MULTI_CONFIG)
|
||||||
|
|
||||||
# directories
|
# directories
|
||||||
if(NOT ",${CMAKE_BINARY_DIR}," STREQUAL ",${CMAKE_CURRENT_BINARY_DIR}," OR NOT ",${CMAKE_SOURCE_DIR}," STREQUAL ",${CMAKE_CURRENT_SOURCE_DIR},")
|
if(NOT ",${CMAKE_BINARY_DIR}," STREQUAL ",${CMAKE_CURRENT_BINARY_DIR}," OR NOT ",${CMAKE_SOURCE_DIR}," STREQUAL ",${CMAKE_CURRENT_SOURCE_DIR},")
|
||||||
@ -21,6 +23,7 @@ upx_print_var(CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_SYSTEM
|
|||||||
upx_print_var(CMAKE_SYSTEM_NAME CMAKE_SYSTEM_VERSION CMAKE_SYSTEM_PROCESSOR)
|
upx_print_var(CMAKE_SYSTEM_NAME CMAKE_SYSTEM_VERSION CMAKE_SYSTEM_PROCESSOR)
|
||||||
upx_print_var(CMAKE_ANDROID_NDK CMAKE_ANDROID_NDK_VERSION CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
|
upx_print_var(CMAKE_ANDROID_NDK CMAKE_ANDROID_NDK_VERSION CMAKE_ANDROID_STANDALONE_TOOLCHAIN)
|
||||||
upx_print_var(CMAKE_APPLE_SILICON_PROCESSOR CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT)
|
upx_print_var(CMAKE_APPLE_SILICON_PROCESSOR CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT)
|
||||||
|
upx_print_var(CMAKE_VS_PLATFORM_TOOLSET CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE CMAKE_VS_PLATFORM_TOOLSET_VERSION)
|
||||||
upx_print_var(CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR)
|
upx_print_var(CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR)
|
||||||
|
|
||||||
# binutils
|
# binutils
|
||||||
@ -41,6 +44,8 @@ endforeach()
|
|||||||
|
|
||||||
# misc
|
# misc
|
||||||
upx_print_var(CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_POSITION_INDEPENDENT_CODE)
|
upx_print_var(CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_POSITION_INDEPENDENT_CODE)
|
||||||
|
get_property(PROPERTY_TARGET_SUPPORTS_SHARED_LIBS GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS)
|
||||||
|
upx_print_var(PROPERTY_TARGET_SUPPORTS_SHARED_LIBS)
|
||||||
|
|
||||||
# shortcuts
|
# shortcuts
|
||||||
upx_print_var(APPLE CLANG CYGWIN GNU_FRONTEND GNUC MINGW MSVC MSVC_FRONTEND MSVC_IDE MSVC_TOOLSET_VERSION MSVC_VERSION MSYS UNIX WIN32 WIN64)
|
upx_print_var(APPLE CLANG CYGWIN GNU_FRONTEND GNUC MINGW MSVC MSVC_FRONTEND MSVC_IDE MSVC_TOOLSET_VERSION MSVC_VERSION MSYS UNIX WIN32 WIN64)
|
||||||
|
@ -94,7 +94,7 @@ build/extra/clang-std-cxx20/%: export UPX_CONFIG_DISABLE_CXX_STANDARD=ON
|
|||||||
# force building with clang/clang++ C++23 (and C23)
|
# force building with clang/clang++ C++23 (and C23)
|
||||||
build/extra/clang-std-cxx23/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
build/extra/clang-std-cxx23/debug: PHONY; $(call run_config_and_build,$@,Debug)
|
||||||
build/extra/clang-std-cxx23/release: PHONY; $(call run_config_and_build,$@,Release)
|
build/extra/clang-std-cxx23/release: PHONY; $(call run_config_and_build,$@,Release)
|
||||||
build/extra/clang-std-cxx23/%: export CC = clang -std=gnu2x
|
build/extra/clang-std-cxx23/%: export CC = clang -std=gnu2x -Wno-constant-logical-operand
|
||||||
build/extra/clang-std-cxx23/%: export CXX = clang++ -std=gnu++2b
|
build/extra/clang-std-cxx23/%: export CXX = clang++ -std=gnu++2b
|
||||||
build/extra/clang-std-cxx23/%: export UPX_CONFIG_DISABLE_C_STANDARD=ON
|
build/extra/clang-std-cxx23/%: export UPX_CONFIG_DISABLE_C_STANDARD=ON
|
||||||
build/extra/clang-std-cxx23/%: export UPX_CONFIG_DISABLE_CXX_STANDARD=ON
|
build/extra/clang-std-cxx23/%: export UPX_CONFIG_DISABLE_CXX_STANDARD=ON
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// doctest checks, and various tests to catch toolchain/qemu/sanitizer/valgrind/wine/etc
|
// doctest checks, and various tests to catch toolchain/qemu/sanitizer/valgrind/wine/etc
|
||||||
// problems; grown historically
|
// problems; grown historically; modern compilers will optimize away much of this code
|
||||||
|
|
||||||
#include "../util/system_headers.h"
|
#include "../util/system_headers.h"
|
||||||
#include <cmath> // std::isinf std::isnan
|
#include <cmath> // std::isinf std::isnan
|
||||||
@ -320,7 +320,6 @@ static_assert((wchar_t) -1 > 0);
|
|||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
// upx_compiler_sanity_check()
|
// upx_compiler_sanity_check()
|
||||||
// assert a sane architecture and compiler
|
// assert a sane architecture and compiler
|
||||||
// (modern compilers will optimize away most of this code)
|
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
@ -983,7 +982,7 @@ void upx_compiler_sanity_check(void) noexcept {
|
|||||||
CheckIntegral<upx_uintptr_t>::check();
|
CheckIntegral<upx_uintptr_t>::check();
|
||||||
#endif
|
#endif
|
||||||
#if (__SIZEOF_INT128__ == 16)
|
#if (__SIZEOF_INT128__ == 16)
|
||||||
#if defined(_CPP_VER) // int128 is not supported by MSVC libstdc++ yet
|
#if defined(_CPP_VER) || defined(_WIN32) // int128 is not fully supported by MSVC libstdc++ yet
|
||||||
#else
|
#else
|
||||||
CheckIntegral<upx_int128_t>::check();
|
CheckIntegral<upx_int128_t>::check();
|
||||||
CheckIntegral<upx_uint128_t>::check();
|
CheckIntegral<upx_uint128_t>::check();
|
||||||
@ -1012,7 +1011,7 @@ void upx_compiler_sanity_check(void) noexcept {
|
|||||||
CheckSignedness<upx_int64_t, true>::check();
|
CheckSignedness<upx_int64_t, true>::check();
|
||||||
CheckSignedness<upx_uint64_t, false>::check();
|
CheckSignedness<upx_uint64_t, false>::check();
|
||||||
#if (__SIZEOF_INT128__ == 16)
|
#if (__SIZEOF_INT128__ == 16)
|
||||||
#if defined(_CPP_VER) // int128 is not supported by MSVC libstdc++ yet
|
#if defined(_CPP_VER) || defined(_WIN32) // int128 is not fully supported by MSVC libstdc++ yet
|
||||||
#else
|
#else
|
||||||
CheckSignedness<upx_int128_t, true>::check();
|
CheckSignedness<upx_int128_t, true>::check();
|
||||||
CheckSignedness<upx_uint128_t, false>::check();
|
CheckSignedness<upx_uint128_t, false>::check();
|
||||||
@ -1040,7 +1039,7 @@ void upx_compiler_sanity_check(void) noexcept {
|
|||||||
CHECK_TYPE_PAIR(upx_int32_t, upx_uint32_t);
|
CHECK_TYPE_PAIR(upx_int32_t, upx_uint32_t);
|
||||||
CHECK_TYPE_PAIR(upx_int64_t, upx_uint64_t);
|
CHECK_TYPE_PAIR(upx_int64_t, upx_uint64_t);
|
||||||
#if (__SIZEOF_INT128__ == 16)
|
#if (__SIZEOF_INT128__ == 16)
|
||||||
#if defined(_CPP_VER) // int128 is not supported by MSVC libstdc++ yet
|
#if defined(_CPP_VER) || defined(_WIN32) // int128 is not fully supported by MSVC libstdc++ yet
|
||||||
#else
|
#else
|
||||||
CHECK_TYPE_PAIR(upx_int128_t, upx_uint128_t);
|
CHECK_TYPE_PAIR(upx_int128_t, upx_uint128_t);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user