"Fossies" - the Fresh Open Source Software Archive 
Member "evolution-mapi-3.46.1/cmake/modules/DistTargets.cmake" (2 Dec 2022, 3448 Bytes) of package /linux/misc/evolution-mapi-3.46.1.tar.xz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) CMake source code syntax highlighting (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
1 # DistTarget.cmake
2 #
3 # Defines custom targets related to distributing source code.
4 # It requires to have populated 'PROJECT_NAME' and 'PROJECT_VERSION' variables,
5 # possibly through the project() command. It also uses 'PROJECT_DISTCONFIGURE_PARAMS'
6 # variable when configuring the unpacked distribution.
7 #
8 # Added targets:
9 # dist - only creates a tarball
10 # disttest - creates a tarball and 'make && make install' it to a temporary prefix
11 # to verify that the code can be built and installed; it also verifies
12 # that the first line of the NEWS file contains the same version as
13 # the tarball and that it claims today's date.
14 # distcheck - similar to 'disttest', only runs also 'make check' before installing
15
16 # Filenames for tarball
17 set(ARCHIVE_BASE_NAME ${PROJECT_NAME}-${PROJECT_VERSION})
18 set(ARCHIVE_FULL_NAME ${ARCHIVE_BASE_NAME}.tar.xz)
19
20 add_custom_target(dist
21 COMMAND ${CMAKE_COMMAND} -E chdir . "${CMAKE_SOURCE_DIR}/cmake/verify-pre-dist.sh"
22 COMMAND ${CMAKE_COMMAND} -E echo "Creating '${ARCHIVE_FULL_NAME}'..."
23 COMMAND git archive --prefix=${ARCHIVE_BASE_NAME}/ HEAD | xz -z > ${CMAKE_BINARY_DIR}/${ARCHIVE_FULL_NAME}
24 COMMAND ${CMAKE_COMMAND} -E echo "Distribution tarball '${ARCHIVE_FULL_NAME}' created at ${CMAKE_BINARY_DIR}"
25 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
26 )
27
28 set(disttest_extract_dir "${CMAKE_BINARY_DIR}/${ARCHIVE_BASE_NAME}")
29 set(disttest_build_dir "${disttest_extract_dir}/_build")
30 set(disttest_install_dir "${disttest_extract_dir}/_install")
31
32 add_custom_command(OUTPUT ${disttest_build_dir}/Makefile
33 # remove any left-over directory
34 COMMAND ${CMAKE_COMMAND} -E remove_directory ${disttest_extract_dir}
35
36 # extract the tarball
37 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR} tar -xf ${ARCHIVE_FULL_NAME}
38
39 # verify the NEWS file contains what it should contain
40 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}
41 bash ${CMAKE_SOURCE_DIR}/cmake/verify-news-file.sh "${disttest_extract_dir}/NEWS" "${PROJECT_VERSION}"
42
43 # create a _build sub-directory
44 COMMAND ${CMAKE_COMMAND} -E make_directory "${disttest_build_dir}"
45
46 # configure the project with PROJECT_DISTCHECK_PARAMS
47 COMMAND ${CMAKE_COMMAND} -E chdir "${disttest_build_dir}"
48 ${CMAKE_COMMAND} -G "Unix Makefiles"
49 ${PROJECT_DISTCONFIGURE_PARAMS}
50 -DCMAKE_BUILD_TYPE=Release
51 -DCMAKE_INSTALL_PREFIX="${disttest_install_dir}"
52 ..
53
54 # 'make' the project
55 COMMAND ${CMAKE_COMMAND} -E chdir ${disttest_build_dir} make -j
56
57 DEPENDS dist
58 COMMENT "Building from distribution tarball ${ARCHIVE_FULL_NAME}..."
59 )
60
61 add_custom_target(distcheck
62 # 'make check' the project
63 COMMAND ${CMAKE_COMMAND} -E chdir ${disttest_build_dir} make -j check
64
65 # 'make install' the project
66 COMMAND ${CMAKE_COMMAND} -E chdir ${disttest_build_dir} make -j install
67
68 # if we get this far, then everything worked, thus clean up
69 COMMAND ${CMAKE_COMMAND} -E remove_directory ${disttest_extract_dir}
70
71 # and show the good news
72 COMMAND ${CMAKE_COMMAND} -E echo "distcheck of '${ARCHIVE_FULL_NAME}' succeeded"
73
74 DEPENDS ${disttest_build_dir}/Makefile
75 )
76
77 add_custom_target(disttest
78 # 'make install' the project
79 COMMAND ${CMAKE_COMMAND} -E chdir ${disttest_build_dir} make -j install
80
81 # if we get this far, then everything worked, thus clean up
82 COMMAND ${CMAKE_COMMAND} -E remove_directory ${disttest_extract_dir}
83
84 # and show the good news
85 COMMAND ${CMAKE_COMMAND} -E echo "disttest of '${ARCHIVE_FULL_NAME}' succeeded"
86
87 DEPENDS ${disttest_build_dir}/Makefile
88 )