diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2021-10-25 19:17:53 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-25 19:17:53 +0200 |
| commit | 0fe32d249fd3801429fa08a057639128d99c5e45 (patch) | |
| tree | d14977b3fe7e87779679fc85c23a6cc29ec74fbd | |
| parent | 24ad521d3e74762cee08ca91867551d33a9e7b9f (diff) | |
| parent | 37d141a5d666952824292be84ad854f4fe45e163 (diff) | |
| download | PROJ-0fe32d249fd3801429fa08a057639128d99c5e45.tar.gz PROJ-0fe32d249fd3801429fa08a057639128d99c5e45.zip | |
Merge pull request #2913 from rouault/fix_2905
lib_proj.cmake: add a PROJ::proj alias and add BUILD_INTERFACE include directories...
| -rw-r--r-- | src/lib_proj.cmake | 4 | ||||
| -rwxr-xr-x | travis/install.sh | 27 |
2 files changed, 29 insertions, 2 deletions
diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index efad5552..a35eeb8c 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -372,6 +372,8 @@ add_library(proj ${ALL_LIBPROJ_HEADERS} ${PROJ_RESOURCES} ) +add_library(PROJ::proj ALIAS proj) + target_compile_options(proj PRIVATE $<$<COMPILE_LANGUAGE:C>:${PROJ_C_WARN_FLAGS}> PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${PROJ_CXX_WARN_FLAGS}> @@ -402,6 +404,8 @@ if(ENABLE_IPO) endif() target_include_directories(proj INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<BUILD_INTERFACE:${PROJ_SOURCE_DIR}/include> $<INSTALL_INTERFACE:${INCLUDEDIR}>) if(WIN32) diff --git a/travis/install.sh b/travis/install.sh index a07e7784..d0b4d9cb 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -115,10 +115,33 @@ fi if [ "$BUILD_NAME" != "linux_gcc8" -a "$BUILD_NAME" != "linux_gcc_32bit" ]; then - # cmake build from generated tarball + cmake --version + + # Build PROJ as a subproject + mkdir proj_as_subproject + cd proj_as_subproject + mkdir external + ln -s $PWD/.. external/PROJ + + echo '#include "proj.h"' > mytest.c + echo 'int main() { proj_info(); return 0; }' >> mytest.c + + echo 'cmake_minimum_required(VERSION 3.9)' > CMakeLists.txt + echo 'project(mytest)' >> CMakeLists.txt + echo 'add_subdirectory(external/PROJ)' >> CMakeLists.txt + echo 'add_executable(mytest mytest.c)' >> CMakeLists.txt + echo 'target_include_directories(mytest PRIVATE $<TARGET_PROPERTY:PROJ::proj,INTERFACE_INCLUDE_DIRECTORIES>)' >> CMakeLists.txt + echo 'target_link_libraries(mytest PRIVATE PROJ::proj)' >> CMakeLists.txt + + mkdir build_cmake + cd build_cmake + cmake .. -DCMAKE_BUILD_TYPE=Debug + VERBOSE=1 make >/dev/null + cd ../.. + + # Regular build mkdir build_cmake cd build_cmake - cmake --version cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/proj_cmake_install VERBOSE=1 make >/dev/null make install >/dev/null |
