aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorMike Taves <mwtoews@gmail.com>2021-05-09 00:09:56 +1200
committerGitHub <noreply@github.com>2021-05-09 00:09:56 +1200
commit592a6017bc08d453a9a58c97a8f568105b31bdbb (patch)
tree59087838a3e36983573ffe149c6ca949bc4c2b92 /CMakeLists.txt
parent641ee7029c6cd6271ab5b2229f564892ca2b3750 (diff)
downloadPROJ-592a6017bc08d453a9a58c97a8f568105b31bdbb.tar.gz
PROJ-592a6017bc08d453a9a58c97a8f568105b31bdbb.zip
CMake: "make dist" workalike via CPack (#2690)
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt57
1 files changed, 57 insertions, 0 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()