From: Josh Date: Tue, 25 Nov 2014 17:17:19 +0000 (-0600) Subject: updating CMake 'dist' target. Packages source as expected X-Git-Tag: 3.0.0-233~1160 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4cbadea4bcfadb3082d7dc0795dfc02063411cb7;p=thirdparty%2Fsnort3.git updating CMake 'dist' target. Packages source as expected --- diff --git a/cmake/packaging_data.cmake b/cmake/packaging_data.cmake index ae0ee681b..d347b687f 100644 --- a/cmake/packaging_data.cmake +++ b/cmake/packaging_data.cmake @@ -1,4 +1,9 @@ +add_custom_target(dist + COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target copy_manuals_to_source + COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target package_source + COMMAND ${CMAKE_COMMAND} --build ${CMAKE_BINARY_DIR} --target delete_manuals_in_source +) set (CPACK_GENERATOR TGZ) set (CPACK_PACKAGE_NAME "snort") @@ -10,7 +15,8 @@ set (CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/doc/images/snort.png") set (CPACK_PACKAGE_INSTALL_DIRECTORY "snort") set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING") set (CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/doc/start.txt") -set (CPACK_SOURCE_IGNORE_FILES "tools/snort2lua/tests*;.git/*;.gitignore") +set (CPACK_SOURCE_IGNORE_FILES "tools/snort2lua/tests*;.git/*;.gitignore;${CMAKE_BINARY_DIR}*;*/m4/*") +set (CPACK_SOURCE_GENERATOR TGZ) include(CPack) diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 664ba4a09..d5c7fad7b 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -241,7 +241,7 @@ add_custom_command(OUTPUT snort_manual.pdf -f pdf ${PDF_ARGUMENTS} ${CMAKE_CURRENT_BINARY_DIR}/snort_manual.txt - DEPENDS ${ALL_SOURCES} + DEPENDS ${ALL_SOURCES} COMMENT "Documents: building snort_manual.pdf" ) @@ -277,11 +277,41 @@ add_custom_command(OUTPUT images.tgz # built documents -add_custom_target(snort_manuals ALL - DEPENDS ${EXTRA_DIST} -) -#add_dependencies(snort_manuals snort ${ALL_SOURCES}) - - +add_custom_target(snort_manuals ALL DEPENDS ${EXTRA_DIST}) install (FILES ${EXTRA_DIST_BINARY_PATH} DESTINATION "${SNORT_DATA_DIR}") install (FILES ${UNBUILT_SOURCES} DESTINATION "${SNORT_DATA_DIR}") + + + + +############################################################################### +############################################################################### + +# Packaging commands. Used by cpack to move manuals to/from source tree + +add_custom_target (delete_manuals_in_source) +set (COPY_MANUALS) + +foreach (manual ${EXTRA_DIST}) + set (output "${CMAKE_CURRENT_LIST_DIR}/${manual}") + + list(APPEND COPY_MANUALS ${output}) + add_custom_command( + OUTPUT "${output}" + COMMAND ${CMAKE_COMMAND} -E copy ${manual} ${CMAKE_CURRENT_LIST_DIR}/${manual} + DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${manual}" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + COMMENT "Documents: copying ${manual} into source directory" + VERBATIM + ) + + add_custom_command( + TARGET delete_manuals_in_source + PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_CURRENT_LIST_DIR}/${manual} + COMMENT "Documents: deleting ${manual} from source directory" + VERBATIM + ) +endforeach (manual) + +add_custom_target (copy_manuals_to_source DEPENDS ${COPY_MANUALS}) diff --git a/extra/src/CMakeLists.txt b/extra/src/CMakeLists.txt index e6fc6ee91..dab1b84fd 100644 --- a/extra/src/CMakeLists.txt +++ b/extra/src/CMakeLists.txt @@ -109,8 +109,8 @@ if (BUILD_EXTRA_PLUGINS) # only cleans extra plugins. Also, we check in the top # level cmake file to ensure that Makefiles have been # generated. So, the command is definitely valid. - # 3) Ensure we don't recursively build this directly. Also, - # make sure we install into a temporary directory + # 3) Ensure we don't recursively build this directly. Also + # ensures we install into a temporary directory # 4) build snort. Can technically be combined with 'make install' # but lets keep them seperate for clarity. # 5) install snort into the temp install directory.