CMake: Improve handling of the different kinds of iconv
Improve conditions/enable/disable conditions for iconv related features. These are detected a bit different from what qmake does, so adapt to that. Change-Id: I7b3e4baf05dc324507f370d7f651a62f29e42a98 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
This commit is contained in:
parent
e11522726b
commit
38f1a10b6f
@ -131,7 +131,9 @@ function(run_config_tests)
|
||||
target_link_libraries(Iconv PUBLIC iconv)
|
||||
endif()
|
||||
|
||||
run_config_test_sun_iconv()
|
||||
if(NOT TEST_posix_iconv)
|
||||
run_config_test_sun_iconv()
|
||||
endif()
|
||||
run_config_test_architecture()
|
||||
run_linker_version_script_support()
|
||||
endfunction()
|
||||
|
@ -386,7 +386,7 @@ qt_feature("iconv" PUBLIC PRIVATE
|
||||
SECTION "Internationalization"
|
||||
LABEL "iconv"
|
||||
PURPOSE "Provides internationalization on Unix."
|
||||
CONDITION NOT QT_FEATURE_icu AND QT_FEATURE_textcodec AND ( QT_FEATURE_posix_libiconv OR TEST_sun_iconv OR QT_FEATURE_gnu_libiconv )
|
||||
CONDITION NOT QT_FEATURE_icu AND QT_FEATURE_textcodec AND ( TEST_posix_iconv OR TEST_sun_iconv )
|
||||
)
|
||||
qt_feature_definition("iconv" "QT_NO_ICONV" NEGATE VALUE "1")
|
||||
qt_feature("posix_libiconv" PRIVATE
|
||||
@ -395,11 +395,17 @@ qt_feature("posix_libiconv" PRIVATE
|
||||
ENABLE INPUT_iconv STREQUAL 'posix'
|
||||
DISABLE INPUT_iconv STREQUAL 'sun' OR INPUT_iconv STREQUAL 'gnu' OR INPUT_iconv STREQUAL 'no'
|
||||
)
|
||||
qt_feature("sun_libiconv"
|
||||
LABEL "SUN iconv"
|
||||
CONDITION NOT WIN32 AND NOT QNX AND NOT ANDROID AND NOT APPLE AND TEST_sun_iconv
|
||||
ENABLE TEST_sun_iconv
|
||||
DISABLE NOT TEST_sun_iconv
|
||||
)
|
||||
qt_feature("gnu_libiconv" PRIVATE
|
||||
LABEL "GNU iconv"
|
||||
CONDITION NOT WIN32 AND NOT QNX AND NOT ANDROID AND NOT APPLE AND NOT QT_FEATURE_posix_libiconv AND NOT TEST_sun_iconv AND libs.gnu_iconv OR FIXME
|
||||
ENABLE INPUT_iconv STREQUAL 'gnu'
|
||||
DISABLE INPUT_iconv STREQUAL 'posix' OR INPUT_iconv STREQUAL 'sun' OR INPUT_iconv STREQUAL 'no'
|
||||
CONDITION NOT WIN32 AND NOT QNX AND NOT ANDROID AND NOT APPLE AND TEST_posix_iconv AND NOT TEST_iconv_needlib
|
||||
ENABLE TEST_posix_iconv AND NOT TEST_iconv_needlib
|
||||
DISABLE NOT TEST_posix_iconv OR TEST_iconv_needlib
|
||||
)
|
||||
qt_feature("icu" PRIVATE
|
||||
LABEL "ICU"
|
||||
|
@ -274,7 +274,6 @@ def map_condition(condition):
|
||||
mapped_features = {
|
||||
"dlopen": "UNIX",
|
||||
'gbm': 'gbm_FOUND',
|
||||
"sun-libiconv": "TEST_sun_iconv",
|
||||
"system-xcb": "ON",
|
||||
"system-freetype": "ON",
|
||||
}
|
||||
@ -645,12 +644,22 @@ def parseFeature(ctx, feature, data, cm_fh):
|
||||
'enable_gdb_index': None,
|
||||
'enable_new_dtags': None,
|
||||
'force_debug_info': None,
|
||||
'framework': { 'condition': 'APPLE AND BUILD_SHARED_LIBS', },
|
||||
'framework': {
|
||||
'condition': 'APPLE AND BUILD_SHARED_LIBS',
|
||||
},
|
||||
'gc_binaries': None,
|
||||
'gcc-sysroot': None,
|
||||
'gcov': None,
|
||||
'gnu-libiconv': {
|
||||
'condition': 'NOT WIN32 AND NOT QNX AND NOT ANDROID AND NOT APPLE AND TEST_posix_iconv AND NOT TEST_iconv_needlib',
|
||||
'enable': 'TEST_posix_iconv AND NOT TEST_iconv_needlib',
|
||||
'disable': 'NOT TEST_posix_iconv OR TEST_iconv_needlib',
|
||||
},
|
||||
'GNUmake': None,
|
||||
'host-dbus': None,
|
||||
'iconv': {
|
||||
'condition': 'NOT QT_FEATURE_icu AND QT_FEATURE_textcodec AND ( TEST_posix_iconv OR TEST_sun_iconv )'
|
||||
},
|
||||
'incredibuild_xge': None,
|
||||
'ltcg': None,
|
||||
'msvc_mp': None,
|
||||
@ -658,6 +667,11 @@ def parseFeature(ctx, feature, data, cm_fh):
|
||||
'optimize_size': None,
|
||||
'pkg-config': None,
|
||||
'posix_fallocate': None, # Only needed for sqlite, which we do not want to build
|
||||
'posix_libiconv': {
|
||||
'condition': 'NOT WIN32 AND NOT QNX AND NOT ANDROID AND NOT APPLE AND TEST_posix_iconv AND TEST_iconv_needlib',
|
||||
'enable': 'TEST_posix_iconv AND TEST_iconv_needlib',
|
||||
'disable': 'NOT TEST_posix_iconv OR NOT TEST_iconv_needlib',
|
||||
},
|
||||
'precompile_header': None,
|
||||
'profile': None,
|
||||
'qmakeargs': None,
|
||||
@ -680,7 +694,11 @@ def parseFeature(ctx, feature, data, cm_fh):
|
||||
'static_runtime': None,
|
||||
'stl': None, # Do we really need to test for this in 2018?!
|
||||
'strip': None,
|
||||
'sun-libiconv': None, # internal feature but not referenced in our system
|
||||
'sun-libiconv': {
|
||||
'condition': 'NOT WIN32 AND NOT QNX AND NOT ANDROID AND NOT APPLE AND TEST_sun_iconv',
|
||||
'enable': 'TEST_sun_iconv',
|
||||
'disable': 'NOT TEST_sun_iconv',
|
||||
},
|
||||
'system-doubleconversion': None, # No system libraries anymore!
|
||||
'system-freetype': None,
|
||||
'system-jpeg': None,
|
||||
|
Loading…
x
Reference in New Issue
Block a user