Skip to content

Commit f306b7b

Browse files
committed
build: require uv for script generation across cmake and autoconf
1 parent c90e14a commit f306b7b

7 files changed

Lines changed: 30 additions & 27 deletions

File tree

CMakeLists.txt

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,10 @@ if(GECODE_ENABLE_GCC_VISIBILITY)
116116
endif()
117117

118118
if(GECODE_REGENERATE_VARIMP)
119-
find_package(Perl REQUIRED)
119+
find_program(GECODE_UV_EXECUTABLE NAMES uv)
120+
if(NOT GECODE_UV_EXECUTABLE)
121+
message(FATAL_ERROR "GECODE_REGENERATE_VARIMP=ON requires uv on PATH")
122+
endif()
120123
endif()
121124

122125
if(GECODE_ENABLE_MPFR)
@@ -414,26 +417,26 @@ if(GECODE_REGENERATE_VARIMP)
414417
add_custom_command(
415418
OUTPUT ${GECODE_VAR_TYPE_HPP}
416419
COMMAND ${CMAKE_COMMAND}
417-
-DPERL_EXECUTABLE=${PERL_EXECUTABLE}
418-
-DGENVARIMP=${CMAKE_CURRENT_SOURCE_DIR}/misc/genvarimp.perl
420+
-DUV_EXECUTABLE=${GECODE_UV_EXECUTABLE}
421+
-DGENVARIMP=${CMAKE_CURRENT_SOURCE_DIR}/misc/genvarimp.py
419422
-DMODE=-typehpp
420423
-DOUT_FILE=${GECODE_VAR_TYPE_HPP}
421424
-DVIS_FILES_SERIALIZED=${GECODE_VIS_FILES_SERIALIZED}
422425
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/GenerateVarImp.cmake
423-
DEPENDS ${GECODE_VIS_DEPENDS} ${CMAKE_CURRENT_SOURCE_DIR}/misc/genvarimp.perl ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/configure.ac
426+
DEPENDS ${GECODE_VIS_DEPENDS} ${CMAKE_CURRENT_SOURCE_DIR}/misc/genvarimp.py ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/configure.ac
424427
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
425428
VERBATIM
426429
)
427430
add_custom_command(
428431
OUTPUT ${GECODE_VAR_IMP_HPP}
429432
COMMAND ${CMAKE_COMMAND}
430-
-DPERL_EXECUTABLE=${PERL_EXECUTABLE}
431-
-DGENVARIMP=${CMAKE_CURRENT_SOURCE_DIR}/misc/genvarimp.perl
433+
-DUV_EXECUTABLE=${GECODE_UV_EXECUTABLE}
434+
-DGENVARIMP=${CMAKE_CURRENT_SOURCE_DIR}/misc/genvarimp.py
432435
-DMODE=-header
433436
-DOUT_FILE=${GECODE_VAR_IMP_HPP}
434437
-DVIS_FILES_SERIALIZED=${GECODE_VIS_FILES_SERIALIZED}
435438
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/GenerateVarImp.cmake
436-
DEPENDS ${GECODE_VIS_DEPENDS} ${CMAKE_CURRENT_SOURCE_DIR}/misc/genvarimp.perl ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/configure.ac
439+
DEPENDS ${GECODE_VIS_DEPENDS} ${CMAKE_CURRENT_SOURCE_DIR}/misc/genvarimp.py ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/configure.ac
437440
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
438441
VERBATIM
439442
)

Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export SOSUFFIX = @DLL_ARCH@@USERSUFFIX@@SOSUFFIX@
124124
#
125125
export RMF = rm -rf
126126
export MV = mv
127-
export UVRUN = uv run --script
127+
export UVRUN = @PROG_UV@ run --script
128128
export MANIFEST = @MANIFEST@ -nologo
129129
export FIXMANIFEST = $(UVRUN) $(top_srcdir)/misc/fixmanifest.py $(DLLSUFFIX)
130130
export RESCOMP = @RESCOMP@ -n -i$(top_srcdir)

cmake/GenerateVarImp.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
if(NOT DEFINED PERL_EXECUTABLE OR NOT DEFINED GENVARIMP OR NOT DEFINED MODE OR NOT DEFINED OUT_FILE)
2-
message(FATAL_ERROR "GenerateVarImp.cmake requires PERL_EXECUTABLE, GENVARIMP, MODE, and OUT_FILE")
1+
if(NOT DEFINED UV_EXECUTABLE OR NOT DEFINED GENVARIMP OR NOT DEFINED MODE OR NOT DEFINED OUT_FILE)
2+
message(FATAL_ERROR "GenerateVarImp.cmake requires UV_EXECUTABLE, GENVARIMP, MODE, and OUT_FILE")
33
endif()
44

55
if(DEFINED VIS_FILES_SERIALIZED)
66
string(REPLACE "||" ";" VIS_FILES "${VIS_FILES_SERIALIZED}")
77
endif()
88

