diff --git a/CMakeLists.txt b/CMakeLists.txt index e4ade5685..473349a60 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -477,4 +477,16 @@ endif(FREECAD_MAINTAINERS_BUILD AND NOT WIN32) --srcdir=${CMAKE_SOURCE_DIR} --bindir=${CMAKE_BINARY_DIR} --dfsg WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) +if(CMAKE_COMPILER_IS_GNUCXX OR MINGW) + add_custom_target(distcheck-git + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/Tools/makedist.py + --srcdir=${CMAKE_SOURCE_DIR} --bindir=${CMAKE_BINARY_DIR} --check + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) + add_custom_target(distcheckdfsg-git + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/src/Tools/makedist.py + --srcdir=${CMAKE_SOURCE_DIR} --bindir=${CMAKE_BINARY_DIR} --dfsg --check + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + ) +endif(CMAKE_COMPILER_IS_GNUCXX OR MINGW) diff --git a/src/Tools/makedist.py b/src/Tools/makedist.py index 62c4dcbdb..a30550e2c 100644 --- a/src/Tools/makedist.py +++ b/src/Tools/makedist.py @@ -5,15 +5,16 @@ # Python script to make source tarballs. # -import sys, os, getopt, tarfile, gzip, time, StringIO, platform +import sys, os, getopt, tarfile, gzip, time, StringIO, platform, shutil def main(): srcdir="." bindir="." dfsg=False + check=False wta="" try: - opts, args = getopt.getopt(sys.argv[1:], "sb:", ["srcdir=","bindir=","dfsg"]) + opts, args = getopt.getopt(sys.argv[1:], "sb:", ["srcdir=","bindir=","dfsg", "check"]) except getopt.GetoptError: pass @@ -25,6 +26,8 @@ def main(): if o in ("--dfsg"): dfsg = True wta = "--worktree-attributes" + if o in ("--check"): + check = True if dfsg: gitattr = open("src/.gitattributes","w") @@ -85,6 +88,17 @@ def main(): if dfsg: os.remove("src/.gitattributes") print "Created " + TGZNAME + # Unpack and build + if check: + archive=tarfile.open(mode='r:gz',name=TGZNAME) + archive.extractall(bindir) + builddir = os.path.join(bindir, DIRNAME) + cwd = os.getcwd() + os.chdir(builddir) + os.system("cmake .") + os.system("make") + os.chdir(cwd) + shutil.rmtree(builddir) if __name__ == "__main__": main()