+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")
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)
-f pdf
${PDF_ARGUMENTS}
${CMAKE_CURRENT_BINARY_DIR}/snort_manual.txt
- DEPENDS ${ALL_SOURCES}
+ DEPENDS ${ALL_SOURCES}
COMMENT "Documents: building snort_manual.pdf"
)
# 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})
# 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.