diff options
| author | Mike Taves <mwtoews@gmail.com> | 2021-05-09 00:09:56 +1200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-09 00:09:56 +1200 |
| commit | 592a6017bc08d453a9a58c97a8f568105b31bdbb (patch) | |
| tree | 59087838a3e36983573ffe149c6ca949bc4c2b92 | |
| parent | 641ee7029c6cd6271ab5b2229f564892ca2b3750 (diff) | |
| download | PROJ-592a6017bc08d453a9a58c97a8f568105b31bdbb.tar.gz PROJ-592a6017bc08d453a9a58c97a8f568105b31bdbb.zip | |
CMake: "make dist" workalike via CPack (#2690)
| -rw-r--r-- | CMakeLists.txt | 57 | ||||
| -rw-r--r-- | cmake/Makefile.am | 1 | ||||
| -rw-r--r-- | cmake/ProjReadme.cmake | 28 | ||||
| -rwxr-xr-x | travis/install.sh | 14 |
4 files changed, 99 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 67a8d2e1..bb1fdf93 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -333,3 +333,60 @@ if(UNIX OR MINGW) ${CMAKE_CURRENT_BINARY_DIR}/proj.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) endif() + +################################################################################ +# "make dist" workalike +################################################################################ + +set(CPACK_SOURCE_GENERATOR "TGZ;ZIP") +set(CPACK_SOURCE_PACKAGE_FILE_NAME "proj-${PROJ_VERSION}") +set(CPACK_PACKAGE_VENDOR "OSGeo") +set(CPACK_PACKAGE_VERSION_MAJOR ${PROJ_VERSION_MAJOR}) +set(CPACK_PACKAGE_VERSION_MINOR ${PROJ_VERSION_MINOR}) +set(CPACK_PACKAGE_VERSION_PATCH ${PROJ_VERSION_PATCH}) +set(CPACK_VERBATIM_VARIABLES TRUE) +set(CPACK_SOURCE_IGNORE_FILES + /\\..* # any file/directory starting with . + /.*\\.yml + /.*\\.gz + /.*\\.zip + /.*build.*/ + \\.deps + /autogen\\.sh + /autom4te\\.cache + /CODE_OF_CONDUCT.md + /CONTRIBUTING.md + /Dockerfile + /docs/ + /Doxyfile + /examples/ + /HOWTO-RELEASE + /m4/lt* + /m4/libtool* + /media/ + /schemas/ + /scripts/ + /test/fuzzers/ + /test/gigs/.*gie\\.failing + /test/postinstall/ + /travis/ + ${PROJECT_BINARY_DIR} +) + +include(CPack) + +# Simplify README.md to README +add_custom_target(README + COMMAND ${CMAKE_COMMAND} + -D PROJ_SOURCE_DIR=${PROJ_SOURCE_DIR} + -P ${PROJ_SOURCE_DIR}/cmake/ProjReadme.cmake +) + +get_property(_is_multi_config_generator GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(NOT _is_multi_config_generator) + add_custom_target(dist + COMMAND ${CMAKE_MAKE_PROGRAM} package_source + DEPENDS README + ) + message(STATUS "PROJ: Configured 'dist' target") +endif() diff --git a/cmake/Makefile.am b/cmake/Makefile.am index 1ecd784e..cdad1ff8 100644 --- a/cmake/Makefile.am +++ b/cmake/Makefile.am @@ -4,6 +4,7 @@ EXTRA_DIST = CMakeLists.txt \ proj_config.cmake.in \ ProjConfig.cmake \ ProjMac.cmake \ + ProjReadme.cmake \ ProjTest.cmake \ ProjVersion.cmake \ policies.cmake \ diff --git a/cmake/ProjReadme.cmake b/cmake/ProjReadme.cmake new file mode 100644 index 00000000..7071a381 --- /dev/null +++ b/cmake/ProjReadme.cmake @@ -0,0 +1,28 @@ +# +# CMake script to modify README.md to create simpler README file +# +# This is equivalent to: fgrep -v "[