diff options
-rw-r--r-- | CPackConfig.txt | 14 | ||||
-rw-r--r-- | cmake/modules/Dist.cmake | 11 |
2 files changed, 23 insertions, 2 deletions
diff --git a/CPackConfig.txt b/CPackConfig.txt index 3aa95bca33..934a86a4b2 100644 --- a/CPackConfig.txt +++ b/CPackConfig.txt @@ -34,8 +34,18 @@ else() set(CPACK_PACKAGE_NAME wireshark) endif() -set(CPACK_SOURCE_IGNORE_FILES "build" "/.git/") -add_custom_target(dist DEPENDS package_source) +# Directory to copy sources to +set(WS_SOURCE_DIR "${CMAKE_BINARY_DIR}/source_dir") +set(CPACK_SOURCE_INSTALLED_DIRECTORIES "${WS_SOURCE_DIR}/;/") +# dist target that prepares source dir +add_custom_target(dist + COMMAND "${CMAKE_COMMAND}" + -DPROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}" + -DGIT_EXECUTABLE="${GIT_EXECUTABLE}" + -DWS_SOURCE_DIR="${WS_SOURCE_DIR}" + -P "${CMAKE_SOURCE_DIR}/cmake/modules/Dist.cmake" + COMMAND "${CMAKE_MAKE_PROGRAM}" package_source +) set(CPACK_PACKAGE_DESCRIPTION "A set of command line and gui tools to capture and decode traffic") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Packet capturing and decoding") diff --git a/cmake/modules/Dist.cmake b/cmake/modules/Dist.cmake new file mode 100644 index 0000000000..7c0b3bb105 --- /dev/null +++ b/cmake/modules/Dist.cmake @@ -0,0 +1,11 @@ +message("Copying source files from ${PROJECT_SOURCE_DIR} to ${WS_SOURCE_DIR}") + +# create destination dir +file(MAKE_DIRECTORY "${WS_SOURCE_DIR}") + +# Copy all files in the state *as known by git*, respecting export-ignore in .gitattributes +execute_process(COMMAND "${GIT_EXECUTABLE}" checkout-index -a -f --prefix "${WS_SOURCE_DIR}/" WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + +# Generate the version.conf and put it in brand new source dir +execute_process(COMMAND "${GIT_EXECUTABLE}" describe WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE GIT_DESCRIBE) +file(WRITE "${WS_SOURCE_DIR}/version.conf" "git_description=${GIT_DESCRIBE}") |