124 lines
4.8 KiB
CMake
124 lines
4.8 KiB
CMake
set (DISTRIB_DIR "${CMAKE_BINARY_DIR}/distrib")
|
|
set (DISTRIB_NAME "${DISTRIB_DIR}/${PACKAGE_DIR}")
|
|
add_custom_target (prep-source
|
|
COMMAND ${CMAKE_MAKE_PROGRAM} package_source
|
|
COMMAND ${CMAKE_COMMAND} -E rm -rf ${DISTRIB_NAME}
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory
|
|
_CPack_Packages/Linux-Source/TGZ/${PACKAGE_DIR} ${DISTRIB_NAME}
|
|
COMMAND cd ${DISTRIB_NAME} &&
|
|
find * -type f | sort -u > ${DISTRIB_DIR}/files.1 &&
|
|
( cd ${PROJECT_SOURCE_DIR} && git ls-files ) |
|
|
sort -u > ${DISTRIB_DIR}/files.2 &&
|
|
comm -23 ${DISTRIB_DIR}/files.[12] | xargs -r -d '\\n' rm
|
|
# Remove now empty directories
|
|
COMMAND for p in 1 2 3 4 5\; do
|
|
find ${DISTRIB_NAME} -type d -empty -print0 | xargs -0r rmdir\; done
|
|
COMMAND ${CMAKE_COMMAND} -E rm -f autogen.done)
|
|
add_custom_command (OUTPUT autogen.done
|
|
COMMAND cd ${DISTRIB_NAME} && ${PROJECT_SOURCE_DIR}/autogen.sh &&
|
|
touch ${PROJECT_BINARY_DIR}/autogen.done
|
|
DEPENDS prep-source autogen.sh configure.ac
|
|
Makefile.am src/Makefile.am include/Makefile.am tools/Makefile.am
|
|
doc/Makefile.am man/Makefile.am cmake/Makefile.am
|
|
examples/Makefile.am tests/Makefile.am)
|
|
add_dependencies (distrib-man prep-source)
|
|
add_custom_target (distrib-all DEPENDS distrib-man autogen.done)
|
|
add_custom_command (TARGET distrib-all
|
|
COMMAND cd ${DISTRIB_NAME} && echo ${PROJECT_VERSION} > VERSION &&
|
|
chmod -R g-w .)
|
|
add_custom_target (dist
|
|
COMMAND
|
|
cd ${DISTRIB_DIR} &&
|
|
find ${PACKAGE_DIR} -type f | tar cfzT ${PACKAGE_NAME}.tar.gz -
|
|
COMMAND
|
|
rm -f ${DISTRIB_DIR}/${PACKAGE_NAME}.zip &&
|
|
cd ${DISTRIB_DIR} &&
|
|
find ${PACKAGE_DIR} -type f | zip -q ${PACKAGE_NAME}.zip -@
|
|
COMMENT "created distrib/${PACKAGE_NAME}.{tar.gz,zip}")
|
|
add_dependencies (dist distrib-all)
|
|
|
|
if (RSYNC)
|
|
set (USER karney)
|
|
set (DATATOP $ENV{HOME}/web/geographiclib-files)
|
|
set (DATAROOT ${DATATOP}/distrib-C++)
|
|
set (DOCTOP $ENV{HOME}/web/geographiclib-web)
|
|
set (DOCROOT ${DOCTOP}/htdocs/C++)
|
|
set (CGIROOT ${DOCTOP}/cgi-bin)
|
|
set (GEOIDROOT ${DOCTOP}/geoids)
|
|
set (FRSDEPLOY ${USER}@frs.sourceforge.net:/home/frs/project/geographiclib)
|
|
set (WEBDEPLOY ${USER},geographiclib@web.sourceforge.net:.)
|
|
|
|
add_custom_target (stage-dist
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
${DISTRIB_DIR}/${PACKAGE_NAME}.tar.gz
|
|
${DISTRIB_DIR}/${PACKAGE_NAME}.zip
|
|
${PROJECT_SOURCE_DIR}/data-distrib/distrib-C++/)
|
|
add_dependencies (stage-dist dist)
|
|
|
|
if (BUILD_DOCUMENTATION)
|
|
add_custom_target (stage-doc
|
|
COMMAND ${RSYNC} --delete -a doc/html/ ${DOCROOT}/${PROJECT_VERSION}/)
|
|
add_dependencies (stage-doc doc)
|
|
endif ()
|
|
|
|
add_custom_target (deploy-dist
|
|
COMMAND
|
|
${RSYNC} --delete -av --exclude '*~'
|
|
${PROJECT_SOURCE_DIR}/data-distrib/distrib-C++/ ${DATAROOT}/ &&
|
|
${RSYNC} --delete -av
|
|
${PROJECT_SOURCE_DIR}/data-distrib/00README.md
|
|
${PROJECT_SOURCE_DIR}/data-distrib/distrib ${DATATOP}/
|
|
COMMAND ${RSYNC} --delete -av
|
|
${DATAROOT} ${DATATOP}/00README.md ${DATATOP}/distrib
|
|
${USER}@frs.sourceforge.net:/home/frs/project/geographiclib/)
|
|
add_custom_target (deploy-data
|
|
COMMAND
|
|
${RSYNC} --delete -av --exclude '*~'
|
|
${PROJECT_SOURCE_DIR}/data-distrib/*-distrib ${DATATOP}/
|
|
COMMAND ${RSYNC} --delete -av ${DATATOP}/*-distrib
|
|
${USER}@frs.sourceforge.net:/home/frs/project/geographiclib/)
|
|
add_custom_target (deploy-doc
|
|
COMMAND ${RSYNC} --delete -av -e ssh ${DOCROOT} ${WEBDEPLOY}/htdocs/)
|
|
|
|
set (CGI_SCRIPTS
|
|
GeoConvert GeodSolve GeoidEval Planimeter RhumbSolve printlogs Geod)
|
|
set (CGI_UTILS utils)
|
|
|
|
add_custom_target (stage-cgi
|
|
COMMAND for f in ${CGI_SCRIPTS}\; do
|
|
install -C $$f.cgi ${CGIROOT}/$$f\; done
|
|
COMMAND for f in ${CGI_UTILS}\; do
|
|
install -C -m 644 $$f.sh ${CGIROOT}/$$f.sh\; done
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/cgi-bin)
|
|
|
|
add_custom_target (deploy-cgi
|
|
COMMAND ${RSYNC} --delete -av -e ssh ${CGIROOT} ${GEOIDROOT} ${WEBDEPLOY}/)
|
|
|
|
endif ()
|
|
|
|
if (NOT WIN32)
|
|
set (BINARY_EXT "m4|gif|pdf|png|kmz")
|
|
add_custom_target (checktrailingspace
|
|
COMMAND git ls-files |
|
|
egrep -v '\\.\(${BINARY_EXT}\)$$' |
|
|
xargs grep '[ \t]$$' || true
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
COMMENT "Looking for trailing spaces")
|
|
add_custom_target (checktabs
|
|
COMMAND git ls-files |
|
|
egrep -v '\([Mm]akefile|test-distribution.sh|\\.\(${BINARY_EXT}\)$$\)' |
|
|
xargs grep -l '\t' || true
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
COMMENT "Looking for tabs")
|
|
add_custom_target (checkblanklines
|
|
COMMAND git ls-files |
|
|
egrep -v '\\.\(${BINARY_EXT}\)$$' |
|
|
while read f\; do tr 'X\\n' 'YX' < $$f |
|
|
egrep '\(^X|XXX|XX$$|[^X]$$\)' > /dev/null && echo $$f\; done || true
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
COMMENT "Looking for extra blank lines")
|
|
|
|
add_custom_target (sanitize)
|
|
add_dependencies (sanitize checktrailingspace checktabs checkblanklines)
|
|
endif ()
|