cmake update
This commit is contained in:
parent
e4de14612f
commit
896596f672
@ -236,10 +236,11 @@ if(NOT CMAKE_C_COMPILER_ID MATCHES "^MSVC")
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# examine MinGW/Cygwin compiler configuration
|
# examine compiler configuration
|
||||||
if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/.git")
|
if(NOT UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO)
|
||||||
|
upx_print_common_symbols()
|
||||||
upx_print_mingw_symbols()
|
upx_print_mingw_symbols()
|
||||||
endif()
|
endif() # UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# targets
|
# targets
|
||||||
|
|||||||
@ -65,10 +65,38 @@ macro(upx_apply_build_type)
|
|||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
# ternary conditional operator
|
||||||
|
macro(upx_ternary result_var_name condition true_value false_value)
|
||||||
|
if(${condition})
|
||||||
|
set(${result_var_name} "${true_value}")
|
||||||
|
else()
|
||||||
|
set(${result_var_name} "${false_value}")
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# util
|
# util
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
|
|
||||||
|
# convert to CMake bool
|
||||||
|
function(upx_make_bool_var result_var_name var_name default_value)
|
||||||
|
set(result "${default_value}")
|
||||||
|
# only query $var_name if it is defined and not empty
|
||||||
|
if(NOT ",${var_name}," STREQUAL ",,")
|
||||||
|
if(DEFINED ${var_name})
|
||||||
|
if(NOT ",${${var_name}}," STREQUAL ",,")
|
||||||
|
set(result "${${var_name}}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
if(${result})
|
||||||
|
set(result ON)
|
||||||
|
else()
|
||||||
|
set(result OFF)
|
||||||
|
endif()
|
||||||
|
set(${result_var_name} "${result}" PARENT_SCOPE) # return value
|
||||||
|
endfunction()
|
||||||
|
|
||||||
function(upx_print_var) # ARGV
|
function(upx_print_var) # ARGV
|
||||||
foreach(var_name ${ARGV})
|
foreach(var_name ${ARGV})
|
||||||
if(DEFINED ${var_name})
|
if(DEFINED ${var_name})
|
||||||
@ -101,22 +129,10 @@ function(upx_print_have_symbol) # ARGV; needs include(CheckSymbolExists)
|
|||||||
endforeach()
|
endforeach()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(upx_make_bool_var result_var_name var_name default_value)
|
# examine compiler configuration
|
||||||
set(result "${default_value}")
|
function(upx_print_common_symbols)
|
||||||
if(NOT ",${var_name}," STREQUAL ",,")
|
upx_print_have_symbol(__FAST_MATH__)
|
||||||
if(DEFINED ${var_name})
|
upx_print_have_symbol(__PIC__ __pic__ __PIE__ __pie__)
|
||||||
if(NOT ",${${var_name}}," STREQUAL ",,")
|
|
||||||
set(result "${${var_name}}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
# convert to bool
|
|
||||||
if(${result})
|
|
||||||
set(result ON)
|
|
||||||
else()
|
|
||||||
set(result OFF)
|
|
||||||
endif()
|
|
||||||
set(${result_var_name} "${result}" PARENT_SCOPE) # return value
|
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
# examine MinGW/Cygwin compiler configuration
|
# examine MinGW/Cygwin compiler configuration
|
||||||
|
|||||||
@ -366,10 +366,6 @@ struct TestTriBool {
|
|||||||
static_assert(alignof(typename T::value_type) == alignof(typename T::underlying_type));
|
static_assert(alignof(typename T::value_type) == alignof(typename T::underlying_type));
|
||||||
#if defined(__m68k__) && defined(__atarist__) && defined(__GNUC__)
|
#if defined(__m68k__) && defined(__atarist__) && defined(__GNUC__)
|
||||||
// broken compiler or broken ABI
|
// broken compiler or broken ABI
|
||||||
#elif defined(__i386__) && defined(__clang__) && (__clang_major__ < 9)
|
|
||||||
static_assert(sizeof(T) == sizeof(typename T::underlying_type));
|
|
||||||
// i386: "long long" enum align bug/ABI problem on older compilers
|
|
||||||
static_assert(alignof(T) <= alignof(typename T::underlying_type));
|
|
||||||
#elif defined(__i386__) && defined(__GNUC__) && (__GNUC__ == 7) && !defined(__clang__)
|
#elif defined(__i386__) && defined(__GNUC__) && (__GNUC__ == 7) && !defined(__clang__)
|
||||||
static_assert(sizeof(T) == sizeof(typename T::underlying_type));
|
static_assert(sizeof(T) == sizeof(typename T::underlying_type));
|
||||||
// i386: "long long" enum align bug/ABI problem on older compilers
|
// i386: "long long" enum align bug/ABI problem on older compilers
|
||||||
|
|||||||
@ -55,7 +55,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__clang__) && defined(__FAST_MATH__)
|
#if defined(__FAST_MATH__) && defined(__clang__) && (__clang_major__ + 0 >= 6)
|
||||||
// warning: comparison with NaN always evaluates to false in fast floating point modes
|
// warning: comparison with NaN always evaluates to false in fast floating point modes
|
||||||
#pragma clang diagnostic ignored "-Wtautological-constant-compare"
|
#pragma clang diagnostic ignored "-Wtautological-constant-compare"
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user