Skip to content

Commit f5eed66

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

File tree

7 files changed

+96
-145
lines changed

7 files changed

+96
-145
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.

devel-tools/generate-namd-makefile.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
#!/bin/bash
22

3+
set -e
4+
35
# Generate a file suitable for inclusion by the NAMD Makefile
46

57
if [ -f "${2}" ] ; then
6-
echo "Usage: ${0} <sources_var_name> <sources_path> <objs_var_name> <obj_path> [... source files ...]" >& 1
8+
echo "Usage: ${0} <sources_var_name> <sources_path> <objs_var_name> <obj_path> [... source files ...]" >& 2
79
exit 1
810
fi
911

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

update-colvars-code.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,12 @@ 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" \
498+
"${source}/src/"*.cpp \
499+
"${source}/src/"*.h \
500+
"${source}/vmd/src/"*.C \
501+
"${source}/vmd/src/"*.h \
502+
> "${target}/src/colvars_files.pl"
498503

499504
echo ' done.'
500505

vmd/src/colvars_files.pl

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

0 commit comments

Comments
 (0)