Skip to content

Commit c1d210f

Browse files
Re-apply "Use standard CMake constructs to export the library's targets. (#260)"
Additionally, I have attempted to clean up some CMake issues to make the package's build interface cleaner, in particular, avoiding polluting the parent directory's include path with our config.h file (if PCRE2 is being included as a subdirectory). This re-adds changes from Theodore's commit def175f, and partially reverts changes from Carlo's commit 92d56a1. --- Co-authored-by: Theodore Tsirpanis <[email protected]>
1 parent 2e03e32 commit c1d210f

19 files changed

+227
-200
lines changed

.github/workflows/build.yml

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,26 @@ jobs:
121121
../maint/RunManifestTest install-dir ../maint/manifest-cmakeinstall-macos
122122
../maint/RunSymbolTest install-dir/lib/ ../maint/
123123
124+
- name: Test CMake install interface
125+
run: |
126+
INSTALL_PREFIX=`pwd`/build/install-dir
127+
cd maint/cmake-tests/install-interface
128+
cmake -DCMAKE_PREFIX_PATH="$INSTALL_PREFIX" -B build
129+
cd build
130+
make
131+
./test_executable
132+
133+
- name: Test CMake build interface
134+
run: |
135+
BUILD_DIR=`pwd`
136+
cp -rp maint/cmake-tests/build-interface ../cmake-tests-build-interface
137+
cd ../cmake-tests-build-interface
138+
ln -s "$BUILD_DIR" pcre2
139+
cmake -B build
140+
cd build
141+
make
142+
./test_executable
143+
124144
windows:
125145
name: Windows
126146
runs-on: windows-latest
@@ -150,6 +170,24 @@ jobs:
150170
../maint/RunManifestTest.ps1 install-dir ../maint/manifest-cmakeinstall-windows
151171
../maint/RunSymbolTest.ps1 install-dir/bin ../maint/
152172
173+
- name: Test CMake install interface
174+
run: |
175+
$INSTALL_PREFIX = (pwd).Path + "\build\install-dir"
176+
cd maint/cmake-tests/install-interface
177+
cmake -DCMAKE_PREFIX_PATH="$INSTALL_PREFIX" -B build -A ${{ matrix.arch }}
178+
cmake --build build --config Debug
179+
./build/Debug/test_executable
180+
181+
- name: Test CMake build interface
182+
run: |
183+
$BUILD_DIR = `pwd`
184+
cp -rp maint/cmake-tests/build-interface ../cmake-tests-build-interface
185+
cd ../cmake-tests-build-interface
186+
New-Item -ItemType SymbolicLink -Path "pcre2" -Target "$BUILD_DIR"
187+
cmake -B build -A ${{ matrix.arch }}
188+
cmake --build build --config Debug
189+
./build/Debug/test_executable
190+
153191
freebsd:
154192
name: FreeBSD
155193
runs-on: ubuntu-latest
@@ -191,7 +229,7 @@ jobs:
191229
echo "== CMake =="
192230
cd ../build-cmake
193231
194-
cmake -DPCRE2_SUPPORT_JIT=ON -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DPCRE2_DEBUG=ON -DCMAKE_C_FLAGS="$CFLAGS_GCC_STYLE" -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -B build
232+
cmake -DPCRE2_SUPPORT_JIT=ON -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DPCRE2_DEBUG=ON -DCMAKE_C_FLAGS="$CFLAGS_GCC_STYLE" -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_BUILD_TYPE=Release -B build
195233
cd build
196234
make -j3
197235
ctest -j3 --output-on-failure
@@ -273,7 +311,7 @@ jobs:
273311
echo "== CMake, 64-bit =="
274312
cd ../build-cmake-64
275313
276-
CC="cc -m64" cmake -DNCURSES_LIBRARY=termcap -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DPCRE2_DEBUG=ON -DCMAKE_C_FLAGS="$CFLAGS_SOLARIS_CC" -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -B build
314+
CC="cc -m64" cmake -DNCURSES_LIBRARY=termcap -DPCRE2_BUILD_PCRE2_16=ON -DPCRE2_BUILD_PCRE2_32=ON -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DPCRE2_DEBUG=ON -DCMAKE_C_FLAGS="$CFLAGS_SOLARIS_CC" -DCMAKE_COMPILE_WARNING_AS_ERROR=ON -DCMAKE_BUILD_TYPE=Release -B build
277315
cd build
278316
make
279317
ctest -j3 --output-on-failure

.github/workflows/dev.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,8 @@ jobs:
200200
run: |
201201
cd build
202202
cmake --install . --prefix install-dir
203+
# Slight hack to trick RunManifestTest to pass with MinSizeRel.
204+
mv install-dir/lib/cmake/pcre2/cmake-targets-minsizerelinux.cmake install-dir/lib/cmake/pcre2/cmake-targets-release.cmake
203205
../maint/RunManifestTest install-dir ../maint/manifest-cmakeinstall-linux
204206
../maint/RunSymbolTest install-dir/lib/ ../maint/
205207

0 commit comments

Comments
 (0)