mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-07 06:09:52 -06:00
Merge topic 'lcc-updates'
22a2b9c49fTests: Fix Java tests on multi-config generatorsb05d297964Tests: handle a case when hg executable is broken2faabab644Tests: don't fail tests on broken E2K Java RVM1462a1e15dTests: check for shlibdeps symbols/shlibs before testing it070e217399Tests: enable Java tests if javac is a recurse symlink7545d1ca9fTests: don't use broken makensisf11c12f9c8Source: Suppress some warnings on LCC 1.23.xde16db0f64curl: make libcmcurl buildable with old LibreSSL Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7418
This commit is contained in:
@@ -14,6 +14,10 @@
|
||||
#pragma warning(disable : 1572) /* floating-point equality test */
|
||||
#endif
|
||||
|
||||
#if defined(__LCC__) && defined(__EDG__) && (__LCC__ == 123)
|
||||
#pragma diag_suppress 2910 /* excess -Wunused-function in 1.23.x */
|
||||
#endif
|
||||
|
||||
#cmakedefine HAVE_ENVIRON_NOT_REQUIRE_PROTOTYPE
|
||||
#cmakedefine HAVE_UNSETENV
|
||||
#cmakedefine CMake_USE_MACH_PARSER
|
||||
|
||||
@@ -1056,8 +1056,11 @@ if(BUILD_TESTING)
|
||||
endif()
|
||||
endif()
|
||||
if(NSIS_MAKENSIS_EXECUTABLE)
|
||||
set(CPackComponents_BUILD_OPTIONS ${CPackComponents_BUILD_OPTIONS}
|
||||
-DCPACK_BINARY_NSIS:BOOL=ON)
|
||||
execute_process(COMMAND ${NSIS_MAKENSIS_EXECUTABLE} "-VERSION" ERROR_QUIET OUTPUT_QUIET RESULT_VARIABLE NSIS_OK)
|
||||
if("${NSIS_OK}" STREQUAL "0")
|
||||
set(CPackComponents_BUILD_OPTIONS ${CPackComponents_BUILD_OPTIONS}
|
||||
-DCPACK_BINARY_NSIS:BOOL=ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_test(CPackComponents ${CMAKE_CTEST_COMMAND}
|
||||
@@ -1153,7 +1156,6 @@ if(BUILD_TESTING)
|
||||
"components-source"
|
||||
"components-shlibdeps1"
|
||||
"components-depend1"
|
||||
"components-depend2"
|
||||
"compression")
|
||||
# Run additional tests if dpkg-shlibdeps is available (and is new enough version)
|
||||
find_program(SHLIBDEPS_EXECUTABLE NAMES dpkg-shlibdeps)
|
||||
@@ -1173,6 +1175,11 @@ if(BUILD_TESTING)
|
||||
list(APPEND DEB_CONFIGURATIONS_TO_TEST "shlibdeps-with-private-lib-failure"
|
||||
"shlibdeps-with-private-lib-success")
|
||||
endif()
|
||||
# Check if distro has symbols or shlibs data
|
||||
file(GLOB SHLIBS_FILES_EXIST "/var/lib/dpkg/info/*.shlibs" "/var/lib/dpkg/info/*.symbols")
|
||||
if(SHLIBS_FILES_EXIST)
|
||||
list(APPEND DEB_CONFIGURATIONS_TO_TEST "components-depend2")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(CPackGen "DEB")
|
||||
@@ -2666,7 +2673,10 @@ if(BUILD_TESTING)
|
||||
endif()
|
||||
if(NOT DEFINED CMake_TEST_CTestUpdate_HG AND HG_EXECUTABLE
|
||||
AND (UNIX OR NOT "${HG_EXECUTABLE}" MATCHES "cygwin"))
|
||||
set(CMake_TEST_CTestUpdate_HG 1)
|
||||
execute_process(COMMAND "${HG_EXECUTABLE}" --version OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE HG_RV)
|
||||
if(HG_RV EQUAL 0)
|
||||
set(CMake_TEST_CTestUpdate_HG 1)
|
||||
endif()
|
||||
endif()
|
||||
if(CMake_TEST_CTestUpdate_HG)
|
||||
if(NOT HG_EXECUTABLE)
|
||||
@@ -3368,56 +3378,70 @@ if(BUILD_TESTING)
|
||||
set(JavaExportImport_BUILD_OPTIONS -DCMake_TEST_NESTED_MAKE_PROGRAM:FILEPATH=${CMake_TEST_EXPLICIT_MAKE_PROGRAM})
|
||||
ADD_TEST_MACRO(JavaExportImport JavaExportImport)
|
||||
|
||||
get_filename_component(JNIPATH ${Java_JAVAC_EXECUTABLE} PATH)
|
||||
get_filename_component(JAVACPATH ${Java_JAVAC_EXECUTABLE} REALPATH)
|
||||
get_filename_component(JNIPATH ${JAVACPATH} PATH)
|
||||
find_file(JNI_H jni.h
|
||||
"${JNIPATH}/../include"
|
||||
"${JNIPATH}/../java/include")
|
||||
if(JNI_H AND EXISTS "${JNI_H}") # in case jni.h is a broken symlink
|
||||
file(READ "${JNI_H}" JNI_FILE)
|
||||
if("${JNI_FILE}" MATCHES "JDK1_2")
|
||||
add_test(NAME Java.Jar COMMAND ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/Java"
|
||||
"${CMake_BINARY_DIR}/Tests/JavaJar"
|
||||
${build_generator_args}
|
||||
--build-project hello
|
||||
--build-run-dir "${CMake_BINARY_DIR}/Tests/JavaJar/"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIG>)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaJar")
|
||||
|
||||
# For next tests, java tool must have same architecture as toolchain
|
||||
math(EXPR _object_mode "${CMAKE_SIZEOF_VOID_P} * 8")
|
||||
execute_process(
|
||||
COMMAND "${Java_JAVA_EXECUTABLE}" -version
|
||||
OUTPUT_VARIABLE _version ERROR_VARIABLE _version RESULT_VARIABLE _result
|
||||
)
|
||||
if(_result EQUAL 0 AND _version MATCHES "${_object_mode}-Bit")
|
||||
## next test is valid only if Java version is less than 1.10
|
||||
if ("${Java_VERSION}" VERSION_LESS 1.10)
|
||||
add_test(NAME Java.Javah COMMAND ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/JavaJavah"
|
||||
"${CMake_BINARY_DIR}/Tests/JavaJavah"
|
||||
${build_generator_args}
|
||||
--build-project helloJavah
|
||||
--build-run-dir "${CMake_BINARY_DIR}/Tests/JavaJavah/"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIG>)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaJavah")
|
||||
|
||||
# E2K has broken Java RVM before 3.5.2
|
||||
if (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "e2k" AND _result EQUAL 0)
|
||||
string(REGEX MATCH "RVM ([0-9.]+)" RVMVER "${_version}")
|
||||
# Consider empty match a broken version too
|
||||
if("${CMAKE_MATCH_1}" VERSION_LESS "3.5.2")
|
||||
set(BROKEN_RVM TRUE)
|
||||
endif()
|
||||
## next test is valid only if Java is, at least, version 1.8
|
||||
if (NOT "${Java_VERSION}" VERSION_LESS 1.8)
|
||||
add_test(NAME Java.NativeHeaders COMMAND ${CMAKE_CTEST_COMMAND}
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/JavaNativeHeaders"
|
||||
"${CMake_BINARY_DIR}/Tests/JavaNativeHeaders"
|
||||
${build_generator_args}
|
||||
--build-project helloJavaNativeHeaders
|
||||
--build-run-dir "${CMake_BINARY_DIR}/Tests/JavaNativeHeaders/"
|
||||
--build-target install
|
||||
--build-options
|
||||
"-DCMAKE_INSTALL_PREFIX:PATH=${CMake_BINARY_DIR}/Tests/JavaNativeHeaders/Install"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIG>)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaNativeHeaders")
|
||||
endif()
|
||||
|
||||
if(NOT BROKEN_RVM)
|
||||
add_test(NAME Java.Jar COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/Java"
|
||||
"${CMake_BINARY_DIR}/Tests/JavaJar"
|
||||
${build_generator_args}
|
||||
--build-project hello
|
||||
--build-run-dir "${CMake_BINARY_DIR}/Tests/JavaJar/"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIG>)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaJar")
|
||||
|
||||
# For next tests, java tool must have same architecture as toolchain
|
||||
math(EXPR _object_mode "${CMAKE_SIZEOF_VOID_P} * 8")
|
||||
if(_result EQUAL 0 AND _version MATCHES "${_object_mode}-Bit")
|
||||
## next test is valid only if Java version is less than 1.10
|
||||
if ("${Java_VERSION}" VERSION_LESS 1.10)
|
||||
add_test(NAME Java.Javah COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/JavaJavah"
|
||||
"${CMake_BINARY_DIR}/Tests/JavaJavah"
|
||||
${build_generator_args}
|
||||
--build-project helloJavah
|
||||
--build-run-dir "${CMake_BINARY_DIR}/Tests/JavaJavah/"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIG>)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaJavah")
|
||||
endif()
|
||||
## next test is valid only if Java is, at least, version 1.8
|
||||
if (NOT "${Java_VERSION}" VERSION_LESS 1.8)
|
||||
add_test(NAME Java.NativeHeaders COMMAND ${CMAKE_CTEST_COMMAND} -C $<CONFIG>
|
||||
--build-and-test
|
||||
"${CMake_SOURCE_DIR}/Tests/JavaNativeHeaders"
|
||||
"${CMake_BINARY_DIR}/Tests/JavaNativeHeaders"
|
||||
${build_generator_args}
|
||||
--build-project helloJavaNativeHeaders
|
||||
--build-run-dir "${CMake_BINARY_DIR}/Tests/JavaNativeHeaders/"
|
||||
--build-target install
|
||||
--build-options
|
||||
"-DCMAKE_INSTALL_PREFIX:PATH=${CMake_BINARY_DIR}/Tests/JavaNativeHeaders/Install"
|
||||
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIG>)
|
||||
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/JavaNativeHeaders")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -56,6 +56,15 @@ macro(check_version_string MODULE_NAME VERSION_VAR)
|
||||
if (NOT _exclude_pos EQUAL -1)
|
||||
message(STATUS "excluding check of ${VERSION_VAR}='${${VERSION_VAR}}' due to local configuration")
|
||||
elseif (${MODULE_NAME}_FOUND)
|
||||
|
||||
unset(SKIP_CHECK)
|
||||
if(${MODULE_NAME} STREQUAL "HG")
|
||||
execute_process(COMMAND "${HG_EXECUTABLE}" --version OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE HG_RV)
|
||||
if(NOT HG_RV EQUAL 0)
|
||||
message(WARNING "Broken HG executable detected, skipping")
|
||||
set(SKIP_CHECK TRUE)
|
||||
endif()
|
||||
endif()
|
||||
if (DEFINED ${VERSION_VAR})
|
||||
message(STATUS "${VERSION_VAR}='${${VERSION_VAR}}'")
|
||||
if (NOT ${VERSION_VAR} MATCHES "^[0-9]")
|
||||
@@ -71,7 +80,9 @@ macro(check_version_string MODULE_NAME VERSION_VAR)
|
||||
message(SEND_ERROR "unexpected: ${VERSION_VAR} is NOT VERSION_GREATER 0")
|
||||
endif()
|
||||
else()
|
||||
message(SEND_ERROR "${MODULE_NAME}_FOUND is set but version number variable ${VERSION_VAR} is NOT DEFINED")
|
||||
if(NOT SKIP_CHECK)
|
||||
message(SEND_ERROR "${MODULE_NAME}_FOUND is set but version number variable ${VERSION_VAR} is NOT DEFINED")
|
||||
endif()
|
||||
endif()
|
||||
endif ()
|
||||
endmacro()
|
||||
|
||||
@@ -45,7 +45,11 @@ if(NOT DEFINED EP_TEST_HG OR EP_TEST_HG)
|
||||
find_package(Hg)
|
||||
endif()
|
||||
if(NOT DEFINED EP_TEST_HG AND Hg_FOUND)
|
||||
set(EP_TEST_HG 1)
|
||||
# Check if hg executable is working
|
||||
execute_process(COMMAND "${HG_EXECUTABLE}" --version OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE HG_RV)
|
||||
if(HG_RV EQUAL 0)
|
||||
set(EP_TEST_HG 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
message(STATUS "EP_TEST_CVS='${EP_TEST_CVS}' CVS_EXECUTABLE='${CVS_EXECUTABLE}'")
|
||||
|
||||
@@ -217,8 +217,10 @@
|
||||
* BoringSSL: supported since 5fd1807d95f7 (committed 2016-09-30)
|
||||
* LibreSSL: since 2.5.3 (April 12, 2017)
|
||||
*/
|
||||
#if (OPENSSL_VERSION_NUMBER >= 0x10002000L) || \
|
||||
defined(OPENSSL_IS_BORINGSSL)
|
||||
#if ((OPENSSL_VERSION_NUMBER >= 0x10002000L) && \
|
||||
!(defined(LIBRESSL_VERSION_NUMBER) && \
|
||||
LIBRESSL_VERSION_NUMBER < 0x20503000L)) || \
|
||||
defined(OPENSSL_IS_BORINGSSL)
|
||||
#define HAVE_SSL_CTX_SET_EC_CURVES
|
||||
#endif
|
||||
|
||||
@@ -2282,6 +2284,14 @@ static void ossl_trace(int direction, int ssl_ver, int content_type,
|
||||
# define HAS_NPN 1
|
||||
#endif
|
||||
|
||||
/* Check for OpenSSL 1.1.0 which has set_{min,max}_proto_version(). */
|
||||
#undef HAS_MODERN_SET_PROTO_VER
|
||||
#if OPENSSL_VERSION_NUMBER >= 0x10100000L \
|
||||
&& !(defined(LIBRESSL_VERSION_NUMBER) && \
|
||||
LIBRESSL_VERSION_NUMBER < 0x20600000L)
|
||||
# define HAS_MODERN_SET_PROTO_VER 1
|
||||
#endif
|
||||
|
||||
#ifdef HAS_NPN
|
||||
|
||||
/*
|
||||
@@ -2340,7 +2350,7 @@ select_next_proto_cb(SSL *ssl,
|
||||
}
|
||||
#endif /* HAS_NPN */
|
||||
|
||||
#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) /* 1.1.0 */
|
||||
#ifdef HAS_MODERN_SET_PROTO_VER
|
||||
static CURLcode
|
||||
set_ssl_version_min_max(SSL_CTX *ctx, struct connectdata *conn)
|
||||
{
|
||||
@@ -2424,7 +2434,7 @@ set_ssl_version_min_max(SSL_CTX *ctx, struct connectdata *conn)
|
||||
|
||||
return CURLE_OK;
|
||||
}
|
||||
#endif
|
||||
#endif /* HAS_MODERN_SET_PROTO_VER */
|
||||
|
||||
#ifdef OPENSSL_IS_BORINGSSL
|
||||
typedef uint32_t ctx_option_t;
|
||||
@@ -2434,7 +2444,7 @@ typedef uint64_t ctx_option_t;
|
||||
typedef long ctx_option_t;
|
||||
#endif
|
||||
|
||||
#if (OPENSSL_VERSION_NUMBER < 0x10100000L) /* 1.1.0 */
|
||||
#if !defined(HAS_MODERN_SET_PROTO_VER)
|
||||
static CURLcode
|
||||
set_ssl_version_min_max_legacy(ctx_option_t *ctx_options,
|
||||
struct Curl_easy *data,
|
||||
@@ -2509,7 +2519,7 @@ set_ssl_version_min_max_legacy(ctx_option_t *ctx_options,
|
||||
}
|
||||
return CURLE_OK;
|
||||
}
|
||||
#endif
|
||||
#endif /* ! HAS_MODERN_SET_PROTO_VER */
|
||||
|
||||
/* The "new session" callback must return zero if the session can be removed
|
||||
* or non-zero if the session has been put into the session cache.
|
||||
@@ -2813,7 +2823,7 @@ static CURLcode ossl_connect_step1(struct Curl_easy *data,
|
||||
ctx_options |= SSL_OP_NO_SSLv2;
|
||||
ctx_options |= SSL_OP_NO_SSLv3;
|
||||
|
||||
#if (OPENSSL_VERSION_NUMBER >= 0x10100000L) /* 1.1.0 */
|
||||
#if HAS_MODERN_SET_PROTO_VER /* 1.1.0 */
|
||||
result = set_ssl_version_min_max(backend->ctx, conn);
|
||||
#else
|
||||
result = set_ssl_version_min_max_legacy(&ctx_options, data, conn,
|
||||
|
||||
Reference in New Issue
Block a user