99
execute_process(
10-
COMMAND "${PERL_EXECUTABLE}" "${GENVARIMP}" "${MODE}" ${VIS_FILES}
10+
COMMAND "${UV_EXECUTABLE}" run --script "${GENVARIMP}" "${MODE}" ${VIS_FILES}
1111
OUTPUT_FILE "${OUT_FILE}"
1212
RESULT_VARIABLE genvarimp_status)
1313

configure

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,7 @@ RESCOMP
754754
HAVE_RC
755755
CXXCPP
756756
RUNENVIRONMENT
757-
PROG_PERL
757+
PROG_UV
758758
PROG_SED
759759
PROG_MAKE
760760
PROG_TAR
@@ -5157,16 +5157,16 @@ fi
51575157
if test "${PROG_SED}x" = "x"; then
51585158
as_fn_error $? "In order to compile Gecode, you need the sed tool." "$LINENO" 5
51595159
fi
5160-
# Extract the first word of "perl", so it can be a program name with args.
5161-
set dummy perl; ac_word=$2
5160+
# Extract the first word of "uv", so it can be a program name with args.
5161+
set dummy uv; ac_word=$2
51625162
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
51635163
printf %s "checking for $ac_word... " >&6; }
5164-
if test ${ac_cv_prog_PROG_PERL+y}
5164+
if test ${ac_cv_prog_PROG_UV+y}
51655165
then :
51665166
printf %s "(cached) " >&6
51675167
else case e in #(
5168-
e) if test -n "$PROG_PERL"; then
5169-
ac_cv_prog_PROG_PERL="$PROG_PERL" # Let the user override the test.
5168+
e) if test -n "$PROG_UV"; then
5169+
ac_cv_prog_PROG_UV="$PROG_UV" # Let the user override the test.
51705170
else
51715171
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
51725172
for as_dir in $PATH
@@ -5179,7 +5179,7 @@ do
51795179
esac
51805180
for ac_exec_ext in '' $ac_executable_extensions; do
51815181
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
5182-
ac_cv_prog_PROG_PERL="ok"
5182+
ac_cv_prog_PROG_UV="uv"
51835183
printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
51845184
break 2
51855185
fi
@@ -5190,18 +5190,18 @@ IFS=$as_save_IFS
51905190
fi ;;
51915191
esac
51925192
fi
5193-
PROG_PERL=$ac_cv_prog_PROG_PERL
5194-
if test -n "$PROG_PERL"; then
5195-
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROG_PERL" >&5
5196-
printf "%s\n" "$PROG_PERL" >&6; }
5193+
PROG_UV=$ac_cv_prog_PROG_UV
5194+
if test -n "$PROG_UV"; then
5195+
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROG_UV" >&5
5196+
printf "%s\n" "$PROG_UV" >&6; }
51975197
else
51985198
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
51995199
printf "%s\n" "no" >&6; }
52005200
fi
52015201

52025202

5203-
if test "${PROG_PERL}x" = "x"; then
5204-
as_fn_error $? "In order to compile Gecode, you need perl." "$LINENO" 5
5203+
if test "${PROG_UV}x" = "x"; then
5204+
as_fn_error $? "In order to compile Gecode, you need uv." "$LINENO" 5
52055205
fi
52065206

52075207
case $host_os in

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ AC_CHECK_PROG(PROG_SED, sed, [ok])
8686
if test "${PROG_SED}x" = "x"; then
8787
AC_MSG_ERROR([In order to compile Gecode, you need the sed tool.])
8888
fi
89-
AC_CHECK_PROG(PROG_UV, uv, [ok])
89+
AC_CHECK_PROG(PROG_UV, uv, [uv])
9090
if test "${PROG_UV}x" = "x"; then
9191
AC_MSG_ERROR([In order to compile Gecode, you need uv.])
9292
fi

configure.ac.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ AC_CHECK_PROG(PROG_SED, sed, [ok])
8686
if test "${PROG_SED}x" = "x"; then
8787
AC_MSG_ERROR([In order to compile Gecode, you need the sed tool.])
8888
fi
89-
AC_CHECK_PROG(PROG_UV, uv, [ok])
89+
AC_CHECK_PROG(PROG_UV, uv, [uv])
9090
if test "${PROG_UV}x" = "x"; then
9191
AC_MSG_ERROR([In order to compile Gecode, you need uv.])
9292
fi

misc/genrc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def main() -> int:
5252
" * CAUTION:\n"
5353
" * This file has been automatically generated. Do not edit,\n"
5454
" * edit the following files instead:\n"
55-
f" * - {dir_}/misc/genrc.perl\n"
55+
f" * - {dir_}/misc/genrc.py\n"
5656
)
5757
for src in srcfiles:
5858
sys.stdout.write(f" * - {src}\n")

0 commit comments

Comments
 (0)