kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #05044
CPack integration for crossplatform creation of binary and source archives -- patch
Dear all,
As I was trying to find a neat way to create mac packages on the fly I
bumped to CPack. This application is shipped with CMake and can be used
inside the existing CMakeLists.txt configuration. For mac I enabled for
now only DragNDrop packages which are like zip archives instead of
full-fledged PackageMaker installers. The most neat thing is it creates
the archives by itself without using any external script or utility.
Then the packaging/mac-osx/dmg-generator directory can be removed from
the source-tree if this patch is applied.
If you look deeper at CPack or CMake CPack module it also integrates
generation of NSIS installer for windows and self-extracting shell
script for *NIX. This takes us a whole bunch of work from our hands if
other people want to do snapshots/nightly builds or actual releasing the
software.
A console output on my mac when creating source archives (make sure you
do a out of source build or else all the CMake cache stuff will also be
in the source archive!)
white:darwin jerry$ sudo make package_source
Run CPack packaging tool for source...
CPack: Create package using TGZ
CPack: Install projects
CPack: - Install directory: /Users/jerry/Work/kicad/repository
CPack: Compress package
CPack: Finalize package
CPack: Package
/Users/jerry/Work/kicad/build/darwin/kicad-2010.07.23-Source.tar.gz
generated.
When creating binary package(s) which can be selected with the
CPACK_GENERATOR variable they can be build with the *make package* command.
For more information see cmake --help-module CPack
I attached the main CMakeLists.txt patch. Only maybe other people have
a suggestion to extract the date from BZR or system when building
instead of changing the 3 variables BUILD_ YEAR, MONTH, DAY.
Kind regards,
Jerry Jacobs
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2010-06-13 04:10:16 +0000
+++ CMakeLists.txt 2010-07-23 16:45:09 +0000
@@ -1,5 +1,11 @@
project(kicad)
+# Set build date for automated builds and packages
+# This needs to be done in a automatic way some day
+set(BUILD_YEAR 2010)
+set(BUILD_MONTH 07)
+set(BUILD_DAY 23)
+
# test the minimum Cmake version requirement (could be different under unix or Windows
if(WIN32)
cmake_minimum_required(VERSION 2.6.4 FATAL_ERROR)
@@ -263,4 +269,32 @@
PATTERN ".svn" EXCLUDE)
endif(UNIX)
+###
+# Package binarie and source builds with CPack
+# for help about this variables see cmake --help-module CPack
+###
+
+# Set package resource files
+set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYRIGHT.txt)
+set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.txt)
+set(CPACK_RESOURCE_FILE_WELCOME ${CMAKE_SOURCE_DIR}/README.txt)
+
+# Exclude files when building the Source package
+set(CPACK_SOURCE_IGNORE_FILES "/.bzr/;/.swp/")
+
+# Set package version
+set(CPACK_PACKAGE_VERSION_MAJOR ${BUILD_YEAR})
+set(CPACK_PACKAGE_VERSION_MINOR ${BUILD_MONTH})
+set(CPACK_PACKAGE_VERSION_PATCH ${BUILD_DAY})
+
+# Set APPLE configuration for CPack usage
+if(APPLE)
+ set(CPACK_DMG_FORMAT UDBZ)
+ set(CPACK_GENERATOR DragNDrop)
+endif(APPLE)
+
+# Load the CPack module for CMake
+include(CPack)
+
+# Load the CTest module for CMake
include(CTest)
Follow ups