"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 )