Revision: 76203 http://sourceforge.net/p/brlcad/code/76203 Author: starseeker Date: 2020-06-25 19:11:43 +0000 (Thu, 25 Jun 2020) Log Message: ----------- Add a no-tcl distcheck target. Need to disable the benchmark runs, since there aren't any .g files without asc2g, but does enough to be useful.
Modified Paths: -------------- brlcad/trunk/CMakeLists.txt brlcad/trunk/misc/CMake/CMakeLists.txt Added Paths: ----------- brlcad/trunk/misc/CMake/distcheck_no_tcl.cmake.in Modified: brlcad/trunk/CMakeLists.txt =================================================================== --- brlcad/trunk/CMakeLists.txt 2020-06-25 17:15:14 UTC (rev 76202) +++ brlcad/trunk/CMakeLists.txt 2020-06-25 19:11:43 UTC (rev 76203) @@ -3650,6 +3650,7 @@ # # CREATE_DISTCHECK(TARGET_SUFFIX CMAKE_OPTS source_dir build_dir install_dir [custom_template]) CREATE_DISTCHECK(default_build_type "-DBRLCAD_BUNDLED_LIBS=AUTO" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install") + CREATE_DISTCHECK(no_tcl "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_TCL=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install" distcheck_no_tcl.cmake.in) CREATE_DISTCHECK(no_tk "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_TK=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install") CREATE_DISTCHECK(no_strict "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_STRICT=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install") CREATE_DISTCHECK(no_object "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DUSE_OBJECT_LIBS=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install") Modified: brlcad/trunk/misc/CMake/CMakeLists.txt =================================================================== --- brlcad/trunk/misc/CMake/CMakeLists.txt 2020-06-25 17:15:14 UTC (rev 76202) +++ brlcad/trunk/misc/CMake/CMakeLists.txt 2020-06-25 19:11:43 UTC (rev 76203) @@ -85,6 +85,7 @@ configure_prefix.sh configure_suffix.sh distcheck_in_src_dir.cmake.in + distcheck_no_tcl.cmake.in distcheck_repo_verify.cmake.in distcheck_target.cmake.in distclean.cmake.in Added: brlcad/trunk/misc/CMake/distcheck_no_tcl.cmake.in =================================================================== --- brlcad/trunk/misc/CMake/distcheck_no_tcl.cmake.in (rev 0) +++ brlcad/trunk/misc/CMake/distcheck_no_tcl.cmake.in 2020-06-25 19:11:43 UTC (rev 76203) @@ -0,0 +1,106 @@ +# D I S T C H E C K _ T A R G E T . C M A K E . I N +# BRL-CAD +# +# Copyright (c) 2012-2020 United States Government as represented by +# the U.S. Army Research Laboratory. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# 3. The name of the author may not be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +### +set(check_distcheck +"file(GLOB_RECURSE BUILD_DIR_CONTENTS RELATIVE \"${CMAKE_CURRENT_BINARY_DIR}/distcheck-${TARGET_SUFFIX}/${build_dir}\" \"${CMAKE_CURRENT_BINARY_DIR}/distcheck-${TARGET_SUFFIX}/${build_dir}/*\") +if(BUILD_DIR_CONTENTS) + message(\"Files present after distclean in ${CMAKE_CURRENT_BINARY_DIR}/distcheck-${TARGET_SUFFIX}/${build_dir}:\") + foreach(filename \${BUILD_DIR_CONTENTS}) + message(\"\${filename}\") + endforeach(filename \${BUILD_DIR_CONTENTS}) + message(FATAL_ERROR \"distclean failed in ${CMAKE_CURRENT_BINARY_DIR}/distcheck-${TARGET_SUFFIX}/${build_dir}\") +endif(BUILD_DIR_CONTENTS) +") +file(WRITE "${CMAKE_BINARY_DIR}/CMakeTmp/distcheck-${TARGET_SUFFIX}-eval_distclean.cmake" "${check_distcheck}") + +# Note - the path name variables in this particular target are *deliberately* +# not put inside quotes. Normally in BRL-CAD paths should be quoted to handle +# spaces in paths, but in this particular instance the target/command logic +# ends up quoting the spaces directly. Consequently, adding quotes actually +# *introduces* errors into paths with spaces. +add_custom_target(distcheck-${TARGET_SUFFIX} + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Extracting TGZ archive..." + COMMAND ${CMAKE_COMMAND} -E remove distcheck_${TARGET_SUFFIX}.log + COMMAND ${CMAKE_COMMAND} -E remove_directory distcheck-${TARGET_SUFFIX} + COMMAND ${CMAKE_COMMAND} -E make_directory distcheck-${TARGET_SUFFIX} + COMMAND ${CMAKE_COMMAND} -E chdir distcheck-${TARGET_SUFFIX} ${CMAKE_COMMAND} -E tar xzf ../${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz + COMMAND ${CMAKE_COMMAND} -E rename distcheck-${TARGET_SUFFIX}/${CPACK_SOURCE_PACKAGE_FILE_NAME} distcheck-${TARGET_SUFFIX}/${source_dir} + COMMAND ${CMAKE_COMMAND} -E make_directory distcheck-${TARGET_SUFFIX}/${build_dir} + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Extracting TGZ archive... Done." + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Configuring... " + COMMAND ${CMAKE_COMMAND} -E chdir distcheck-${TARGET_SUFFIX}/${build_dir} ${CMAKE_COMMAND} ../${source_dir} @CMAKE_OPTS@ -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/distcheck-${TARGET_SUFFIX}/${install_dir} @TARGET_REDIRECT@ + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Configuring... Done." + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Compiling using source from TGZ archive..." + COMMAND ${CMAKE_COMMAND} -E chdir distcheck-${TARGET_SUFFIX}/${build_dir} @DISTCHECK_BUILD_CMD@ @TARGET_REDIRECT@ + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Compiling using source from TGZ archive... Done." + #COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Run build-directory unit, benchmark and regression testing..." + # TODO - with Tcl we can't run the benchmarks, since we can't generate the .g files from the .asc files... + #COMMAND ${CMAKE_COMMAND} -E chdir distcheck-${TARGET_SUFFIX}/${build_dir} ${CMAKE_COMMAND} --build . --target check @TARGET_REDIRECT@ + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Run build-directory unit and regression testing..." + COMMAND ${CMAKE_COMMAND} -E chdir distcheck-${TARGET_SUFFIX}/${build_dir} ${CMAKE_COMMAND} --build . --target unit @TARGET_REDIRECT@ + COMMAND ${CMAKE_COMMAND} -E chdir distcheck-${TARGET_SUFFIX}/${build_dir} ${CMAKE_COMMAND} --build . --target regress @TARGET_REDIRECT@ + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Run build-directory unit, benchmark and regression testing... Done." + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Install from tgz build directory..." + COMMAND ${CMAKE_COMMAND} -E make_directory distcheck-${TARGET_SUFFIX}/${install_dir} + COMMAND ${CMAKE_COMMAND} -E chdir distcheck-${TARGET_SUFFIX}/${build_dir} @DISTCHECK_INSTALL_CMD@ @TARGET_REDIRECT@ + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Install from tgz build directory... Done." + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Test distclean rule..." + COMMAND ${CMAKE_COMMAND} -E remove -f distcheck-${TARGET_SUFFIX}/${build_dir}/bench/summary + COMMAND ${CMAKE_COMMAND} -E chdir distcheck-${TARGET_SUFFIX}/${build_dir} ${CMAKE_COMMAND} --build . --target distclean @TARGET_REDIRECT@ + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/CMakeTmp/distcheck-${TARGET_SUFFIX}-eval_distclean.cmake + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Test distclean rule... Done." + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Clear tgz archive sources and build directory..." + COMMAND ${CMAKE_COMMAND} -E remove_directory distcheck-${TARGET_SUFFIX}/${source_dir} + COMMAND ${CMAKE_COMMAND} -E remove_directory distcheck-${TARGET_SUFFIX}/${build_dir} + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Clear tgz archive sources and build directory... Done." + # TODO - with Tcl we can't run the benchmarks, since we can't generate the .g files from the .asc files... + #COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Run benchmark testing from tgz archive installed build..." + #COMMAND ${CMAKE_COMMAND} -E chdir distcheck-${TARGET_SUFFIX}/${install_dir} ${BIN_DIR}/benchmark run TIMEFRAME=1 @TARGET_REDIRECT@ + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Run benchmark testing from installed build... Done." + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Cleanup..." + COMMAND ${CMAKE_COMMAND} -E remove_directory distcheck-${TARGET_SUFFIX} + COMMAND ${CMAKE_COMMAND} -E echo "-- distcheck-${TARGET_SUFFIX} - Cleanup... Done." + COMMENT "[distcheck-${TARGET_SUFFIX}] Performing distcheck - ${TARGET_SUFFIX} configuration..." + DEPENDS distcheck-source_archives + ) +set_target_properties(distcheck-${TARGET_SUFFIX} PROPERTIES FOLDER "BRL-CAD Distribution Checking") +set_target_properties(distcheck-${TARGET_SUFFIX} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1) + +# Local Variables: +# tab-width: 8 +# mode: cmake +# indent-tabs-mode: t +# End: +# ex: shiftwidth=2 tabstop=8 Property changes on: brlcad/trunk/misc/CMake/distcheck_no_tcl.cmake.in ___________________________________________________________________ Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits