Skip to content

Commit acf5d9c

Browse files
committed
build: Generate VMD dependency file automatically
1 parent 069440a commit acf5d9c

File tree

6 files changed

+87
-144
lines changed

6 files changed

+87
-144
lines changed

.github/workflows/backend-template.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,6 @@ jobs:
121121
ref: 'master'
122122
path: 'devel-tools/packages'
123123

124-
- name: Test build recipes
125-
run: bash devel-tools/check_build_recipes
126-
127124
- name: Build and test standalone library
128125
run: cmake -P devel-tools/build_test_library.cmake
129126

.github/workflows/test-library.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ jobs:
3939
# run: |
4040
# sudo apt -y install ccache
4141

42-
- name: Test build recipes
43-
run: bash devel-tools/check_build_recipes
44-
4542
- name: Convert BibTeX references to code
4643
shell: bash
4744
working-directory: doc

devel-tools/check_build_recipes

Lines changed: 0 additions & 26 deletions
This file was deleted.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
#!/bin/bash
2+
3+
# Generate the file colvars_files.pl used by VMD (i.e. a poor person's version of a dependency file)
4+
5+
if [ ! -f "${1}" ] ; then
6+
echo "Usage: ${0} [... source files ...] [... header files ...] [... CUDA source files ...]" >& 1
7+
exit 1
8+
fi
9+
10+
files=($(echo "${@}" | sort))
11+
12+
source_files=()
13+
header_files=()
14+
cuda_files=()
15+
for file in "${files[@]}" ; do
16+
if [ "${file%.cpp}" != "${file}" ] ; then
17+
source_files+=("${file}")
18+
elif [ "${file%.h}" != "${file}" ] ; then
19+
header_files+=("${file}")
20+
elif [ "${file%.cu}" != "${file}" ] ; then
21+
cuda_files+=("${file}")
22+
else
23+
echo "Error: file ${file} has an unsupported extennsion" >&2
24+
exit 1
25+
fi
26+
done
27+
28+
cat <<EOF
29+
# List of files for the Colvars module
30+
31+
our ( \$colvars_defines );
32+
33+
our ( @colvars_cc );
34+
our ( @colvars_cu );
35+
our ( @colvars_ccpp );
36+
our ( @colvars_h );
37+
38+
\$colvars_defines = " -DVMDCOLVARS";
39+
40+
@colvars_cc = ();
41+
EOF
42+
43+
44+
canonize_filename() {
45+
local file=$1
46+
if [ "${file%.cpp}" != "${file}" ] ; then
47+
basename "${file%.cpp}.C"
48+
else
49+
basename "${file}"
50+
fi
51+
}
52+
53+
54+
print_list() {
55+
local var_name=$1
56+
shift
57+
local -a files=(${@})
58+
echo "@${var_name} = ("
59+
for file in "${files[@]:0:${#files[@]}-1}" ; do
60+
if [ ! -f "${file}" ] ; then
61+
echo "Error: file ${file} is missing" >&2
62+
exit 1
63+
fi
64+
echo " '$(canonize_filename ${file})',"
65+
done
66+
echo " '$(canonize_filename ${files[${#files[@]}-1]})'"
67+
echo " );"
68+
}
69+
70+
if [ -n "${cuda_files}" ] ; then
71+
print_list "colvars_cu" "${cuda_files[@]}"
72+
else
73+
echo "@colvars_cu = ();"
74+
fi
75+
76+
if [ -n "${source_files}" ] ; then
77+
print_list "colvars_ccpp" "${source_files[@]}"
78+
else
79+
echo "@colvars_ccpp = ();"
80+
fi
81+
82+
if [ -n "${header_files}" ] ; then
83+
print_list "colvars_h" "${header_files[@]}"
84+
else
85+
echo "@colvars_h = ();"
86+
fi

update-colvars-code.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ then
494494
condcopy "${src}" "${target}/src/${tgt}"
495495
done
496496

497-
condcopy "${source}/vmd/src/colvars_files.pl" "${target}/src/colvars_files.pl"
497+
bash "${source}/devel-tools/generate-vmd-makefile.sh" > "${target}/src/colvars_files.pl"
498498

499499
echo ' done.'
500500

vmd/src/colvars_files.pl

Lines changed: 0 additions & 111 deletions
This file was deleted.

0 commit comments

Comments
 (0)