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)
|
target_link_libraries(Iconv PUBLIC iconv)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT TEST_posix_iconv)
|
||||||
run_config_test_sun_iconv()
|
run_config_test_sun_iconv()
|
||||||
|
endif()
|
||||||
run_config_test_architecture()
|
run_config_test_architecture()
|
||||||
run_linker_version_script_support()
|
run_linker_version_script_support()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -386,7 +386,7 @@ qt_feature("iconv" PUBLIC PRIVATE
|
|||||||
SECTION "Internationalization"
|
SECTION "Internationalization"
|
||||||
LABEL "iconv"
|
LABEL "iconv"
|
||||||
PURPOSE "Provides internationalization on Unix."
|
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_definition("iconv" "QT_NO_ICONV" NEGATE VALUE "1")
|
||||||
qt_feature("posix_libiconv" PRIVATE
|
qt_feature("posix_libiconv" PRIVATE
|
||||||
@ -395,11 +395,17 @@ qt_feature("posix_libiconv" PRIVATE
|
|||||||
ENABLE INPUT_iconv STREQUAL 'posix'
|
ENABLE INPUT_iconv STREQUAL 'posix'
|
||||||
DISABLE INPUT_iconv STREQUAL 'sun' OR INPUT_iconv STREQUAL 'gnu' OR INPUT_iconv STREQUAL 'no'
|
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
|
qt_feature("gnu_libiconv" PRIVATE
|
||||||
LABEL "GNU iconv"
|
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
|
CONDITION NOT WIN32 AND NOT QNX AND NOT ANDROID AND NOT APPLE AND TEST_posix_iconv AND NOT TEST_iconv_needlib
|
||||||
ENABLE INPUT_iconv STREQUAL 'gnu'
|
ENABLE TEST_posix_iconv AND NOT TEST_iconv_needlib
|
||||||
DISABLE INPUT_iconv STREQUAL 'posix' OR INPUT_iconv STREQUAL 'sun' OR INPUT_iconv STREQUAL 'no'
|
DISABLE NOT TEST_posix_iconv OR TEST_iconv_needlib
|
||||||
)
|
)
|
||||||
qt_feature("icu" PRIVATE
|
qt_feature("icu" PRIVATE
|
||||||
LABEL "ICU"
|
LABEL "ICU"
|
||||||
|
@ -274,7 +274,6 @@ def map_condition(condition):
|
|||||||
mapped_features = {
|
mapped_features = {
|
||||||
"dlopen": "UNIX",
|
"dlopen": "UNIX",
|
||||||
'gbm': 'gbm_FOUND',
|
'gbm': 'gbm_FOUND',
|
||||||
"sun-libiconv": "TEST_sun_iconv",
|
|
||||||
"system-xcb": "ON",
|
"system-xcb": "ON",
|
||||||
"system-freetype": "ON",
|
"system-freetype": "ON",
|
||||||
}
|
}
|
||||||
@ -645,12 +644,22 @@ def parseFeature(ctx, feature, data, cm_fh):
|
|||||||
'enable_gdb_index': None,
|
'enable_gdb_index': None,
|
||||||
'enable_new_dtags': None,
|
'enable_new_dtags': None,
|
||||||
'force_debug_info': None,
|
'force_debug_info': None,
|
||||||
'framework': { 'condition': 'APPLE AND BUILD_SHARED_LIBS', },
|
'framework': {
|
||||||
|
'condition': 'APPLE AND BUILD_SHARED_LIBS',
|
||||||
|
},
|
||||||
'gc_binaries': None,
|
'gc_binaries': None,
|
||||||
'gcc-sysroot': None,
|
'gcc-sysroot': None,
|
||||||
'gcov': 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,
|
'GNUmake': None,
|
||||||
'host-dbus': 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,
|
'incredibuild_xge': None,
|
||||||
'ltcg': None,
|
'ltcg': None,
|
||||||
'msvc_mp': None,
|
'msvc_mp': None,
|
||||||
@ -658,6 +667,11 @@ def parseFeature(ctx, feature, data, cm_fh):
|
|||||||
'optimize_size': None,
|
'optimize_size': None,
|
||||||
'pkg-config': None,
|
'pkg-config': None,
|
||||||
'posix_fallocate': None, # Only needed for sqlite, which we do not want to build
|
'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,
|
'precompile_header': None,
|
||||||
'profile': None,
|
'profile': None,
|
||||||
'qmakeargs': None,
|
'qmakeargs': None,
|
||||||
@ -680,7 +694,11 @@ def parseFeature(ctx, feature, data, cm_fh):
|
|||||||
'static_runtime': None,
|
'static_runtime': None,
|
||||||
'stl': None, # Do we really need to test for this in 2018?!
|
'stl': None, # Do we really need to test for this in 2018?!
|
||||||
'strip': None,
|
'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-doubleconversion': None, # No system libraries anymore!
|
||||||
'system-freetype': None,
|
'system-freetype': None,
|
||||||
'system-jpeg': None,
|
'system-jpeg': None,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user