build: use configurehelp.pm.in with autotools and cmake
Before this patch, each build tool generated `tests/configurehelp.pm` manually. Ref: https://github.com/curl/curl/pull/14802#issuecomment-2332734326 Closes #14819
This commit is contained in:
parent
7100c5bc9b
commit
867c187fdf
32
acinclude.m4
32
acinclude.m4
@ -1518,44 +1518,20 @@ AC_DEFUN([CURL_CHECK_PKGCONFIG], [
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl CURL_GENERATE_CONFIGUREHELP_PM
|
dnl CURL_PREPARE_CONFIGUREHELP_PM
|
||||||
dnl -------------------------------------------------
|
dnl -------------------------------------------------
|
||||||
dnl Generate test harness configurehelp.pm module, defining and
|
dnl Prepare test harness configurehelp.pm module, defining and
|
||||||
dnl initializing some perl variables with values which are known
|
dnl initializing some perl variables with values which are known
|
||||||
dnl when the configure script runs. For portability reasons, test
|
dnl when the configure script runs. For portability reasons, test
|
||||||
dnl harness needs information on how to run the C preprocessor.
|
dnl harness needs information on how to run the C preprocessor.
|
||||||
|
|
||||||
AC_DEFUN([CURL_GENERATE_CONFIGUREHELP_PM], [
|
AC_DEFUN([CURL_PREPARE_CONFIGUREHELP_PM], [
|
||||||
AC_REQUIRE([AC_PROG_CPP])dnl
|
AC_REQUIRE([AC_PROG_CPP])dnl
|
||||||
tmp_cpp=`eval echo "$ac_cpp" 2>/dev/null`
|
tmp_cpp=`eval echo "$ac_cpp" 2>/dev/null`
|
||||||
if test -z "$tmp_cpp"; then
|
if test -z "$tmp_cpp"; then
|
||||||
tmp_cpp='cpp'
|
tmp_cpp='cpp'
|
||||||
fi
|
fi
|
||||||
cat >./tests/configurehelp.pm <<_EOF
|
AC_SUBST(CURL_CPP, $tmp_cpp)
|
||||||
[@%:@] This is a generated file. Do not edit.
|
|
||||||
|
|
||||||
package configurehelp;
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
use Exporter;
|
|
||||||
|
|
||||||
use vars qw(
|
|
||||||
@ISA
|
|
||||||
@EXPORT_OK
|
|
||||||
\$Cpreprocessor
|
|
||||||
);
|
|
||||||
|
|
||||||
@ISA = qw(Exporter);
|
|
||||||
|
|
||||||
@EXPORT_OK = qw(
|
|
||||||
\$Cpreprocessor
|
|
||||||
);
|
|
||||||
|
|
||||||
\$Cpreprocessor = '$tmp_cpp';
|
|
||||||
|
|
||||||
1;
|
|
||||||
_EOF
|
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -5274,6 +5274,8 @@ if test "x$want_curldebug_assumed" = "xyes" &&
|
|||||||
ac_configure_args="$ac_configure_args --enable-curldebug"
|
ac_configure_args="$ac_configure_args --enable-curldebug"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
CURL_PREPARE_CONFIGUREHELP_PM
|
||||||
|
|
||||||
AC_CONFIG_FILES([\
|
AC_CONFIG_FILES([\
|
||||||
Makefile \
|
Makefile \
|
||||||
docs/Makefile \
|
docs/Makefile \
|
||||||
@ -5289,6 +5291,7 @@ AC_CONFIG_FILES([\
|
|||||||
lib/libcurl.vers \
|
lib/libcurl.vers \
|
||||||
tests/Makefile \
|
tests/Makefile \
|
||||||
tests/config \
|
tests/config \
|
||||||
|
tests/configurehelp.pm \
|
||||||
tests/certs/Makefile \
|
tests/certs/Makefile \
|
||||||
tests/certs/scripts/Makefile \
|
tests/certs/scripts/Makefile \
|
||||||
tests/data/Makefile \
|
tests/data/Makefile \
|
||||||
@ -5305,8 +5308,6 @@ AC_CONFIG_FILES([\
|
|||||||
])
|
])
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
CURL_GENERATE_CONFIGUREHELP_PM
|
|
||||||
|
|
||||||
SUPPORT_PROTOCOLS_LOWER=`echo "$SUPPORT_PROTOCOLS" | tr A-Z a-z`
|
SUPPORT_PROTOCOLS_LOWER=`echo "$SUPPORT_PROTOCOLS" | tr A-Z a-z`
|
||||||
|
|
||||||
AC_MSG_NOTICE([Configured to build curl/libcurl:
|
AC_MSG_NOTICE([Configured to build curl/libcurl:
|
||||||
|
|||||||
@ -55,42 +55,24 @@ endfunction()
|
|||||||
|
|
||||||
# Create configurehelp.pm, used by tests needing to run the C preprocessor.
|
# Create configurehelp.pm, used by tests needing to run the C preprocessor.
|
||||||
if(MSVC OR CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
if(MSVC OR CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||||
set(_cpp_cmd "\"${CMAKE_C_COMPILER}\" -E")
|
set(CURL_CPP "\"${CMAKE_C_COMPILER}\" -E")
|
||||||
if(APPLE AND CMAKE_OSX_SYSROOT)
|
if(APPLE AND CMAKE_OSX_SYSROOT)
|
||||||
set(_cpp_cmd "${_cpp_cmd} -isysroot ${CMAKE_OSX_SYSROOT}")
|
set(CURL_CPP "${CURL_CPP} -isysroot ${CMAKE_OSX_SYSROOT}")
|
||||||
endif()
|
endif()
|
||||||
# Add header directories, like autotools builds do.
|
# Add header directories, like autotools builds do.
|
||||||
get_property(_include_dirs TARGET ${LIB_SELECTED} PROPERTY INCLUDE_DIRECTORIES)
|
get_property(_include_dirs TARGET ${LIB_SELECTED} PROPERTY INCLUDE_DIRECTORIES)
|
||||||
foreach(_include_dir IN LISTS _include_dirs)
|
foreach(_include_dir IN LISTS _include_dirs)
|
||||||
set(_cpp_cmd "${_cpp_cmd} -I${_include_dir}")
|
set(CURL_CPP "${CURL_CPP} -I${_include_dir}")
|
||||||
endforeach()
|
endforeach()
|
||||||
else()
|
else()
|
||||||
set(_cpp_cmd "cpp")
|
set(CURL_CPP "cpp")
|
||||||
endif()
|
endif()
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/configurehelp.pm" "# This is a generated file. Do not edit.
|
# Generate version script for the linker, for versioned symbols.
|
||||||
|
# Consumed variable:
|
||||||
package configurehelp;
|
# CURL_CPP
|
||||||
|
configure_file(
|
||||||
use strict;
|
"${CMAKE_CURRENT_SOURCE_DIR}/configurehelp.pm.in"
|
||||||
use warnings;
|
"${CMAKE_CURRENT_BINARY_DIR}/configurehelp.pm" @ONLY)
|
||||||
use Exporter;
|
|
||||||
|
|
||||||
use vars qw(
|
|
||||||
@ISA
|
|
||||||
@EXPORT_OK
|
|
||||||
\$Cpreprocessor
|
|
||||||
);
|
|
||||||
|
|
||||||
@ISA = qw(Exporter);
|
|
||||||
|
|
||||||
@EXPORT_OK = qw(
|
|
||||||
\$Cpreprocessor
|
|
||||||
);
|
|
||||||
|
|
||||||
\$Cpreprocessor = '${_cpp_cmd}';
|
|
||||||
|
|
||||||
1;
|
|
||||||
")
|
|
||||||
|
|
||||||
add_runtests(test-quiet "-a -s")
|
add_runtests(test-quiet "-a -s")
|
||||||
add_runtests(test-am "-a -am")
|
add_runtests(test-am "-a -am")
|
||||||
|
|||||||
@ -95,8 +95,6 @@ EXTRA_DIST = \
|
|||||||
$(TESTSCRIPTS) \
|
$(TESTSCRIPTS) \
|
||||||
$(CURLPAGES)
|
$(CURLPAGES)
|
||||||
|
|
||||||
DISTCLEANFILES = configurehelp.pm
|
|
||||||
|
|
||||||
# we have two variables here to make sure DIST_SUBDIRS won't get 'unit'
|
# we have two variables here to make sure DIST_SUBDIRS won't get 'unit'
|
||||||
# added twice as then targets such as 'distclean' misbehave and try to
|
# added twice as then targets such as 'distclean' misbehave and try to
|
||||||
# do things twice in that subdir at times (and thus fails).
|
# do things twice in that subdir at times (and thus fails).
|
||||||
|
|||||||
45
tests/configurehelp.pm.in
Normal file
45
tests/configurehelp.pm.in
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#***************************************************************************
|
||||||
|
# _ _ ____ _
|
||||||
|
# Project ___| | | | _ \| |
|
||||||
|
# / __| | | | |_) | |
|
||||||
|
# | (__| |_| | _ <| |___
|
||||||
|
# \___|\___/|_| \_\_____|
|
||||||
|
#
|
||||||
|
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
|
#
|
||||||
|
# This software is licensed as described in the file COPYING, which
|
||||||
|
# you should have received as part of this distribution. The terms
|
||||||
|
# are also available at https://curl.se/docs/copyright.html.
|
||||||
|
#
|
||||||
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||||
|
# copies of the Software, and permit persons to whom the Software is
|
||||||
|
# furnished to do so, under the terms of the COPYING file.
|
||||||
|
#
|
||||||
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
# KIND, either express or implied.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: curl
|
||||||
|
#
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
package configurehelp;
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
use Exporter;
|
||||||
|
|
||||||
|
use vars qw(
|
||||||
|
@ISA
|
||||||
|
@EXPORT_OK
|
||||||
|
$Cpreprocessor
|
||||||
|
);
|
||||||
|
|
||||||
|
@ISA = qw(Exporter);
|
||||||
|
|
||||||
|
@EXPORT_OK = qw(
|
||||||
|
$Cpreprocessor
|
||||||
|
);
|
||||||
|
|
||||||
|
$Cpreprocessor = '@CURL_CPP@';
|
||||||
|
|
||||||
|
1;
|
||||||
Loading…
Reference in New Issue
Block a user