Mercurial > louis > mq > lightsd
changeset 436:481c9363b4e6
wip make release and make archives done (and make clean_source_dir) are implemented
author | Louis Opter <kalessin@kalessin.fr> |
---|---|
date | Sat, 16 Apr 2016 20:10:51 -0700 |
parents | a021acf00891 |
children | 1319ff44979e |
files | add_make_release.patch |
diffstat | 1 files changed, 54 insertions(+), 77 deletions(-) [+] |
line wrap: on
line diff
--- a/add_make_release.patch Sat Apr 16 19:42:55 2016 -0700 +++ b/add_make_release.patch Sat Apr 16 20:10:51 2016 -0700 @@ -5,10 +5,11 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -24,7 +24,13 @@ +@@ -24,7 +24,14 @@ # TODO: we need at least 2.0.19-stable because of the logging defines FIND_PACKAGE(Event2 REQUIRED COMPONENTS core) FIND_PACKAGE(Endian REQUIRED) ++FIND_PACKAGE(Gzip) +FIND_PACKAGE(Hg) +SET(Python_ADDITIONAL_VERSIONS 3) +FIND_PACKAGE(PythonInterp) @@ -19,7 +20,7 @@ INCLUDE(CheckFunctionExists) INCLUDE(CheckVariableExists) -@@ -89,12 +95,11 @@ +@@ -89,12 +96,11 @@ ADD_SUBDIRECTORY(compat) ADD_SUBDIRECTORY(core) ADD_SUBDIRECTORY(lifx) @@ -34,7 +35,7 @@ ADD_SUBDIRECTORY(tests) ELSE () MESSAGE( -@@ -105,7 +110,10 @@ +@@ -105,7 +111,10 @@ ENDIF () IF (SPHINX_FOUND) @@ -56,6 +57,17 @@ +) + +FIND_PACKAGE_HANDLE_STANDARD_ARGS(BsdTar DEFAULT_MSG BSDTAR_EXECUTABLE) +diff --git a/CMakeScripts/FindGzip.cmake b/CMakeScripts/FindGzip.cmake +new file mode 100644 +--- /dev/null ++++ b/CMakeScripts/FindGzip.cmake +@@ -0,0 +1,6 @@ ++FIND_PROGRAM( ++ GZIP_EXECUTABLE NAMES gzip ++ DOC "Path to the gzip executable" ++) ++ ++FIND_PACKAGE_HANDLE_STANDARD_ARGS(Gzip DEFAULT_MSG GZIP_EXECUTABLE) diff --git a/CMakeScripts/FindSphinx.cmake b/CMakeScripts/FindSphinx.cmake --- a/CMakeScripts/FindSphinx.cmake +++ b/CMakeScripts/FindSphinx.cmake @@ -95,106 +107,71 @@ new file mode 100644 --- /dev/null +++ b/dist/CMakeLists.txt -@@ -0,0 +1,102 @@ -+CONFIGURE_FILE(release.py.in "${CMAKE_CURRENT_BINARY_DIR}/release.py") +@@ -0,0 +1,67 @@ ++# I wanted to use hg export but then dpkg gave me troubles: ++IF (BSDTAR_FOUND AND GZIP_FOUND AND XZ_FOUND AND HG_FOUND) ++ MESSAGE(STATUS "bsdtar, mercurial (hg), gzip and xz found, archives generation enabled") + -+SET(TAR_ARCHIVE "${CMAKE_CURRENT_BINARY_DIR}/lightsd-${LIGHTSD_VERSION}.tar") -+SET(TARGZ_ARCHIVE "${TAR_ARCHIVE}.gz") -+SET(TARXZ_ARCHIVE "${TAR_ARCHIVE}.xz") -+ -+# I wanted to use hg export but then dpkg gave me troubles: -+IF (BSDTAR_FOUND AND HG_FOUND) -+ MESSAGE(STATUS "bsdtar and mercurial found, archives generation enabled") ++ SET(TAR_ARCHIVE "${CMAKE_CURRENT_BINARY_DIR}/lightsd-${LIGHTSD_VERSION}.tar") ++ SET(TARGZ_ARCHIVE "${TAR_ARCHIVE}.gz") ++ SET(TARXZ_ARCHIVE "${TAR_ARCHIVE}.xz") + + ADD_CUSTOM_TARGET( + clean_source_dir -+ COMMAND "${HG_EXECUTABLE}" -R "${LIGHTSD_SOURCE_DIR}" --config extensions.purge= purge -a --all --files --dirs ++ COMMAND "${HG_EXECUTABLE}" -R "${LIGHTSD_SOURCE_DIR}" --config extensions.purge= purge -a --all + VERBATIM + ) + + ADD_CUSTOM_COMMAND( -+ OUTPUT "${TAR_ARCHIVE}" "${TARGZ_ARCHIVE}" -+ COMMAND "${BSDTAR_EXECUTABLE}" -C "${LIGHTSD_SOURCE_DIR}" -cf "${TAR_ARCHIVE}" -s "/^/lightsd-${LIGHTSD_VERSION}/" . -+ COMMAND "${BSDTAR_EXECUTABLE}" -C "${LIGHTSD_SOURCE_DIR}" -czf "${TARGZ_ARCHIVE}" -s "/^/lightsd-${LIGHTSD_VERSION}/" . ++ OUTPUT "${TAR_ARCHIVE}" ++ COMMAND "${BSDTAR_EXECUTABLE}" -C "${LIGHTSD_SOURCE_DIR}" -cf "${TAR_ARCHIVE}" -s "/^\\./lightsd-${LIGHTSD_VERSION}/" --exclude .hg . + DEPENDS clean_source_dir + VERBATIM + ) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT "${TARGZ_ARCHIVE}" ++ COMMAND "${GZIP_EXECUTABLE}" -9 -fk "${TAR_ARCHIVE}" ++ DEPENDS "${TAR_ARCHIVE}" ++ VERBATIM ++ ) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT "${TARXZ_ARCHIVE}" ++ COMMAND "${XZ_EXECUTABLE}" -fk "${TAR_ARCHIVE}" ++ DEPENDS "${TAR_ARCHIVE}" ++ VERBATIM ++ ) + -+ IF (XZ_FOUND) -+ ADD_CUSTOM_COMMAND( -+ OUTPUT "${TARXZ_ARCHIVE}" -+ COMMAND "${XZ_EXECUTABLE}" -k "${TAR_ARCHIVE}" -+ DEPENDS "${TAR_ARCHIVE}" -+ VERBATIM -+ ) -+ ADD_CUSTOM_TARGET( -+ archives -+ COMMENT "Creating tarballs for release ${LIGHTSD_VERSION}" -+ DEPENDS "${TAR_ARCHIVE}" "${TARGZ_ARCHIVE}" "${TARXZ_ARCHIVE}" -+ ) -+ ELSE () -+ MESSAGE(WARNING "Not creating a xz compressed tarball since xz wasn't found") -+ ADD_CUSTOM_TARGET( -+ archives -+ COMMENT "Creating tarballs for release ${LIGHTSD_VERSION}" -+ DEPENDS "${TAR_ARCHIVE}" "${TARGZ_ARCHIVE}" -+ ) -+ ENDIF () ++ ADD_CUSTOM_TARGET( ++ archives ++ COMMENT "Created tarballs for release ${LIGHTSD_VERSION}" ++ DEPENDS "${TAR_ARCHIVE}" "${TARGZ_ARCHIVE}" "${TARXZ_ARCHIVE}" ++ ) +ELSE () -+ MESSAGE(STATUS "bsdtar and/or mercurial weren't found, archives generation disabled") ++ MESSAGE(STATUS "bsdtar and/or mercurial (hg), gzip, xz weren't found, archives generation disabled") +ENDIF () + -+SET(VENV_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/py-env") -+SET(VENV_PYTHON "${VENV_DIRECTORY}/bin/python") ++IF (PYTHONINTERP_FOUND AND PYTHON_VERSION_MAJOR EQUAL 3 AND VIRTUALENV_FOUND) ++ MESSAGE(STATUS "Python 3 and virtualenv found, release command enabled") + -+IF (PYTHONINTERP_FOUND AND PYTHON_VERSION_MAJOR EQUAL 3 AND VIRTUALENV_FOUND) -+ MESSAGE(STATUS "Python 3 and virtualenv found, release commands enabled") ++ SET(VENV_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/py-env") ++ SET(VENV_PYTHON "${VENV_DIRECTORY}/bin/python") + -+ ADD_CUSTOM_COMMAND( -+ OUTPUT "${VENV_DIRECTORY}.stamp" ++ CONFIGURE_FILE(release.py.in "${CMAKE_CURRENT_BINARY_DIR}/release.py" @ONLY) ++ ++ ADD_CUSTOM_TARGET( ++ release_env + COMMAND "${VIRTUALENV_EXECUTABLE}" -p "${PYTHON_EXECUTABLE}" "${VENV_DIRECTORY}" -+ COMMAND "${VENV_DIRECTORY}/bin/pip" install -Ur "${CMAKE_CURRENT_SOURCE_DIR}/requirements-release.txt" -+ COMMAND "${CMAKE_COMMAND}" -E touch "${VENV_DIRECTORY}.stamp" -+ COMMENT "Setting up a Python virtualenv at ${VENV_DIRECTORY} for the release script" ++ COMMAND "${VENV_DIRECTORY}/bin/pip" install -r "${CMAKE_CURRENT_SOURCE_DIR}/requirements-release.txt" ++ COMMENT "Set-up a Python virtualenv at ${VENV_DIRECTORY} for the release script" + VERBATIM + ) + + ADD_CUSTOM_TARGET( + release + COMMAND "${VENV_PYTHON}" "${CMAKE_CURRENT_BINARY_DIR}/release.py" -+ COMMENT "Starting release for ${LIGHTSD_VERSION}" -+ DEPENDS "${VENV_DIRECTORY}.stamp" ++ DEPENDS release_env + VERBATIM + ) -+ -+ IF (DEFINED "${LIGHTSD_RELEASE_PACKAGES_DIR}") -+ MESSAGE( -+ STATUS -+ "Downstream packages directory specified at " -+ "${LIGHTSD_RELEASE_PACKAGES_DIR}, enabling package release integration" -+ ) -+ -+ ADD_CUSTOM_TARGET( -+ release_new_tag -+ COMMAND "${VENV_PYTHON}" "${CMAKE_CURRENT_BINARY_DIR}/release.py" release_new_tag -+ COMMENT "Starting downstream packages release for ${LIGHTSD_VERSION}" -+ DEPENDS "${VENV_DIRECTORY}.stamp" -+ VERBATIM -+ ) -+ ADD_CUSTOM_TARGET( -+ release_new_tag -+ COMMAND "${VENV_PYTHON}" "${CMAKE_CURRENT_BINARY_DIR}/release.py" release_new_tag -+ COMMENT "Starting downstream packages release for ${LIGHTSD_VERSION}" -+ DEPENDS "${VENV_DIRECTORY}.stamp" -+ VERBATIM -+ ) -+ ELSE () -+ MESSAGE( -+ STATUS -+ "No directory specified for downstream packages, " -+ "package release integration disabled" -+ ) -+ ENDIF () +ELSE () + MESSAGE(STATUS "Python 3 and/or virtualenv weren't found, release commands disabled") +ENDIF ()