Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/cmake/packaging.cmake')
-rw-r--r--build_files/cmake/packaging.cmake79
1 files changed, 62 insertions, 17 deletions
diff --git a/build_files/cmake/packaging.cmake b/build_files/cmake/packaging.cmake
index 0de5451d45f..ee07857db26 100644
--- a/build_files/cmake/packaging.cmake
+++ b/build_files/cmake/packaging.cmake
@@ -4,37 +4,82 @@ set(PROJECT_CONTACT "foundation@blender.org")
set(PROJECT_VENDOR "Blender Foundation")
set(ORG_WEBSITE "www.blender.org")
+set(MAJOR_VERSION ${BLENDER_VERSION_MAJOR})
+set(MINOR_VERSION ${BLENDER_VERSION_MINOR})
+set(PATCH_VERSION ${BLENDER_VERSION_CHAR_INDEX})
+
set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
set(CPACK_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
set(CPACK_PACKAGE_VENDOR ${PROJECT_VENDOR})
set(CPACK_PACKAGE_CONTACT ${PROJECT_CONTACT})
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
+SET(CPACK_PACKAGE_VERSION_MAJOR "${MAJOR_VERSION}")
+SET(CPACK_PACKAGE_VERSION_MINOR "${MINOR_VERSION}")
+SET(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")
+
+
+# Get the build revision, note that this can get out-of-sync, so for packaging run cmake first.
+include(FindSubversion)
+set(MY_WC_REVISION "unknown")
+if(EXISTS ${CMAKE_SOURCE_DIR}/.svn/)
+ if(Subversion_FOUND)
+ Subversion_WC_INFO(${CMAKE_SOURCE_DIR} MY)
+ endif()
+endif()
+set(BUILD_REV ${MY_WC_REVISION})
+
# Force Package Name
set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME}-${BLENDER_VERSION}-r${BUILD_REV}-${CPACK_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR})
-# RPM packages
-include(build_files/cmake/RpmBuild.cmake)
-if(RPMBUILD_FOUND AND NOT WIN32)
- set(CPACK_GENERATOR "RPM")
- set(CPACK_SET_DESTDIR TRUE)
- set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
-endif(RPMBUILD_FOUND AND NOT WIN32)
+if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ # RPM packages
+ include(build_files/cmake/RpmBuild.cmake)
+ if(RPMBUILD_FOUND AND NOT WIN32)
+ set(CPACK_GENERATOR "RPM")
+ set(CPACK_SET_DESTDIR TRUE)
+ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
+ set(CPACK_RPM_PACKAGE_LICENSE "GPLv2")
+ set(CPACK_RPM_PACKAGE_GROUP "Amusements/Graphics")
+ endif()
+endif()
# Mac Bundle
if(APPLE)
- set(CPACK_GENERATOR "DragNDrop")
-
- #Libraries are bundled directly
- set(CPACK_COMPONENT_LIBRARIES_HIDDEN TRUE)
+ set(CPACK_GENERATOR "DragNDrop")
- # Bundle Properties
- set(MACOSX_BUNDLE_BUNDLE_NAME blender)
- set(MACOSX_BUNDLE_BUNDLE_VERSION ${BLENDER_VERSION})
- set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${BLENDER_VERSION})
- set(MACOSX_BUNDLE_LONG_VERSION_STRING "Version ${BLENDER_VERSION}-r${BUILD_REV}")
-endif(APPLE)
+ # Libraries are bundled directly
+ set(CPACK_COMPONENT_LIBRARIES_HIDDEN TRUE)
+endif()
set(CPACK_PACKAGE_EXECUTABLES "blender")
include(CPack)
+
+# Target for build_archive.py script, to automatically pass along
+# version, revision, platform, build directory
+macro(add_package_archive packagename extension)
+ set(build_archive python ${CMAKE_SOURCE_DIR}/build_files/package_spec/build_archive.py)
+ set(package_output ${CMAKE_BINARY_DIR}/release/${packagename}.${extension})
+
+ add_custom_target(package_archive DEPENDS ${package_output})
+
+ add_custom_command(
+ OUTPUT ${package_output}
+ COMMAND ${build_archive} ${packagename} ${extension} bin release
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+endmacro()
+
+if(APPLE)
+ add_package_archive(
+ "blender-${BLENDER_VERSION}-r${BUILD_REV}-OSX-${CMAKE_OSX_ARCHITECTURES}"
+ "zip")
+elseif(UNIX)
+ # platform name could be tweaked, to include glibc, and ensure processor is correct (i386 vs i686)
+ string(TOLOWER ${CMAKE_SYSTEM_NAME} PACKAGE_SYSTEM_NAME)
+
+ add_package_archive(
+ "blender-${BLENDER_VERSION}-r${BUILD_REV}-${PACKAGE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}"
+ "tar.bz2")
+endif()
+