2017-02-28 16:59:18 +00:00
|
|
|
string(TIMESTAMP CURRENT_YEAR "%Y")
|
|
|
|
|
|
|
|
set(PROJECT_DESCRIPTION "Blender is the free and open source 3D creation suite software.")
|
|
|
|
set(PROJECT_COPYRIGHT "Copyright (C) 2001-${CURRENT_YEAR} Blender Foundation")
|
2011-02-15 18:33:05 +00:00
|
|
|
set(PROJECT_CONTACT "foundation@blender.org")
|
|
|
|
set(PROJECT_VENDOR "Blender Foundation")
|
|
|
|
|
2011-02-26 06:27:54 +00:00
|
|
|
set(MAJOR_VERSION ${BLENDER_VERSION_MAJOR})
|
|
|
|
set(MINOR_VERSION ${BLENDER_VERSION_MINOR})
|
Blender: change bugfix release versioning from a/b/c to .1/.2/.3
The file subversion is no longer used in the Python API or user interface,
and is now internal to Blender.
User interface, Python API and file I/O metadata now use more consistent
formatting for version numbers. Official releases use "2.83.0", "2.83.1",
and releases under development use "2.90.0 Alpha", "2.90.0 Beta".
Some Python add-ons may need to lower the Blender version in bl_info to
(2, 83, 0) or (2, 90, 0) if they used a subversion number higher than 0.
https://wiki.blender.org/wiki/Reference/Release_Notes/2.83/Python_API#Compatibility
This change is in preparation of LTS releases, and also brings us more
in line with semantic versioning.
Fixes T76058.
Differential Revision: https://developer.blender.org/D7748
2020-05-25 08:49:04 +00:00
|
|
|
set(PATCH_VERSION ${BLENDER_VERSION_PATCH})
|
2011-02-26 06:27:54 +00:00
|
|
|
|
2011-02-15 18:33:05 +00:00
|
|
|
set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
|
2011-02-22 06:23:07 +00:00
|
|
|
set(CPACK_PACKAGE_DESCRIPTION ${PROJECT_DESCRIPTION})
|
2011-02-15 18:33:05 +00:00
|
|
|
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}")
|
2011-02-26 06:27:54 +00:00
|
|
|
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.
|
2013-11-27 19:41:53 +00:00
|
|
|
set(MY_WC_HASH "unknown")
|
|
|
|
if(EXISTS ${CMAKE_SOURCE_DIR}/.git/)
|
2015-09-02 14:41:07 +00:00
|
|
|
find_package(Git)
|
2013-11-27 19:41:53 +00:00
|
|
|
if(GIT_FOUND)
|
2017-12-06 05:37:50 +00:00
|
|
|
# message(STATUS "Found Git: ${GIT_EXECUTABLE}")
|
2018-12-19 11:47:25 +00:00
|
|
|
execute_process(COMMAND git rev-parse --short=12 HEAD
|
2013-11-27 19:41:53 +00:00
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
|
|
OUTPUT_VARIABLE MY_WC_HASH
|
2015-03-20 09:07:56 +00:00
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
ERROR_QUIET)
|
2011-02-26 06:27:54 +00:00
|
|
|
endif()
|
|
|
|
endif()
|
2013-11-27 19:41:53 +00:00
|
|
|
set(BUILD_REV ${MY_WC_HASH})
|
2014-11-16 11:57:42 +00:00
|
|
|
unset(MY_WC_HASH)
|
2011-02-26 06:27:54 +00:00
|
|
|
|
2011-02-15 18:33:05 +00:00
|
|
|
|
|
|
|
# Force Package Name
|
2014-02-12 20:39:23 +00:00
|
|
|
execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE CPACK_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
2015-11-07 07:34:27 +00:00
|
|
|
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
|
2017-03-11 15:40:04 +00:00
|
|
|
if(MSVC)
|
|
|
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
2016-08-24 15:37:42 +00:00
|
|
|
set(PACKAGE_ARCH windows64)
|
2016-08-22 14:15:03 +00:00
|
|
|
else()
|
2016-08-24 15:37:42 +00:00
|
|
|
set(PACKAGE_ARCH windows32)
|
2016-08-22 14:15:03 +00:00
|
|
|
endif()
|
|
|
|
else(MSVC)
|
|
|
|
set(PACKAGE_ARCH ${CMAKE_SYSTEM_PROCESSOR})
|
|
|
|
endif()
|
|
|
|
|
2017-03-11 15:40:04 +00:00
|
|
|
if(CPACK_OVERRIDE_PACKAGENAME)
|
2016-09-06 13:21:23 +00:00
|
|
|
set(CPACK_PACKAGE_FILE_NAME ${CPACK_OVERRIDE_PACKAGENAME}-${PACKAGE_ARCH})
|
|
|
|
else()
|
|
|
|
set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME_LOWER}-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-git${CPACK_DATE}.${BUILD_REV}-${PACKAGE_ARCH})
|
|
|
|
endif()
|
2011-02-15 18:33:05 +00:00
|
|
|
|
2011-03-07 03:57:04 +00:00
|
|
|
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
|
|
# RPM packages
|
|
|
|
include(build_files/cmake/RpmBuild.cmake)
|
2014-11-16 11:57:42 +00:00
|
|
|
if(RPMBUILD_FOUND)
|
2011-03-07 03:57:04 +00:00
|
|
|
set(CPACK_GENERATOR "RPM")
|
2014-02-12 20:39:23 +00:00
|
|
|
set(CPACK_RPM_PACKAGE_RELEASE "git${CPACK_DATE}.${BUILD_REV}")
|
2011-05-06 23:59:15 +00:00
|
|
|
set(CPACK_SET_DESTDIR "true")
|
2011-03-07 03:57:04 +00:00
|
|
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
|
2011-05-06 23:59:15 +00:00
|
|
|
set(CPACK_PACKAGE_RELOCATABLE "false")
|
2014-02-12 20:39:23 +00:00
|
|
|
set(CPACK_RPM_PACKAGE_LICENSE "GPLv2+ and Apache 2.0")
|
2011-08-24 18:23:21 +00:00
|
|
|
set(CPACK_RPM_PACKAGE_GROUP "Amusements/Multimedia")
|
2011-05-06 23:59:15 +00:00
|
|
|
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_SOURCE_DIR}/build_files/package_spec/rpm/blender.spec.in")
|
2011-03-07 03:57:04 +00:00
|
|
|
endif()
|
2011-02-26 06:27:54 +00:00
|
|
|
endif()
|
2011-02-15 18:33:05 +00:00
|
|
|
|
|
|
|
# Mac Bundle
|
|
|
|
if(APPLE)
|
2011-02-26 06:27:54 +00:00
|
|
|
set(CPACK_GENERATOR "DragNDrop")
|
2011-02-15 18:33:05 +00:00
|
|
|
|
2011-02-26 06:27:54 +00:00
|
|
|
# Libraries are bundled directly
|
|
|
|
set(CPACK_COMPONENT_LIBRARIES_HIDDEN TRUE)
|
2011-03-21 16:42:21 +00:00
|
|
|
endif()
|
2011-02-15 18:33:05 +00:00
|
|
|
|
2014-11-13 16:09:09 +00:00
|
|
|
if(WIN32)
|
Windows/MSI: Rework MSI installer.
The installer always upgraded the last version installed and did not allow for two versions to be installed side by side.
The reworked installer will allow side by side installs
install order:
```
2.81 -> 2.81a -> 2.82 : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81 -> 2.81a : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81a : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81a -> 2.81 : Not Allowed, 2.81 will only install if you manually remove 2.81a first.
```
Do note though that this will not apply to any previously issued installers and even for 2.80a this is not something we can fix.
This patch is for landing in 2.81 *only* and should be excluded from any possible 2.80a release.
Second change is a change to the compression level, building the MSI takes 30 minutes, which is crazy, perhaps worth it if the compression actually pays of.
```
MSI - none 1:35 247.0 MB (260,025,634 bytes)
MSI - mszip 2:02 89.6 MB ( 94,022,946 bytes)
MSI - low 2:35 81.6 MB ( 85,646,626 bytes)
MSI - medium 4:11 77.3 MB ( 81,136,930 bytes)
MSI - high 28:01 74.7 MB ( 78,384,418 bytes)
zip 1:32 93.2 MB ( 97,732,293 bytes)
7Z 2:22 65.0 MB ( 68,171,614 bytes)
```
It didn't, so I lowered it to medium, seemed reasonable.
Differential Revision: https://developer.blender.org/D5494
Reviewers: brecht, jesterking
2019-08-15 19:43:27 +00:00
|
|
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY "Blender Foundation/Blender ${MAJOR_VERSION}.${MINOR_VERSION}")
|
|
|
|
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Blender Foundation/Blender ${MAJOR_VERSION}.${MINOR_VERSION}")
|
2014-11-13 16:09:09 +00:00
|
|
|
|
2016-02-07 09:58:58 +00:00
|
|
|
set(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico)
|
2014-11-13 16:09:09 +00:00
|
|
|
set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
|
|
|
|
|
2020-09-24 13:47:49 +00:00
|
|
|
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/release/license/GPL-3.0.txt)
|
2016-02-07 09:58:58 +00:00
|
|
|
set(CPACK_WIX_PRODUCT_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico)
|
Windows/MSI: Rework MSI installer.
The installer always upgraded the last version installed and did not allow for two versions to be installed side by side.
The reworked installer will allow side by side installs
install order:
```
2.81 -> 2.81a -> 2.82 : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81 -> 2.81a : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81a : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81a -> 2.81 : Not Allowed, 2.81 will only install if you manually remove 2.81a first.
```
Do note though that this will not apply to any previously issued installers and even for 2.80a this is not something we can fix.
This patch is for landing in 2.81 *only* and should be excluded from any possible 2.80a release.
Second change is a change to the compression level, building the MSI takes 30 minutes, which is crazy, perhaps worth it if the compression actually pays of.
```
MSI - none 1:35 247.0 MB (260,025,634 bytes)
MSI - mszip 2:02 89.6 MB ( 94,022,946 bytes)
MSI - low 2:35 81.6 MB ( 85,646,626 bytes)
MSI - medium 4:11 77.3 MB ( 81,136,930 bytes)
MSI - high 28:01 74.7 MB ( 78,384,418 bytes)
zip 1:32 93.2 MB ( 97,732,293 bytes)
7Z 2:22 65.0 MB ( 68,171,614 bytes)
```
It didn't, so I lowered it to medium, seemed reasonable.
Differential Revision: https://developer.blender.org/D5494
Reviewers: brecht, jesterking
2019-08-15 19:43:27 +00:00
|
|
|
|
|
|
|
set(BLENDER_NAMESPACE_GUID "507F933F-5898-404A-9A05-18282FD491A6")
|
|
|
|
|
|
|
|
string(UUID CPACK_WIX_UPGRADE_GUID
|
|
|
|
NAMESPACE ${BLENDER_NAMESPACE_GUID}
|
|
|
|
NAME ${CPACK_PACKAGE_INSTALL_DIRECTORY}
|
|
|
|
TYPE SHA1 UPPER
|
|
|
|
)
|
2014-11-15 19:51:18 +00:00
|
|
|
|
2015-11-07 07:26:39 +00:00
|
|
|
set(CPACK_WIX_TEMPLATE ${LIBDIR}/package/installer_wix/WIX.template)
|
2014-11-15 19:51:18 +00:00
|
|
|
set(CPACK_WIX_UI_BANNER ${LIBDIR}/package/installer_wix/WIX_UI_BANNER.bmp)
|
|
|
|
set(CPACK_WIX_UI_DIALOG ${LIBDIR}/package/installer_wix/WIX_UI_DIALOG.bmp)
|
|
|
|
|
Windows/MSI: Rework MSI installer.
The installer always upgraded the last version installed and did not allow for two versions to be installed side by side.
The reworked installer will allow side by side installs
install order:
```
2.81 -> 2.81a -> 2.82 : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81 -> 2.81a : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81a : Allowed , will result in both 2.82 and 2.81a being installed
2.82 -> 2.81a -> 2.81 : Not Allowed, 2.81 will only install if you manually remove 2.81a first.
```
Do note though that this will not apply to any previously issued installers and even for 2.80a this is not something we can fix.
This patch is for landing in 2.81 *only* and should be excluded from any possible 2.80a release.
Second change is a change to the compression level, building the MSI takes 30 minutes, which is crazy, perhaps worth it if the compression actually pays of.
```
MSI - none 1:35 247.0 MB (260,025,634 bytes)
MSI - mszip 2:02 89.6 MB ( 94,022,946 bytes)
MSI - low 2:35 81.6 MB ( 85,646,626 bytes)
MSI - medium 4:11 77.3 MB ( 81,136,930 bytes)
MSI - high 28:01 74.7 MB ( 78,384,418 bytes)
zip 1:32 93.2 MB ( 97,732,293 bytes)
7Z 2:22 65.0 MB ( 68,171,614 bytes)
```
It didn't, so I lowered it to medium, seemed reasonable.
Differential Revision: https://developer.blender.org/D5494
Reviewers: brecht, jesterking
2019-08-15 19:43:27 +00:00
|
|
|
set(CPACK_WIX_LIGHT_EXTRA_FLAGS -dcl:medium)
|
2014-11-13 16:09:09 +00:00
|
|
|
endif()
|
|
|
|
|
|
|
|
set(CPACK_PACKAGE_EXECUTABLES "blender" "blender")
|
2016-10-18 15:21:58 +00:00
|
|
|
set(CPACK_CREATE_DESKTOP_LINKS "blender" "blender")
|
|
|
|
|
2011-02-15 18:33:05 +00:00
|
|
|
include(CPack)
|
2011-03-21 16:42:21 +00:00
|
|
|
|
|
|
|
# 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})
|
2014-11-16 11:57:42 +00:00
|
|
|
unset(build_archive)
|
|
|
|
unset(package_output)
|
2011-03-21 16:42:21 +00:00
|
|
|
endmacro()
|
|
|
|
|
|
|
|
if(APPLE)
|
|
|
|
add_package_archive(
|
2013-11-27 19:41:53 +00:00
|
|
|
"${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-OSX-${CMAKE_OSX_ARCHITECTURES}"
|
2011-03-21 16:42:21 +00:00
|
|
|
"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(
|
2013-11-27 19:41:53 +00:00
|
|
|
"${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-${PACKAGE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}"
|
2019-11-28 10:40:59 +00:00
|
|
|
"tar.xz")
|
2011-03-21 16:42:21 +00:00
|
|
|
endif()
|
|
|
|
|
2015-05-19 06:26:03 +00:00
|
|
|
unset(MAJOR_VERSION)
|
|
|
|
unset(MINOR_VERSION)
|
|
|
|
unset(PATCH_VERSION)
|
|
|
|
|
|
|
|
unset(BUILD_REV)
|