2008-01-07 19:13:47 +00:00
|
|
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
2006-11-17 02:27:12 +00:00
|
|
|
#
|
|
|
|
# This program is free software; you can redistribute it and/or
|
|
|
|
# modify it under the terms of the GNU General Public License
|
|
|
|
# as published by the Free Software Foundation; either version 2
|
2008-01-07 19:13:47 +00:00
|
|
|
# of the License, or (at your option) any later version.
|
2006-11-17 02:27:12 +00:00
|
|
|
#
|
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
# GNU General Public License for more details.
|
|
|
|
#
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
|
|
# along with this program; if not, write to the Free Software Foundation,
|
2010-02-12 13:34:04 +00:00
|
|
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
2006-11-17 02:27:12 +00:00
|
|
|
#
|
|
|
|
# The Original Code is Copyright (C) 2006, Blender Foundation
|
|
|
|
# All rights reserved.
|
|
|
|
#
|
|
|
|
# The Original Code is: all of this file.
|
|
|
|
#
|
|
|
|
# Contributor(s): Jacques Beaurain.
|
|
|
|
#
|
2008-01-07 19:13:47 +00:00
|
|
|
# ***** END GPL LICENSE BLOCK *****
|
2006-11-17 02:27:12 +00:00
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
setup_libdirs()
|
2006-11-17 02:27:12 +00:00
|
|
|
|
2010-12-22 22:15:20 +00:00
|
|
|
blender_include_dirs(
|
2010-06-06 13:32:58 +00:00
|
|
|
../../intern/guardedalloc
|
2014-10-07 20:46:19 +00:00
|
|
|
../../intern/glew-mx
|
2009-09-06 01:51:23 +00:00
|
|
|
../blender/blenlib
|
|
|
|
../blender/blenkernel
|
2011-02-21 13:00:38 +00:00
|
|
|
../blender/blenloader
|
2009-09-06 01:51:23 +00:00
|
|
|
../blender/editors/include
|
|
|
|
../blender/makesrna
|
|
|
|
../blender/imbuf
|
|
|
|
../blender/render/extern/include
|
|
|
|
../blender/makesdna
|
|
|
|
../blender/gpu
|
|
|
|
../blender/windowmanager
|
2006-11-17 02:27:12 +00:00
|
|
|
)
|
|
|
|
|
2014-10-07 20:46:19 +00:00
|
|
|
add_definitions(${GL_DEFINITIONS})
|
2014-10-07 22:11:23 +00:00
|
|
|
blender_include_dirs("${GLEW_INCLUDE_PATH}")
|
2014-10-07 20:46:19 +00:00
|
|
|
|
2012-03-20 02:17:37 +00:00
|
|
|
if(WIN32)
|
|
|
|
blender_include_dirs(../../intern/utfconv)
|
|
|
|
endif()
|
|
|
|
|
2011-11-07 12:55:18 +00:00
|
|
|
if(WITH_LIBMV)
|
|
|
|
blender_include_dirs(../../extern/libmv)
|
|
|
|
add_definitions(-DWITH_LIBMV)
|
|
|
|
endif()
|
|
|
|
|
2014-09-08 12:01:24 +00:00
|
|
|
if(WITH_CYCLES AND WITH_CYCLES_LOGGING)
|
|
|
|
blender_include_dirs(../../intern/cycles/blender)
|
|
|
|
add_definitions(-DWITH_CYCLES_LOGGING)
|
|
|
|
endif()
|
|
|
|
|
2012-03-30 10:37:49 +00:00
|
|
|
if(WITH_CODEC_FFMPEG)
|
|
|
|
add_definitions(-DWITH_FFMPEG)
|
|
|
|
endif()
|
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
if(WITH_PYTHON)
|
2010-12-22 22:15:20 +00:00
|
|
|
blender_include_dirs(../blender/python)
|
2010-12-08 08:43:06 +00:00
|
|
|
add_definitions(-DWITH_PYTHON)
|
2011-04-28 06:20:47 +00:00
|
|
|
|
|
|
|
if(WITH_PYTHON_SECURITY)
|
|
|
|
add_definitions(-DWITH_PYTHON_SECURITY)
|
|
|
|
endif()
|
2010-12-08 08:43:06 +00:00
|
|
|
endif()
|
2008-12-31 05:20:35 +00:00
|
|
|
|
2011-06-04 14:12:55 +00:00
|
|
|
if(WITH_HEADLESS)
|
|
|
|
add_definitions(-DWITH_HEADLESS)
|
|
|
|
endif()
|
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
if(WITH_GAMEENGINE)
|
2011-05-06 20:18:42 +00:00
|
|
|
blender_include_dirs(../gameengine/BlenderRoutines)
|
2010-11-03 01:56:02 +00:00
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
add_definitions(-DWITH_GAMEENGINE)
|
|
|
|
endif()
|
2010-10-31 00:56:46 +00:00
|
|
|
|
2011-10-20 00:19:21 +00:00
|
|
|
if(WITH_SDL)
|
2014-11-17 11:35:36 +00:00
|
|
|
if(WITH_SDL_DYNLOAD)
|
|
|
|
add_definitions(-DWITH_SDL_DYNLOAD)
|
|
|
|
blender_include_dirs(../../extern/sdlew/include)
|
|
|
|
endif()
|
2011-10-20 00:19:21 +00:00
|
|
|
add_definitions(-DWITH_SDL)
|
2010-12-08 08:43:06 +00:00
|
|
|
endif()
|
2009-07-20 10:24:53 +00:00
|
|
|
|
2011-02-21 13:13:08 +00:00
|
|
|
if(WITH_BINRELOC)
|
2010-12-08 08:43:06 +00:00
|
|
|
add_definitions(-DWITH_BINRELOC)
|
2011-06-18 14:12:54 +00:00
|
|
|
blender_include_dirs(${BINRELOC_INCLUDE_DIRS})
|
2010-12-08 08:43:06 +00:00
|
|
|
endif()
|
2007-01-23 20:08:23 +00:00
|
|
|
|
2012-12-20 07:57:26 +00:00
|
|
|
if(WITH_FREESTYLE)
|
|
|
|
add_definitions(-DWITH_FREESTYLE)
|
|
|
|
blender_include_dirs(../blender/freestyle)
|
|
|
|
endif()
|
|
|
|
|
2009-09-24 15:36:00 +00:00
|
|
|
# Setup the exe sources and buildinfo
|
2010-12-08 08:43:06 +00:00
|
|
|
set(SRC
|
2010-11-29 04:35:56 +00:00
|
|
|
creator.c
|
|
|
|
)
|
2006-12-06 00:28:13 +00:00
|
|
|
|
2011-04-09 00:10:29 +00:00
|
|
|
# MSVC 2010 gives linking errors with the manifest
|
2010-12-08 08:43:06 +00:00
|
|
|
if(WIN32 AND NOT UNIX)
|
2011-03-29 13:00:03 +00:00
|
|
|
string(SUBSTRING ${BLENDER_VERSION} 0 1 bver1)
|
|
|
|
string(SUBSTRING ${BLENDER_VERSION} 2 1 bver2)
|
|
|
|
string(SUBSTRING ${BLENDER_VERSION} 3 1 bver3)
|
2011-04-09 23:25:52 +00:00
|
|
|
if(MINGW)
|
|
|
|
add_definitions(
|
|
|
|
-DWINDRES
|
|
|
|
-DBLEN_VER_RC_STR_M=${BLENDER_VERSION}
|
|
|
|
-DBLEN_VER_RC_1=${bver1}
|
|
|
|
-DBLEN_VER_RC_2=${bver2}
|
|
|
|
-DBLEN_VER_RC_3=${bver3}
|
|
|
|
-DBLEN_VER_RC_4=0
|
|
|
|
)
|
|
|
|
else()
|
|
|
|
add_definitions(
|
|
|
|
-DBLEN_VER_RC_STR=${BLENDER_VERSION}
|
|
|
|
-DBLEN_VER_RC_1=${bver1}
|
|
|
|
-DBLEN_VER_RC_2=${bver2}
|
|
|
|
-DBLEN_VER_RC_3=${bver3}
|
|
|
|
-DBLEN_VER_RC_4=0
|
|
|
|
)
|
|
|
|
endif()
|
2011-09-30 15:51:58 +00:00
|
|
|
|
2011-03-29 13:00:03 +00:00
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
list(APPEND SRC
|
2010-11-29 04:35:56 +00:00
|
|
|
../icons/winblender.rc
|
|
|
|
)
|
2010-12-08 08:43:06 +00:00
|
|
|
endif()
|
2006-11-17 02:27:12 +00:00
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
if(WITH_BUILDINFO)
|
2011-08-22 16:54:26 +00:00
|
|
|
add_definitions(-DWITH_BUILDINFO)
|
2011-02-24 17:57:35 +00:00
|
|
|
# --------------------------------------------------------------------------
|
|
|
|
# These defines could all be moved into the header below
|
2010-12-08 08:43:06 +00:00
|
|
|
string(REPLACE " " "\ " BUILDINFO_CFLAGS "${CMAKE_C_FLAGS}")
|
|
|
|
string(REPLACE " " "\ " BUILDINFO_CXXFLAGS "${CMAKE_CXX_FLAGS}")
|
|
|
|
string(REPLACE " " "\ " BUILDINFO_LINKFLAGS "${PLATFORM_LINKFLAGS}")
|
|
|
|
add_definitions(
|
2011-02-24 17:57:35 +00:00
|
|
|
# # define in header now, else these get out of date on rebuilds.
|
|
|
|
# -DBUILD_DATE="${BUILD_DATE}"
|
|
|
|
# -DBUILD_TIME="${BUILD_TIME}"
|
2013-11-15 11:11:59 +00:00
|
|
|
# -DBUILD_COMMIT_TIMESTAMP="${BUILD_COMMIT_TIMESTAMP}"
|
|
|
|
# -DBUILD_COMMIT_TIME="${BUILD_COMMIT_TIME}"
|
|
|
|
# -DBUILD_COMMIT_DATE="${BUILD_COMMIT_DATE}"
|
2013-11-04 13:21:39 +00:00
|
|
|
# -DBUILD_HASH="${BUILD_HASH}"
|
|
|
|
# -DBUILD_BRANCH="${BUILD_BRANCH}"
|
2011-02-24 17:57:35 +00:00
|
|
|
-DWITH_BUILDINFO_HEADER # alternative to lines above
|
2010-09-07 01:13:10 +00:00
|
|
|
-DBUILD_PLATFORM="${CMAKE_SYSTEM_NAME}"
|
|
|
|
-DBUILD_TYPE="${CMAKE_BUILD_TYPE}"
|
2010-10-19 05:00:36 +00:00
|
|
|
-DBUILD_CFLAGS="${BUILDINFO_CFLAGS}"
|
|
|
|
-DBUILD_CXXFLAGS="${BUILDINFO_CXXFLAGS}"
|
|
|
|
-DBUILD_LINKFLAGS="${BUILDINFO_LINKFLAGS}"
|
|
|
|
-DBUILD_SYSTEM="CMake"
|
2010-09-07 01:13:10 +00:00
|
|
|
)
|
|
|
|
|
2011-02-24 17:57:35 +00:00
|
|
|
# --------------------------------------------------------------------------
|
|
|
|
# write header for values that change each build
|
|
|
|
# note, generaed file is in build dir's source/creator
|
|
|
|
# except when used as an include path.
|
|
|
|
|
|
|
|
# include the output directory, where the buildinfo.h file is generated
|
|
|
|
include_directories(${CMAKE_BINARY_DIR}/source/creator)
|
2011-02-25 02:27:54 +00:00
|
|
|
|
2011-02-24 17:57:35 +00:00
|
|
|
# a custom target that is always built
|
|
|
|
add_custom_target(buildinfo ALL
|
|
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h)
|
|
|
|
|
|
|
|
# creates svnheader.h using cmake script
|
|
|
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h
|
|
|
|
COMMAND ${CMAKE_COMMAND}
|
|
|
|
-DSOURCE_DIR=${CMAKE_SOURCE_DIR}
|
|
|
|
-P ${CMAKE_SOURCE_DIR}/build_files/cmake/buildinfo.cmake)
|
|
|
|
|
|
|
|
# buildinfo.h is a generated file
|
|
|
|
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/buildinfo.h
|
|
|
|
PROPERTIES GENERATED TRUE
|
|
|
|
HEADER_FILE_ONLY TRUE)
|
2011-03-07 03:57:04 +00:00
|
|
|
|
2011-02-25 02:27:54 +00:00
|
|
|
# add deps below, after adding blender
|
2011-02-24 17:57:35 +00:00
|
|
|
# -------------- done with header values.
|
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
list(APPEND SRC
|
2010-11-29 04:35:56 +00:00
|
|
|
buildinfo.c
|
|
|
|
)
|
2014-06-18 12:49:17 +00:00
|
|
|
|
|
|
|
# make an object library so can load with it in tests
|
2014-06-19 15:49:09 +00:00
|
|
|
add_library(buildinfoobj OBJECT buildinfo.c)
|
2014-06-26 18:09:45 +00:00
|
|
|
add_dependencies(buildinfoobj buildinfo)
|
2010-12-08 08:43:06 +00:00
|
|
|
endif()
|
2009-09-24 15:36:00 +00:00
|
|
|
|
2010-12-16 12:48:30 +00:00
|
|
|
# message(STATUS "Configuring blender")
|
2011-02-20 23:39:29 +00:00
|
|
|
if(WITH_PYTHON_MODULE)
|
|
|
|
add_definitions(-DWITH_PYTHON_MODULE)
|
|
|
|
|
|
|
|
# creates ./bin/bpy.so which can be imported as a python module.
|
2012-01-11 00:09:46 +00:00
|
|
|
#
|
|
|
|
# note that 'SHARED' works on Linux and Windows,
|
|
|
|
# but not OSX which _must_ be 'MODULE'
|
|
|
|
add_library(blender MODULE ${SRC})
|
2011-02-20 23:39:29 +00:00
|
|
|
set_target_properties(
|
|
|
|
blender
|
|
|
|
PROPERTIES
|
2011-05-30 10:51:37 +00:00
|
|
|
PREFIX ""
|
|
|
|
OUTPUT_NAME bpy
|
|
|
|
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin # only needed on windows
|
2011-02-20 23:39:29 +00:00
|
|
|
)
|
2011-09-30 15:51:58 +00:00
|
|
|
|
2012-01-16 14:13:41 +00:00
|
|
|
if(APPLE)
|
|
|
|
set_target_properties(
|
|
|
|
blender
|
|
|
|
PROPERTIES
|
2014-11-12 19:54:48 +00:00
|
|
|
MACOSX_BUNDLE
|
2012-01-16 14:13:41 +00:00
|
|
|
LINK_FLAGS_RELEASE "${PLATFORM_LINKFLAGS}"
|
|
|
|
LINK_FLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG}"
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2011-03-27 23:11:22 +00:00
|
|
|
if(WIN32)
|
|
|
|
# python modules use this
|
|
|
|
set_target_properties(
|
|
|
|
blender
|
|
|
|
PROPERTIES
|
2011-05-09 14:41:44 +00:00
|
|
|
SUFFIX ".pyd"
|
2011-09-30 15:51:58 +00:00
|
|
|
)
|
2011-03-27 23:11:22 +00:00
|
|
|
endif()
|
2011-09-30 15:51:58 +00:00
|
|
|
|
2011-02-20 23:39:29 +00:00
|
|
|
else()
|
|
|
|
add_executable(blender ${EXETYPE} ${SRC})
|
|
|
|
endif()
|
2009-09-24 15:36:00 +00:00
|
|
|
|
2011-02-24 17:57:35 +00:00
|
|
|
if(WITH_BUILDINFO)
|
|
|
|
# explicitly say that the executable depends on the buildinfo
|
|
|
|
add_dependencies(blender buildinfo)
|
|
|
|
endif()
|
2006-12-10 14:49:28 +00:00
|
|
|
|
|
|
|
# Post build steps for bundling/packaging.
|
|
|
|
|
2011-07-01 13:10:49 +00:00
|
|
|
set(BLENDER_TEXT_FILES
|
|
|
|
${CMAKE_SOURCE_DIR}/release/text/GPL-license.txt
|
|
|
|
${CMAKE_SOURCE_DIR}/release/text/Python-license.txt
|
|
|
|
${CMAKE_SOURCE_DIR}/release/text/copyright.txt
|
|
|
|
${CMAKE_SOURCE_DIR}/release/text/readme.html
|
2013-09-25 08:35:43 +00:00
|
|
|
${CMAKE_SOURCE_DIR}/release/datafiles/LICENSE-bfont.ttf.txt
|
2011-07-01 13:10:49 +00:00
|
|
|
)
|
|
|
|
|
2013-09-25 08:35:43 +00:00
|
|
|
if(WITH_INTERNATIONAL)
|
|
|
|
list(APPEND BLENDER_TEXT_FILES
|
|
|
|
${CMAKE_SOURCE_DIR}/release/datafiles/LICENSE-droidsans.ttf.txt
|
2013-09-25 19:18:28 +00:00
|
|
|
${CMAKE_SOURCE_DIR}/release/datafiles/LICENSE-bmonofont-i18n.ttf.txt
|
2013-09-25 08:35:43 +00:00
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2006-12-10 17:09:48 +00:00
|
|
|
|
2011-11-17 18:23:34 +00:00
|
|
|
# -----------------------------------------------------------------------------
|
2012-03-21 05:33:37 +00:00
|
|
|
# Platform Specific Var: TARGETDIR_VER
|
2011-11-17 18:23:34 +00:00
|
|
|
|
|
|
|
if(UNIX AND NOT APPLE)
|
2011-03-17 09:09:48 +00:00
|
|
|
if(WITH_INSTALL_PORTABLE)
|
2014-11-11 20:44:26 +00:00
|
|
|
set(TARGETDIR_VER ${BLENDER_VERSION})
|
2011-03-17 09:09:48 +00:00
|
|
|
else()
|
2011-05-24 18:34:07 +00:00
|
|
|
if(WITH_PYTHON_MODULE)
|
|
|
|
set(TARGETDIR_VER ${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${BLENDER_VERSION})
|
|
|
|
else()
|
2014-11-11 20:44:26 +00:00
|
|
|
set(TARGETDIR_VER share/blender/${BLENDER_VERSION})
|
2011-05-24 18:34:07 +00:00
|
|
|
endif()
|
2011-03-17 09:09:48 +00:00
|
|
|
endif()
|
2011-03-06 11:41:30 +00:00
|
|
|
|
2011-11-17 18:23:34 +00:00
|
|
|
elseif(WIN32)
|
2014-11-11 14:47:22 +00:00
|
|
|
set(TARGETDIR_VER ${BLENDER_VERSION})
|
2011-11-17 18:23:34 +00:00
|
|
|
|
|
|
|
elseif(APPLE)
|
2012-01-16 14:13:41 +00:00
|
|
|
if(WITH_PYTHON_MODULE)
|
2014-11-12 19:54:48 +00:00
|
|
|
set(TARGETDIR_VER ${BLENDER_VERSION})
|
2012-01-16 14:13:41 +00:00
|
|
|
else()
|
2014-11-12 19:54:48 +00:00
|
|
|
set(TARGETDIR_VER blender.app/Contents/Resources/${BLENDER_VERSION})
|
2012-01-16 14:13:41 +00:00
|
|
|
endif()
|
2011-11-17 18:23:34 +00:00
|
|
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Install Targets (Generic, All Platforms)
|
|
|
|
|
|
|
|
|
|
|
|
# important to make a clean install each time, else old scripts get loaded.
|
|
|
|
install(
|
|
|
|
CODE
|
|
|
|
"file(REMOVE_RECURSE ${TARGETDIR_VER})"
|
|
|
|
)
|
|
|
|
|
|
|
|
if(WITH_PYTHON)
|
|
|
|
# install(CODE "message(\"copying blender scripts...\")")
|
2011-11-17 19:43:59 +00:00
|
|
|
|
|
|
|
# exclude addons_contrib if release
|
|
|
|
if("${BLENDER_VERSION_CYCLE}" STREQUAL "release")
|
|
|
|
set(ADDON_EXCLUDE_CONDITIONAL "addons_contrib/*")
|
|
|
|
else()
|
|
|
|
set(ADDON_EXCLUDE_CONDITIONAL "_addons_contrib/*") # dummy, wont do anything
|
|
|
|
endif()
|
|
|
|
|
2012-12-20 07:57:26 +00:00
|
|
|
# do not install freestyle dir if disabled
|
|
|
|
if(NOT WITH_FREESTYLE)
|
|
|
|
set(FREESTYLE_EXCLUDE_CONDITIONAL "freestyle/*")
|
|
|
|
else()
|
|
|
|
set(FREESTYLE_EXCLUDE_CONDITIONAL "_freestyle/*") # dummy, wont do anything
|
|
|
|
endif()
|
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
install(
|
2011-11-17 18:23:34 +00:00
|
|
|
DIRECTORY ${CMAKE_SOURCE_DIR}/release/scripts
|
|
|
|
DESTINATION ${TARGETDIR_VER}
|
2013-11-16 18:18:21 +00:00
|
|
|
PATTERN ".git" EXCLUDE
|
2011-11-17 18:23:34 +00:00
|
|
|
PATTERN "__pycache__" EXCLUDE
|
2011-11-17 19:43:59 +00:00
|
|
|
PATTERN "${ADDON_EXCLUDE_CONDITIONAL}" EXCLUDE
|
2012-12-20 07:57:26 +00:00
|
|
|
PATTERN "${FREESTYLE_EXCLUDE_CONDITIONAL}" EXCLUDE
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
2011-11-17 19:43:59 +00:00
|
|
|
|
|
|
|
unset(ADDON_EXCLUDE_CONDITIONAL)
|
2012-12-20 07:57:26 +00:00
|
|
|
unset(FREESTYLE_EXCLUDE_CONDITIONAL)
|
2011-11-17 18:23:34 +00:00
|
|
|
endif()
|
2011-03-06 11:41:30 +00:00
|
|
|
|
2011-11-17 18:23:34 +00:00
|
|
|
# localization
|
|
|
|
if(WITH_INTERNATIONAL)
|
2011-03-17 09:09:48 +00:00
|
|
|
install(
|
2011-11-17 18:23:34 +00:00
|
|
|
DIRECTORY
|
|
|
|
${CMAKE_SOURCE_DIR}/release/datafiles/fonts
|
|
|
|
DESTINATION ${TARGETDIR_VER}/datafiles
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
2013-11-08 20:44:48 +00:00
|
|
|
|
|
|
|
set(_locale_dir "${CMAKE_SOURCE_DIR}/release/datafiles/locale")
|
2013-11-16 18:09:03 +00:00
|
|
|
set(_locale_target_dir ${TARGETDIR_VER}/datafiles/locale)
|
2013-11-08 20:44:48 +00:00
|
|
|
|
2013-11-16 18:09:03 +00:00
|
|
|
file(GLOB _po_files "${_locale_dir}/po/*.po")
|
|
|
|
foreach(_po_file ${_po_files})
|
|
|
|
msgfmt_simple(${_po_file} _all_mo_files)
|
|
|
|
endforeach()
|
2013-11-08 20:44:48 +00:00
|
|
|
|
2013-11-16 18:09:03 +00:00
|
|
|
# Create a custom target which will compile all po to mo
|
|
|
|
add_custom_target(
|
|
|
|
locales
|
|
|
|
DEPENDS ${_all_mo_files})
|
2013-11-08 20:44:48 +00:00
|
|
|
|
2013-11-16 18:09:03 +00:00
|
|
|
add_dependencies(blender locales)
|
2013-11-08 20:44:48 +00:00
|
|
|
|
2013-11-16 18:09:03 +00:00
|
|
|
# Generate INSTALL rules
|
|
|
|
install(
|
|
|
|
FILES ${_locale_dir}/languages
|
|
|
|
DESTINATION ${_locale_target_dir}
|
|
|
|
)
|
2013-11-08 20:44:48 +00:00
|
|
|
|
2013-11-16 18:09:03 +00:00
|
|
|
foreach(_mo_file ${_all_mo_files})
|
|
|
|
get_filename_component(_locale_name ${_mo_file} NAME_WE)
|
2013-11-08 20:44:48 +00:00
|
|
|
install(
|
2013-11-16 18:09:03 +00:00
|
|
|
FILES ${_mo_file}
|
|
|
|
DESTINATION ${_locale_target_dir}/${_locale_name}/LC_MESSAGES
|
|
|
|
RENAME blender.mo
|
2013-11-08 20:44:48 +00:00
|
|
|
)
|
2013-11-16 18:09:03 +00:00
|
|
|
unset(_locale_name)
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
unset(_all_mo_files)
|
|
|
|
unset(_po_files)
|
|
|
|
unset(_po_file)
|
|
|
|
unset(_mo_file)
|
|
|
|
unset(_locale_target_dir)
|
2013-11-08 20:44:48 +00:00
|
|
|
|
|
|
|
unset(_locale_dir)
|
2011-11-17 18:23:34 +00:00
|
|
|
endif()
|
2011-03-06 11:41:30 +00:00
|
|
|
|
Color Management, Stage 2: Switch color pipeline to use OpenColorIO
Replace old color pipeline which was supporting linear/sRGB color spaces
only with OpenColorIO-based pipeline.
This introduces two configurable color spaces:
- Input color space for images and movie clips. This space is used to convert
images/movies from color space in which file is saved to Blender's linear
space (for float images, byte images are not internally converted, only input
space is stored for such images and used later).
This setting could be found in image/clip data block settings.
- Display color space which defines space in which particular display is working.
This settings could be found in scene's Color Management panel.
When render result is being displayed on the screen, apart from converting image
to display space, some additional conversions could happen.
This conversions are:
- View, which defines tone curve applying before display transformation.
These are different ways to view the image on the same display device.
For example it could be used to emulate film view on sRGB display.
- Exposure affects on image exposure before tone map is applied.
- Gamma is post-display gamma correction, could be used to match particular
display gamma.
- RGB curves are user-defined curves which are applying before display
transformation, could be used for different purposes.
All this settings by default are only applying on render result and does not
affect on other images. If some particular image needs to be affected by this
transformation, "View as Render" setting of image data block should be set to
truth. Movie clips are always affected by all display transformations.
This commit also introduces configurable color space in which sequencer is
working. This setting could be found in scene's Color Management panel and
it should be used if such stuff as grading needs to be done in color space
different from sRGB (i.e. when Film view on sRGB display is use, using VD16
space as sequencer's internal space would make grading working in space
which is close to the space using for display).
Some technical notes:
- Image buffer's float buffer is now always in linear space, even if it was
created from 16bit byte images.
- Space of byte buffer is stored in image buffer's rect_colorspace property.
- Profile of image buffer was removed since it's not longer meaningful.
- OpenGL and GLSL is supposed to always work in sRGB space. It is possible
to support other spaces, but it's quite large project which isn't so
much important.
- Legacy Color Management option disabled is emulated by using None display.
It could have some regressions, but there's no clear way to avoid them.
- If OpenColorIO is disabled on build time, it should make blender behaving
in the same way as previous release with color management enabled.
More details could be found at this page (more details would be added soon):
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management
--
Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO
integration and to Brecht van Lommel for some further development and code/
usecase review!
2012-09-15 10:05:07 +00:00
|
|
|
# color management
|
|
|
|
if(WITH_OPENCOLORIO)
|
|
|
|
install(
|
|
|
|
DIRECTORY ${CMAKE_SOURCE_DIR}/release/datafiles/colormanagement
|
|
|
|
DESTINATION ${TARGETDIR_VER}/datafiles
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2011-11-17 18:23:34 +00:00
|
|
|
# helpful tip when using make
|
|
|
|
if("${CMAKE_GENERATOR}" MATCHES ".*Makefiles.*")
|
2011-03-17 09:09:48 +00:00
|
|
|
# message after building.
|
|
|
|
add_custom_command(
|
|
|
|
TARGET blender POST_BUILD MAIN_DEPENDENCY blender
|
2011-11-20 00:37:24 +00:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E echo 'now run: \"make install\" to copy runtime files and scripts to ${TARGETDIR_VER}'
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
2011-11-17 18:23:34 +00:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Install Targets (Platform Specific)
|
|
|
|
|
|
|
|
if(UNIX AND NOT APPLE)
|
2011-03-06 11:41:30 +00:00
|
|
|
|
2014-09-08 01:22:40 +00:00
|
|
|
if(NOT WITH_PYTHON_MODULE)
|
2014-11-13 13:07:34 +00:00
|
|
|
if(WITH_DOC_MANPAGE)
|
|
|
|
add_custom_target(
|
|
|
|
blender_man_page ALL
|
|
|
|
COMMAND ${CMAKE_SOURCE_DIR}/doc/manpage/blender.1.py
|
|
|
|
${EXECUTABLE_OUTPUT_PATH}/blender
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/blender.1)
|
|
|
|
add_dependencies(blender_man_page blender)
|
|
|
|
endif()
|
2014-09-08 01:22:40 +00:00
|
|
|
endif()
|
2014-06-13 15:19:58 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
# there are a few differences between portable and system install
|
|
|
|
if(WITH_INSTALL_PORTABLE)
|
2014-11-04 08:37:01 +00:00
|
|
|
if(WITH_PYTHON_MODULE)
|
|
|
|
# pass
|
|
|
|
else()
|
2014-11-13 13:07:34 +00:00
|
|
|
if(WITH_DOC_MANPAGE)
|
|
|
|
install(
|
|
|
|
FILES ${CMAKE_CURRENT_BINARY_DIR}/blender.1
|
|
|
|
DESTINATION "."
|
|
|
|
)
|
|
|
|
endif()
|
2014-11-04 08:37:01 +00:00
|
|
|
endif()
|
2014-11-11 20:44:26 +00:00
|
|
|
install(
|
|
|
|
TARGETS blender
|
|
|
|
DESTINATION "."
|
|
|
|
)
|
2014-09-08 01:22:40 +00:00
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
install(
|
2011-03-17 09:09:48 +00:00
|
|
|
FILES
|
2011-05-30 10:51:37 +00:00
|
|
|
${CMAKE_SOURCE_DIR}/release/freedesktop/blender.desktop
|
|
|
|
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/scalable/apps/blender.svg
|
2014-11-11 20:44:26 +00:00
|
|
|
DESTINATION "."
|
2009-09-06 01:51:23 +00:00
|
|
|
)
|
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
install(
|
|
|
|
PROGRAMS
|
|
|
|
${CMAKE_SOURCE_DIR}/release/bin/blender-thumbnailer.py
|
2014-11-11 20:44:26 +00:00
|
|
|
DESTINATION "."
|
2011-03-09 21:19:15 +00:00
|
|
|
)
|
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
install(
|
2011-07-01 13:10:49 +00:00
|
|
|
FILES ${BLENDER_TEXT_FILES}
|
2014-11-11 20:44:26 +00:00
|
|
|
DESTINATION "."
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
2011-03-06 11:41:30 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
else()
|
|
|
|
# main blender binary
|
2011-05-24 18:34:07 +00:00
|
|
|
if(WITH_PYTHON_MODULE)
|
|
|
|
install(
|
2011-05-26 12:15:42 +00:00
|
|
|
TARGETS blender
|
2014-11-11 20:44:26 +00:00
|
|
|
LIBRARY DESTINATION ${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages
|
2011-05-24 18:34:07 +00:00
|
|
|
)
|
|
|
|
else()
|
|
|
|
install(
|
2014-11-11 20:44:26 +00:00
|
|
|
TARGETS blender
|
|
|
|
DESTINATION bin
|
2011-05-24 18:34:07 +00:00
|
|
|
)
|
2014-11-13 13:07:34 +00:00
|
|
|
if(WITH_DOC_MANPAGE)
|
|
|
|
# manpage only with 'blender' binary
|
|
|
|
install(
|
|
|
|
FILES ${CMAKE_CURRENT_BINARY_DIR}/blender.1
|
|
|
|
DESTINATION share/man/man1
|
|
|
|
)
|
|
|
|
endif()
|
2011-05-24 18:34:07 +00:00
|
|
|
endif()
|
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
# misc files
|
2010-12-08 08:43:06 +00:00
|
|
|
install(
|
2011-03-17 09:09:48 +00:00
|
|
|
FILES ${CMAKE_SOURCE_DIR}/release/freedesktop/blender.desktop
|
2014-11-11 20:44:26 +00:00
|
|
|
DESTINATION share/applications
|
2010-07-26 19:59:33 +00:00
|
|
|
)
|
2011-03-17 09:09:48 +00:00
|
|
|
install(
|
2011-04-21 06:37:54 +00:00
|
|
|
DIRECTORY
|
2011-05-30 10:51:37 +00:00
|
|
|
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/16x16
|
|
|
|
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/22x22
|
|
|
|
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/24x24
|
|
|
|
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/32x32
|
|
|
|
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/48x48
|
|
|
|
${CMAKE_SOURCE_DIR}/release/freedesktop/icons/256x256
|
2014-11-11 20:44:26 +00:00
|
|
|
DESTINATION share/icons/hicolor
|
2011-04-21 06:37:54 +00:00
|
|
|
PATTERN "*.svg" EXCLUDE
|
|
|
|
)
|
|
|
|
install(
|
|
|
|
FILES ${CMAKE_SOURCE_DIR}/release/freedesktop/icons/scalable/apps/blender.svg
|
2014-11-11 20:44:26 +00:00
|
|
|
DESTINATION share/icons/hicolor/scalable/apps
|
2009-09-06 01:51:23 +00:00
|
|
|
)
|
2011-03-17 09:09:48 +00:00
|
|
|
install(
|
|
|
|
PROGRAMS ${CMAKE_SOURCE_DIR}/release/bin/blender-thumbnailer.py
|
2014-11-11 20:44:26 +00:00
|
|
|
DESTINATION bin
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
|
|
|
install(
|
2011-07-01 13:10:49 +00:00
|
|
|
FILES ${BLENDER_TEXT_FILES}
|
2014-11-11 20:44:26 +00:00
|
|
|
DESTINATION share/doc/blender
|
2011-03-07 03:33:33 +00:00
|
|
|
)
|
2011-03-17 09:09:48 +00:00
|
|
|
endif()
|
2011-03-08 09:01:22 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
if(WITH_PYTHON)
|
|
|
|
if(WITH_PYTHON_INSTALL)
|
2012-02-15 08:53:28 +00:00
|
|
|
# on some platforms (like openSUSE) Python is linked
|
|
|
|
# to be used from lib64 folder.
|
|
|
|
# determine this from Python's libraries path
|
2013-04-23 13:51:20 +00:00
|
|
|
#
|
|
|
|
# ugh, its possible 'lib64' is just a symlink to 'lib' which causes incorrect use of 'lib64'
|
|
|
|
get_filename_component(_pypath_real ${PYTHON_LIBPATH} REALPATH)
|
|
|
|
if(${_pypath_real} MATCHES "lib64$")
|
2012-02-15 08:53:28 +00:00
|
|
|
set(_target_LIB "lib64")
|
|
|
|
else()
|
|
|
|
set(_target_LIB "lib")
|
|
|
|
endif()
|
2013-04-23 13:51:20 +00:00
|
|
|
unset(_pypath_real)
|
2012-02-15 08:53:28 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
# Copy the systems python into the install directory
|
|
|
|
# Scons copy in tools/Blender.py
|
|
|
|
# install(CODE "message(\"copying a subset of the systems python...\")")
|
2011-03-06 11:41:30 +00:00
|
|
|
install(
|
2011-03-17 09:09:48 +00:00
|
|
|
DIRECTORY ${PYTHON_LIBPATH}/python${PYTHON_VERSION}
|
2012-02-15 08:53:28 +00:00
|
|
|
DESTINATION ${TARGETDIR_VER}/python/${_target_LIB}
|
2011-03-06 11:41:30 +00:00
|
|
|
PATTERN ".svn" EXCLUDE
|
2011-05-26 11:45:25 +00:00
|
|
|
PATTERN "__pycache__" EXCLUDE # * any cache *
|
2011-03-17 09:09:48 +00:00
|
|
|
PATTERN "distutils" EXCLUDE # ./distutils
|
|
|
|
PATTERN "lib2to3" EXCLUDE # ./lib2to3
|
|
|
|
PATTERN "config" EXCLUDE # ./config
|
|
|
|
PATTERN "config-*" EXCLUDE # ./config-*
|
|
|
|
PATTERN "site-packages/*" EXCLUDE # ./site-packages/*
|
|
|
|
PATTERN "tkinter" EXCLUDE # ./tkinter
|
|
|
|
PATTERN "lib-dynload/_tkinter.*" EXCLUDE # ./lib-dynload/_tkinter.co
|
2011-05-26 11:45:25 +00:00
|
|
|
PATTERN "idlelib" EXCLUDE # ./idlelib
|
2011-03-17 09:09:48 +00:00
|
|
|
PATTERN "test" EXCLUDE # ./test
|
|
|
|
PATTERN "turtledemo" EXCLUDE # ./turtledemo
|
2014-07-28 17:16:39 +00:00
|
|
|
PATTERN "turtle.py" EXCLUDE # ./turtle.py
|
2009-09-06 01:51:23 +00:00
|
|
|
)
|
2011-03-06 11:41:30 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
# # doesnt work, todo
|
2014-11-08 10:32:32 +00:00
|
|
|
# install(CODE "execute_process(COMMAND find ${CMAKE_INSTALL_PREFIX}/${BLENDER_VERSION}/python/lib/ -name '*.so' -exec strip -s {} '\;')")
|
2014-07-28 17:16:39 +00:00
|
|
|
|
2012-04-30 09:38:32 +00:00
|
|
|
if(WITH_PYTHON_INSTALL_NUMPY)
|
2014-07-28 17:16:39 +00:00
|
|
|
# Install to the same directory as the source, so debian-like
|
|
|
|
# distros are happy with their policy.
|
|
|
|
set(_suffix "site-packages")
|
|
|
|
if(${PYTHON_NUMPY_PATH} MATCHES "dist-packages")
|
|
|
|
set(_suffix "dist-packages")
|
|
|
|
endif()
|
2012-04-30 09:38:32 +00:00
|
|
|
install(
|
2012-05-02 14:16:35 +00:00
|
|
|
DIRECTORY ${PYTHON_NUMPY_PATH}/numpy
|
2014-07-28 17:16:39 +00:00
|
|
|
DESTINATION ${TARGETDIR_VER}/python/${_target_LIB}/python${PYTHON_VERSION}/${_suffix}
|
2012-04-30 09:38:32 +00:00
|
|
|
PATTERN ".svn" EXCLUDE
|
|
|
|
PATTERN "__pycache__" EXCLUDE # * any cache *
|
|
|
|
PATTERN "*.pyc" EXCLUDE # * any cache *
|
|
|
|
PATTERN "*.pyo" EXCLUDE # * any cache *
|
|
|
|
PATTERN "distutils" EXCLUDE # ./distutils
|
|
|
|
PATTERN "oldnumeric" EXCLUDE # ./oldnumeric
|
|
|
|
PATTERN "doc" EXCLUDE # ./doc
|
|
|
|
PATTERN "tests" EXCLUDE # ./tests
|
|
|
|
PATTERN "f2py" EXCLUDE # ./f2py - fortran/python interface code, not fun for blender devs.
|
|
|
|
PATTERN "include" EXCLUDE # include dirs all over, we wont use NumPy/CAPI
|
|
|
|
PATTERN "*.h" EXCLUDE # some includes are not in include dirs
|
|
|
|
PATTERN "*.a" EXCLUDE # ./core/lib/libnpymath.a - for linking, we dont need.
|
|
|
|
)
|
2014-07-28 17:16:39 +00:00
|
|
|
unset(_suffix)
|
2012-04-30 09:38:32 +00:00
|
|
|
endif()
|
2014-03-04 18:39:53 +00:00
|
|
|
|
|
|
|
# Copy requests, we need to generalize site-packages
|
|
|
|
if(WITH_PYTHON_INSTALL_REQUESTS)
|
2014-07-28 17:16:39 +00:00
|
|
|
set(_suffix "site-packages")
|
|
|
|
if(${PYTHON_REQUESTS_PATH} MATCHES "dist-packages")
|
|
|
|
set(_suffix "dist-packages")
|
|
|
|
endif()
|
2014-03-04 18:39:53 +00:00
|
|
|
install(
|
2014-07-28 14:42:30 +00:00
|
|
|
DIRECTORY ${PYTHON_REQUESTS_PATH}/requests
|
2014-07-28 17:16:39 +00:00
|
|
|
DESTINATION ${TARGETDIR_VER}/python/${_target_LIB}/python${PYTHON_VERSION}/${_suffix}
|
2014-03-04 18:39:53 +00:00
|
|
|
PATTERN ".svn" EXCLUDE
|
|
|
|
PATTERN "__pycache__" EXCLUDE # * any cache *
|
|
|
|
PATTERN "*.pyc" EXCLUDE # * any cache *
|
|
|
|
PATTERN "*.pyo" EXCLUDE # * any cache *
|
|
|
|
PATTERN "cacert.pem" EXCLUDE # for now we don't deal with security
|
|
|
|
)
|
2014-07-28 17:16:39 +00:00
|
|
|
# On some platforms requests does have extra dependencies.
|
|
|
|
set(_requests_deps "chardet" "urllib3")
|
|
|
|
foreach(_requests_dep ${_requests_deps})
|
|
|
|
if(EXISTS ${PYTHON_REQUESTS_PATH}/${_requests_dep})
|
|
|
|
install(
|
|
|
|
DIRECTORY ${PYTHON_REQUESTS_PATH}/${_requests_dep}
|
|
|
|
DESTINATION ${TARGETDIR_VER}/python/${_target_LIB}/python${PYTHON_VERSION}/${_suffix}
|
|
|
|
PATTERN ".svn" EXCLUDE
|
|
|
|
PATTERN "__pycache__" EXCLUDE # * any cache *
|
|
|
|
PATTERN "*.pyc" EXCLUDE # * any cache *
|
|
|
|
PATTERN "*.pyo" EXCLUDE # * any cache *
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
endforeach()
|
|
|
|
if(EXISTS ${PYTHON_REQUESTS_PATH}/six.py)
|
|
|
|
install(
|
|
|
|
FILES ${PYTHON_REQUESTS_PATH}/six.py
|
|
|
|
DESTINATION ${TARGETDIR_VER}/python/${_target_LIB}/python${PYTHON_VERSION}/${_suffix}
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
unset(_requests_dep)
|
|
|
|
unset(_requests_deps)
|
|
|
|
unset(_suffix)
|
2014-03-04 18:39:53 +00:00
|
|
|
endif()
|
2012-02-15 08:53:28 +00:00
|
|
|
unset(_target_LIB)
|
2012-04-30 09:38:32 +00:00
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
endif()
|
2011-03-17 09:09:48 +00:00
|
|
|
endif()
|
|
|
|
elseif(WIN32)
|
2009-09-21 03:16:26 +00:00
|
|
|
|
2011-11-17 18:23:34 +00:00
|
|
|
install(
|
2011-07-02 07:55:06 +00:00
|
|
|
FILES ${BLENDER_TEXT_FILES}
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
2011-03-07 03:33:33 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
if(WITH_PYTHON)
|
2013-03-24 12:13:13 +00:00
|
|
|
string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
|
2012-11-26 12:38:40 +00:00
|
|
|
|
2011-05-30 10:39:18 +00:00
|
|
|
install(
|
2014-08-31 07:08:07 +00:00
|
|
|
FILES ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}.dll ${LIBDIR}/python/lib/sqlite3.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2011-05-30 10:39:18 +00:00
|
|
|
CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
|
|
|
|
)
|
2011-03-07 03:33:33 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
install(
|
2014-08-31 07:08:07 +00:00
|
|
|
FILES ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}_d.dll ${LIBDIR}/python/lib/sqlite3_d.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2011-03-17 09:09:48 +00:00
|
|
|
CONFIGURATIONS Debug
|
|
|
|
)
|
2011-03-07 03:33:33 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
if(WITH_PYTHON_INSTALL)
|
2011-05-24 05:21:51 +00:00
|
|
|
# note, as far as python is concerned 'RelWithDebInfo' is not debug since its without debug flags.
|
2011-03-07 03:33:33 +00:00
|
|
|
|
2014-11-11 14:47:22 +00:00
|
|
|
install(DIRECTORY DESTINATION ${TARGETDIR_VER}/python)
|
|
|
|
install(DIRECTORY DESTINATION ${TARGETDIR_VER}/python/lib)
|
2011-03-07 03:33:33 +00:00
|
|
|
|
2014-12-01 15:24:18 +00:00
|
|
|
# WARNING: its important that 'CMAKE_INSTALL_CONFIG_NAME' is evaluated at build time
|
|
|
|
# and _NOT_ configuration time, when modifying the lines below,
|
|
|
|
# check it works in both Release & Debug mode.
|
|
|
|
#
|
|
|
|
# Edit with extreme care! - Campbell
|
|
|
|
|
2014-12-01 13:53:12 +00:00
|
|
|
# extract python
|
|
|
|
install(
|
|
|
|
CODE
|
|
|
|
"
|
2014-12-01 14:36:35 +00:00
|
|
|
message(STATUS \"Extracting Python to: \${CMAKE_INSTALL_PREFIX}/${BLENDER_VERSION}/python\")
|
2014-12-01 13:53:12 +00:00
|
|
|
if(\"\${CMAKE_INSTALL_CONFIG_NAME}\" MATCHES \"^([Dd][Ee][Bb][Uu][Gg])$\")
|
|
|
|
set(PYTHON_ZIP ${LIBDIR}/release/python${_PYTHON_VERSION_NO_DOTS}_d.tar.gz)
|
|
|
|
else()
|
|
|
|
set(PYTHON_ZIP ${LIBDIR}/release/python${_PYTHON_VERSION_NO_DOTS}.tar.gz)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
execute_process(
|
2014-12-01 14:36:35 +00:00
|
|
|
COMMAND \${CMAKE_COMMAND} -E make_directory
|
|
|
|
\"\${CMAKE_INSTALL_PREFIX}/${BLENDER_VERSION}/python/lib\"
|
|
|
|
COMMAND \${CMAKE_COMMAND} -E
|
|
|
|
chdir \"\${CMAKE_INSTALL_PREFIX}/${BLENDER_VERSION}/python/lib\"
|
|
|
|
\${CMAKE_COMMAND} -E
|
|
|
|
tar xzfv \"\${PYTHON_ZIP}\"
|
2014-12-01 13:53:12 +00:00
|
|
|
)
|
|
|
|
unset(PYTHON_ZIP)
|
|
|
|
"
|
|
|
|
)
|
2014-03-04 13:20:11 +00:00
|
|
|
|
2014-03-04 17:12:21 +00:00
|
|
|
# release/site-packages
|
2014-12-01 13:53:12 +00:00
|
|
|
install(
|
|
|
|
DIRECTORY ${LIBDIR}/release/site-packages
|
|
|
|
DESTINATION ${BLENDER_VERSION}/python/lib
|
|
|
|
PATTERN ".svn" EXCLUDE
|
|
|
|
PATTERN "__pycache__" EXCLUDE # * any cache *
|
|
|
|
PATTERN "*.pyc" EXCLUDE # * any cache *
|
|
|
|
PATTERN "*.pyo" EXCLUDE # * any cache *)
|
|
|
|
)
|
2014-11-11 14:47:22 +00:00
|
|
|
|
|
|
|
if(WITH_PYTHON_INSTALL_NUMPY)
|
2014-11-26 14:08:40 +00:00
|
|
|
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${BLENDER_VERSION}/python/lib/site-packages/numpy
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E tar xzvf "${LIBDIR}/release/python${_PYTHON_VERSION_NO_DOTS}_numpy_1.8.tar.gz"
|
|
|
|
DEPENDS ${LIBDIR}/release/python${_PYTHON_VERSION_NO_DOTS}_numpy_1.8.tar.gz
|
2014-11-11 14:47:22 +00:00
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${BLENDER_VERSION}/python/lib/site-packages)
|
2014-11-26 14:08:40 +00:00
|
|
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${BLENDER_VERSION}/python/lib/site-packages/numpy
|
|
|
|
DESTINATION ${BLENDER_VERSION}/python/lib/site-packages)
|
2014-11-11 14:47:22 +00:00
|
|
|
endif()
|
2010-12-08 08:43:06 +00:00
|
|
|
endif()
|
2012-11-26 12:38:40 +00:00
|
|
|
|
|
|
|
unset(_PYTHON_VERSION_NO_DOTS)
|
2011-03-17 09:09:48 +00:00
|
|
|
endif()
|
2009-09-06 01:51:23 +00:00
|
|
|
|
2014-10-07 20:46:19 +00:00
|
|
|
# EGL Runtime Components
|
|
|
|
if(WITH_GL_EGL)
|
|
|
|
if(WIN32)
|
2014-11-08 10:32:32 +00:00
|
|
|
install(FILES "${OPENGLES_DLL}" DESTINATION ".")
|
|
|
|
install(FILES "${OPENGLES_EGL_DLL}" DESTINATION ".")
|
2014-10-07 20:46:19 +00:00
|
|
|
|
|
|
|
if(WITH_GL_ANGLE)
|
2014-11-08 10:32:32 +00:00
|
|
|
install(FILES "${D3DCOMPILER_DLL}" DESTINATION ".")
|
2014-10-07 20:46:19 +00:00
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
if(MSVC)
|
|
|
|
install(
|
|
|
|
FILES ${LIBDIR}/pthreads/lib/pthreadVC2.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
|
|
|
else()
|
2012-04-23 20:09:59 +00:00
|
|
|
#MinGW64 comes with own version. For portable builds it will probaly have to be copied to work
|
|
|
|
if(NOT WITH_MINGW64)
|
|
|
|
install(
|
|
|
|
FILES ${LIBDIR}/pthreads/lib/pthreadGC2.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2012-04-23 20:09:59 +00:00
|
|
|
)
|
2012-05-01 20:57:39 +00:00
|
|
|
elseif(WITH_MINGW64)
|
|
|
|
install(
|
2012-07-05 11:39:11 +00:00
|
|
|
FILES
|
|
|
|
${LIBDIR}/binaries/libgcc_s_sjlj-1.dll
|
|
|
|
${LIBDIR}/binaries/libwinpthread-1.dll
|
|
|
|
${LIBDIR}/binaries/libstdc++-6.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2012-05-01 20:57:39 +00:00
|
|
|
)
|
2012-07-05 11:39:11 +00:00
|
|
|
|
|
|
|
if(WITH_OPENMP)
|
|
|
|
install(
|
|
|
|
FILES
|
|
|
|
${LIBDIR}/binaries/libgomp-1.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2012-07-05 11:39:11 +00:00
|
|
|
)
|
|
|
|
endif()
|
2012-04-23 20:09:59 +00:00
|
|
|
endif()
|
2011-03-17 09:09:48 +00:00
|
|
|
endif()
|
2009-09-06 01:51:23 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
if(WITH_CODEC_FFMPEG)
|
2014-05-15 06:12:15 +00:00
|
|
|
if(WITH_MINGW64)
|
2014-03-29 20:12:52 +00:00
|
|
|
install(
|
|
|
|
FILES
|
|
|
|
${LIBDIR}/ffmpeg/lib/avcodec-53.dll
|
|
|
|
${LIBDIR}/ffmpeg/lib/avformat-53.dll
|
|
|
|
${LIBDIR}/ffmpeg/lib/avdevice-53.dll
|
|
|
|
${LIBDIR}/ffmpeg/lib/avutil-51.dll
|
|
|
|
${LIBDIR}/ffmpeg/lib/swscale-2.dll
|
|
|
|
${LIBDIR}/ffmpeg/lib/swresample-0.dll
|
|
|
|
${LIBDIR}/ffmpeg/lib/xvidcore.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2014-03-29 20:12:52 +00:00
|
|
|
)
|
2013-05-14 16:16:25 +00:00
|
|
|
else()
|
|
|
|
install(
|
|
|
|
FILES
|
2014-03-27 10:51:03 +00:00
|
|
|
${LIBDIR}/ffmpeg/lib/avcodec-55.dll
|
|
|
|
${LIBDIR}/ffmpeg/lib/avformat-55.dll
|
|
|
|
${LIBDIR}/ffmpeg/lib/avdevice-55.dll
|
|
|
|
${LIBDIR}/ffmpeg/lib/avutil-52.dll
|
2013-05-14 16:16:25 +00:00
|
|
|
${LIBDIR}/ffmpeg/lib/swscale-2.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2013-05-14 16:16:25 +00:00
|
|
|
)
|
|
|
|
endif()
|
2011-03-17 09:09:48 +00:00
|
|
|
endif()
|
2009-09-06 01:51:23 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
if(WITH_CODEC_SNDFILE)
|
2011-03-16 15:44:17 +00:00
|
|
|
install(
|
2011-05-30 10:51:37 +00:00
|
|
|
FILES ${LIBDIR}/sndfile/lib/libsndfile-1.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2011-03-09 00:23:26 +00:00
|
|
|
)
|
2011-03-17 09:09:48 +00:00
|
|
|
endif()
|
2011-03-09 00:23:26 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
if(WITH_OPENAL)
|
2014-05-15 06:12:15 +00:00
|
|
|
install(
|
|
|
|
FILES
|
|
|
|
${LIBDIR}/openal/lib/OpenAL32.dll
|
|
|
|
${LIBDIR}/openal/lib/wrap_oal.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2014-05-15 06:12:15 +00:00
|
|
|
)
|
2011-03-17 09:09:48 +00:00
|
|
|
endif()
|
2011-03-16 15:44:17 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
if(WITH_SDL)
|
2014-07-31 14:43:02 +00:00
|
|
|
install(
|
2014-11-13 15:19:57 +00:00
|
|
|
FILES ${LIBDIR}/sdl/lib/SDL2.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2014-07-31 14:43:02 +00:00
|
|
|
)
|
2011-03-17 09:09:48 +00:00
|
|
|
endif()
|
2009-09-06 01:51:23 +00:00
|
|
|
|
2011-05-09 14:41:44 +00:00
|
|
|
if(NOT CMAKE_CL_64)
|
2011-04-01 06:39:19 +00:00
|
|
|
install(
|
2011-05-30 10:51:37 +00:00
|
|
|
FILES ${LIBDIR}/thumbhandler/lib/BlendThumb.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2011-05-09 14:41:44 +00:00
|
|
|
)
|
|
|
|
endif()
|
2011-10-07 18:25:54 +00:00
|
|
|
|
|
|
|
install( # x86 builds can run on x64 Windows, so this is required at all times
|
|
|
|
FILES ${LIBDIR}/thumbhandler/lib/BlendThumb64.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2012-11-15 19:37:29 +00:00
|
|
|
)
|
2011-11-07 15:53:40 +00:00
|
|
|
|
Color Management, Stage 2: Switch color pipeline to use OpenColorIO
Replace old color pipeline which was supporting linear/sRGB color spaces
only with OpenColorIO-based pipeline.
This introduces two configurable color spaces:
- Input color space for images and movie clips. This space is used to convert
images/movies from color space in which file is saved to Blender's linear
space (for float images, byte images are not internally converted, only input
space is stored for such images and used later).
This setting could be found in image/clip data block settings.
- Display color space which defines space in which particular display is working.
This settings could be found in scene's Color Management panel.
When render result is being displayed on the screen, apart from converting image
to display space, some additional conversions could happen.
This conversions are:
- View, which defines tone curve applying before display transformation.
These are different ways to view the image on the same display device.
For example it could be used to emulate film view on sRGB display.
- Exposure affects on image exposure before tone map is applied.
- Gamma is post-display gamma correction, could be used to match particular
display gamma.
- RGB curves are user-defined curves which are applying before display
transformation, could be used for different purposes.
All this settings by default are only applying on render result and does not
affect on other images. If some particular image needs to be affected by this
transformation, "View as Render" setting of image data block should be set to
truth. Movie clips are always affected by all display transformations.
This commit also introduces configurable color space in which sequencer is
working. This setting could be found in scene's Color Management panel and
it should be used if such stuff as grading needs to be done in color space
different from sRGB (i.e. when Film view on sRGB display is use, using VD16
space as sequencer's internal space would make grading working in space
which is close to the space using for display).
Some technical notes:
- Image buffer's float buffer is now always in linear space, even if it was
created from 16bit byte images.
- Space of byte buffer is stored in image buffer's rect_colorspace property.
- Profile of image buffer was removed since it's not longer meaningful.
- OpenGL and GLSL is supposed to always work in sRGB space. It is possible
to support other spaces, but it's quite large project which isn't so
much important.
- Legacy Color Management option disabled is emulated by using None display.
It could have some regressions, but there's no clear way to avoid them.
- If OpenColorIO is disabled on build time, it should make blender behaving
in the same way as previous release with color management enabled.
More details could be found at this page (more details would be added soon):
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management
--
Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO
integration and to Brecht van Lommel for some further development and code/
usecase review!
2012-09-15 10:05:07 +00:00
|
|
|
if(WITH_OPENCOLORIO)
|
2012-09-25 15:11:34 +00:00
|
|
|
set(OCIOBIN ${LIBDIR}/opencolorio/bin)
|
Color Management, Stage 2: Switch color pipeline to use OpenColorIO
Replace old color pipeline which was supporting linear/sRGB color spaces
only with OpenColorIO-based pipeline.
This introduces two configurable color spaces:
- Input color space for images and movie clips. This space is used to convert
images/movies from color space in which file is saved to Blender's linear
space (for float images, byte images are not internally converted, only input
space is stored for such images and used later).
This setting could be found in image/clip data block settings.
- Display color space which defines space in which particular display is working.
This settings could be found in scene's Color Management panel.
When render result is being displayed on the screen, apart from converting image
to display space, some additional conversions could happen.
This conversions are:
- View, which defines tone curve applying before display transformation.
These are different ways to view the image on the same display device.
For example it could be used to emulate film view on sRGB display.
- Exposure affects on image exposure before tone map is applied.
- Gamma is post-display gamma correction, could be used to match particular
display gamma.
- RGB curves are user-defined curves which are applying before display
transformation, could be used for different purposes.
All this settings by default are only applying on render result and does not
affect on other images. If some particular image needs to be affected by this
transformation, "View as Render" setting of image data block should be set to
truth. Movie clips are always affected by all display transformations.
This commit also introduces configurable color space in which sequencer is
working. This setting could be found in scene's Color Management panel and
it should be used if such stuff as grading needs to be done in color space
different from sRGB (i.e. when Film view on sRGB display is use, using VD16
space as sequencer's internal space would make grading working in space
which is close to the space using for display).
Some technical notes:
- Image buffer's float buffer is now always in linear space, even if it was
created from 16bit byte images.
- Space of byte buffer is stored in image buffer's rect_colorspace property.
- Profile of image buffer was removed since it's not longer meaningful.
- OpenGL and GLSL is supposed to always work in sRGB space. It is possible
to support other spaces, but it's quite large project which isn't so
much important.
- Legacy Color Management option disabled is emulated by using None display.
It could have some regressions, but there's no clear way to avoid them.
- If OpenColorIO is disabled on build time, it should make blender behaving
in the same way as previous release with color management enabled.
More details could be found at this page (more details would be added soon):
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management
--
Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO
integration and to Brecht van Lommel for some further development and code/
usecase review!
2012-09-15 10:05:07 +00:00
|
|
|
if(NOT MINGW)
|
|
|
|
install(
|
|
|
|
FILES
|
|
|
|
${OCIOBIN}/OpenColorIO.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
Color Management, Stage 2: Switch color pipeline to use OpenColorIO
Replace old color pipeline which was supporting linear/sRGB color spaces
only with OpenColorIO-based pipeline.
This introduces two configurable color spaces:
- Input color space for images and movie clips. This space is used to convert
images/movies from color space in which file is saved to Blender's linear
space (for float images, byte images are not internally converted, only input
space is stored for such images and used later).
This setting could be found in image/clip data block settings.
- Display color space which defines space in which particular display is working.
This settings could be found in scene's Color Management panel.
When render result is being displayed on the screen, apart from converting image
to display space, some additional conversions could happen.
This conversions are:
- View, which defines tone curve applying before display transformation.
These are different ways to view the image on the same display device.
For example it could be used to emulate film view on sRGB display.
- Exposure affects on image exposure before tone map is applied.
- Gamma is post-display gamma correction, could be used to match particular
display gamma.
- RGB curves are user-defined curves which are applying before display
transformation, could be used for different purposes.
All this settings by default are only applying on render result and does not
affect on other images. If some particular image needs to be affected by this
transformation, "View as Render" setting of image data block should be set to
truth. Movie clips are always affected by all display transformations.
This commit also introduces configurable color space in which sequencer is
working. This setting could be found in scene's Color Management panel and
it should be used if such stuff as grading needs to be done in color space
different from sRGB (i.e. when Film view on sRGB display is use, using VD16
space as sequencer's internal space would make grading working in space
which is close to the space using for display).
Some technical notes:
- Image buffer's float buffer is now always in linear space, even if it was
created from 16bit byte images.
- Space of byte buffer is stored in image buffer's rect_colorspace property.
- Profile of image buffer was removed since it's not longer meaningful.
- OpenGL and GLSL is supposed to always work in sRGB space. It is possible
to support other spaces, but it's quite large project which isn't so
much important.
- Legacy Color Management option disabled is emulated by using None display.
It could have some regressions, but there's no clear way to avoid them.
- If OpenColorIO is disabled on build time, it should make blender behaving
in the same way as previous release with color management enabled.
More details could be found at this page (more details would be added soon):
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management
--
Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO
integration and to Brecht van Lommel for some further development and code/
usecase review!
2012-09-15 10:05:07 +00:00
|
|
|
)
|
2012-09-23 18:50:56 +00:00
|
|
|
else()
|
|
|
|
install(
|
|
|
|
FILES
|
|
|
|
${OCIOBIN}/libOpenColorIO.dll
|
2014-11-08 10:32:32 +00:00
|
|
|
DESTINATION "."
|
2012-09-23 18:50:56 +00:00
|
|
|
)
|
Color Management, Stage 2: Switch color pipeline to use OpenColorIO
Replace old color pipeline which was supporting linear/sRGB color spaces
only with OpenColorIO-based pipeline.
This introduces two configurable color spaces:
- Input color space for images and movie clips. This space is used to convert
images/movies from color space in which file is saved to Blender's linear
space (for float images, byte images are not internally converted, only input
space is stored for such images and used later).
This setting could be found in image/clip data block settings.
- Display color space which defines space in which particular display is working.
This settings could be found in scene's Color Management panel.
When render result is being displayed on the screen, apart from converting image
to display space, some additional conversions could happen.
This conversions are:
- View, which defines tone curve applying before display transformation.
These are different ways to view the image on the same display device.
For example it could be used to emulate film view on sRGB display.
- Exposure affects on image exposure before tone map is applied.
- Gamma is post-display gamma correction, could be used to match particular
display gamma.
- RGB curves are user-defined curves which are applying before display
transformation, could be used for different purposes.
All this settings by default are only applying on render result and does not
affect on other images. If some particular image needs to be affected by this
transformation, "View as Render" setting of image data block should be set to
truth. Movie clips are always affected by all display transformations.
This commit also introduces configurable color space in which sequencer is
working. This setting could be found in scene's Color Management panel and
it should be used if such stuff as grading needs to be done in color space
different from sRGB (i.e. when Film view on sRGB display is use, using VD16
space as sequencer's internal space would make grading working in space
which is close to the space using for display).
Some technical notes:
- Image buffer's float buffer is now always in linear space, even if it was
created from 16bit byte images.
- Space of byte buffer is stored in image buffer's rect_colorspace property.
- Profile of image buffer was removed since it's not longer meaningful.
- OpenGL and GLSL is supposed to always work in sRGB space. It is possible
to support other spaces, but it's quite large project which isn't so
much important.
- Legacy Color Management option disabled is emulated by using None display.
It could have some regressions, but there's no clear way to avoid them.
- If OpenColorIO is disabled on build time, it should make blender behaving
in the same way as previous release with color management enabled.
More details could be found at this page (more details would be added soon):
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management
--
Thanks to Xavier Thomas, Lukas Toene for initial work on OpenColorIO
integration and to Brecht van Lommel for some further development and code/
usecase review!
2012-09-15 10:05:07 +00:00
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
elseif(APPLE)
|
2010-11-21 13:41:43 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
# handy install macro to exclude files, we use \$ escape for the "to"
|
|
|
|
# argument when calling so ${BUILD_TYPE} does not get expanded
|
|
|
|
macro(install_dir from to)
|
2011-03-16 15:44:17 +00:00
|
|
|
install(
|
2011-03-17 09:09:48 +00:00
|
|
|
DIRECTORY ${from}
|
|
|
|
DESTINATION ${to}
|
2013-11-16 18:18:21 +00:00
|
|
|
PATTERN ".git" EXCLUDE
|
2011-03-17 09:09:48 +00:00
|
|
|
PATTERN ".svn" EXCLUDE
|
|
|
|
PATTERN "*.pyc" EXCLUDE
|
|
|
|
PATTERN "*.pyo" EXCLUDE
|
|
|
|
PATTERN "*.orig" EXCLUDE
|
|
|
|
PATTERN "*.rej" EXCLUDE
|
|
|
|
PATTERN "__pycache__" EXCLUDE
|
|
|
|
PATTERN "__MACOSX" EXCLUDE
|
|
|
|
PATTERN ".DS_Store" EXCLUDE
|
2011-03-09 00:23:26 +00:00
|
|
|
)
|
2011-03-17 09:09:48 +00:00
|
|
|
endmacro()
|
2011-03-09 00:23:26 +00:00
|
|
|
|
2012-11-18 07:41:38 +00:00
|
|
|
set(OSX_APP_SOURCEDIR ${CMAKE_SOURCE_DIR}/release/darwin/blender.app)
|
2011-11-17 18:23:34 +00:00
|
|
|
|
|
|
|
# setup Info.plist
|
2014-11-11 20:44:26 +00:00
|
|
|
execute_process(COMMAND date "+%Y-%m-%d"
|
|
|
|
OUTPUT_VARIABLE BLENDER_DATE
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
2011-11-17 18:23:34 +00:00
|
|
|
|
|
|
|
set_target_properties(blender PROPERTIES
|
|
|
|
MACOSX_BUNDLE_INFO_PLIST ${OSX_APP_SOURCEDIR}/Contents/Info.plist
|
|
|
|
MACOSX_BUNDLE_SHORT_VERSION_STRING ${BLENDER_VERSION}
|
|
|
|
MACOSX_BUNDLE_LONG_VERSION_STRING "${BLENDER_VERSION} ${BLENDER_DATE}")
|
|
|
|
|
2014-11-16 19:47:45 +00:00
|
|
|
# Gather the date in finder-style
|
|
|
|
execute_process(COMMAND date "+%m/%d/%Y/%H:%M"
|
|
|
|
OUTPUT_VARIABLE SETFILE_DATE
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
|
|
|
|
# Give the bundle actual creation/modification date
|
|
|
|
execute_process(COMMAND SetFile -d ${SETFILE_DATE} -m ${SETFILE_DATE} ${EXECUTABLE_OUTPUT_PATH}/blender.app)
|
|
|
|
|
2014-11-12 19:54:48 +00:00
|
|
|
install(
|
|
|
|
TARGETS blender
|
|
|
|
DESTINATION "."
|
|
|
|
)
|
2011-11-17 18:23:34 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
# install release and app files
|
2011-07-01 13:10:49 +00:00
|
|
|
install(
|
|
|
|
FILES ${BLENDER_TEXT_FILES}
|
2014-11-12 19:54:48 +00:00
|
|
|
DESTINATION blender.app/Contents
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
2011-03-07 03:57:04 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
install(
|
2011-11-17 18:23:34 +00:00
|
|
|
FILES ${OSX_APP_SOURCEDIR}/Contents/PkgInfo
|
2014-11-12 19:54:48 +00:00
|
|
|
DESTINATION blender.app/Contents
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
2011-03-07 03:57:04 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
install_dir(
|
2011-11-17 18:23:34 +00:00
|
|
|
${OSX_APP_SOURCEDIR}/Contents/Resources
|
2014-11-12 19:54:48 +00:00
|
|
|
blender.app/Contents/
|
2011-03-17 09:09:48 +00:00
|
|
|
)
|
2011-03-07 03:57:04 +00:00
|
|
|
|
2014-02-18 22:38:48 +00:00
|
|
|
if(WITH_OPENMP AND CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS '3.4')
|
|
|
|
install(
|
|
|
|
FILES ${LIBDIR}/openmp/lib/libiomp5.dylib
|
2014-11-16 16:03:44 +00:00
|
|
|
DESTINATION blender.app/Contents/Resources/lib/
|
2014-02-18 22:38:48 +00:00
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2014-08-06 10:48:06 +00:00
|
|
|
if(WITH_LLVM AND NOT LLVM_STATIC)
|
|
|
|
install(
|
|
|
|
FILES ${LIBDIR}/llvm/lib/libLLVM-3.4.dylib
|
2014-11-12 19:54:48 +00:00
|
|
|
DESTINATION blender.app/Contents/MacOS
|
2014-08-06 10:48:06 +00:00
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
# python
|
2013-02-22 22:24:38 +00:00
|
|
|
if(WITH_PYTHON AND NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK)
|
2011-03-17 09:09:48 +00:00
|
|
|
# the python zip is first extract as part of the build process,
|
|
|
|
# and then later installed as part of make install. this is much
|
|
|
|
# quicker, and means we can easily exclude files on copy
|
2012-01-17 13:11:53 +00:00
|
|
|
# Not needed for PYTHON_MODULE or WEB_PLUGIN due uses Pyhon framework
|
2011-03-17 09:09:48 +00:00
|
|
|
add_custom_target(
|
|
|
|
extractpyzip
|
|
|
|
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/python)
|
2011-03-07 03:57:04 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
set(PYTHON_ZIP "python_${CMAKE_OSX_ARCHITECTURES}.zip")
|
2011-09-30 15:51:58 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
add_custom_command(
|
|
|
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/python
|
|
|
|
COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/python/
|
|
|
|
COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/python/
|
|
|
|
COMMAND unzip -q ${LIBDIR}/release/${PYTHON_ZIP} -d ${CMAKE_CURRENT_BINARY_DIR}/python/
|
|
|
|
DEPENDS ${LIBDIR}/release/${PYTHON_ZIP})
|
2011-09-30 15:51:58 +00:00
|
|
|
|
2011-03-17 09:09:48 +00:00
|
|
|
add_dependencies(blender extractpyzip)
|
|
|
|
|
|
|
|
# copy extracted python files
|
|
|
|
install_dir(
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/python
|
|
|
|
\${TARGETDIR_VER}
|
|
|
|
)
|
2014-03-04 19:31:07 +00:00
|
|
|
# copy site-packages files
|
|
|
|
install_dir(
|
|
|
|
${LIBDIR}/release/site-packages
|
2014-03-04 19:45:29 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/python/lib/python${PYTHON_VERSION}/site-packages
|
2014-03-04 19:31:07 +00:00
|
|
|
)
|
2011-03-07 03:57:04 +00:00
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
endif()
|
2012-09-24 19:25:32 +00:00
|
|
|
|
2011-09-26 05:26:04 +00:00
|
|
|
# install blenderplayer bundle - copy of blender.app above. re-using macros et al
|
2011-09-26 07:54:30 +00:00
|
|
|
# note we are using OSX Bundle as base and copying Blender dummy bundle on top of it
|
2011-09-26 05:26:04 +00:00
|
|
|
if(WITH_GAMEENGINE AND WITH_PLAYER)
|
2012-11-18 07:41:38 +00:00
|
|
|
set(OSX_APP_PLAYER_SOURCEDIR ${CMAKE_SOURCE_DIR}/release/darwin/blenderplayer.app)
|
2011-11-17 18:23:34 +00:00
|
|
|
set(PLAYER_SOURCEINFO ${OSX_APP_PLAYER_SOURCEDIR}/Contents/Info.plist)
|
2014-11-12 19:54:48 +00:00
|
|
|
set(PLAYER_TARGETDIR_VER blenderplayer.app/Contents/Resources/${BLENDER_VERSION})
|
2011-09-26 05:26:04 +00:00
|
|
|
|
|
|
|
|
2011-09-27 10:51:57 +00:00
|
|
|
# important to make a clean install each time else old scripts get loaded.
|
2011-09-26 05:26:04 +00:00
|
|
|
install(
|
|
|
|
CODE
|
2011-09-27 10:51:57 +00:00
|
|
|
"file(REMOVE_RECURSE ${PLAYER_TARGETDIR_VER})"
|
2011-09-26 05:26:04 +00:00
|
|
|
)
|
2011-09-27 10:51:57 +00:00
|
|
|
|
2014-11-16 19:47:45 +00:00
|
|
|
# Give the bundle actual creation/modification date
|
|
|
|
execute_process(COMMAND SetFile -d ${SETFILE_DATE} -m ${SETFILE_DATE} ${EXECUTABLE_OUTPUT_PATH}/blenderplayer.app)
|
|
|
|
|
2011-09-26 05:26:04 +00:00
|
|
|
install(
|
2011-11-17 18:23:34 +00:00
|
|
|
FILES ${OSX_APP_PLAYER_SOURCEDIR}/Contents/PkgInfo
|
2014-11-12 19:54:48 +00:00
|
|
|
DESTINATION blenderplayer.app/Contents
|
2011-09-26 05:26:04 +00:00
|
|
|
)
|
2011-09-30 15:51:58 +00:00
|
|
|
|
2011-09-26 05:26:04 +00:00
|
|
|
install_dir(
|
2011-11-17 18:23:34 +00:00
|
|
|
${OSX_APP_PLAYER_SOURCEDIR}/Contents/Resources
|
2014-11-12 19:54:48 +00:00
|
|
|
blenderplayer.app/Contents/
|
2011-09-26 05:26:04 +00:00
|
|
|
)
|
|
|
|
|
2014-11-16 19:47:45 +00:00
|
|
|
if(WITH_OPENMP AND CMAKE_C_COMPILER_ID MATCHES "Clang" AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS '3.4')
|
|
|
|
install(
|
|
|
|
FILES ${LIBDIR}/openmp/lib/libiomp5.dylib
|
|
|
|
DESTINATION blenderplayer.app/Contents/Resources/lib/
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
2011-09-26 05:26:04 +00:00
|
|
|
# python
|
2013-02-22 22:24:38 +00:00
|
|
|
if(WITH_PYTHON AND NOT WITH_PYTHON_FRAMEWORK)
|
2011-09-26 05:26:04 +00:00
|
|
|
add_custom_command(
|
|
|
|
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/python
|
|
|
|
COMMAND rm -rf ${CMAKE_CURRENT_BINARY_DIR}/python/
|
|
|
|
COMMAND mkdir ${CMAKE_CURRENT_BINARY_DIR}/python/
|
|
|
|
COMMAND unzip -q ${LIBDIR}/release/${PYTHON_ZIP} -d ${CMAKE_CURRENT_BINARY_DIR}/python/
|
|
|
|
DEPENDS ${LIBDIR}/release/${PYTHON_ZIP})
|
2011-09-30 15:51:58 +00:00
|
|
|
|
2011-09-26 05:26:04 +00:00
|
|
|
# copy extracted python files
|
|
|
|
install_dir(
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/python
|
2011-09-27 10:51:57 +00:00
|
|
|
\${PLAYER_TARGETDIR_VER}
|
2011-09-26 05:26:04 +00:00
|
|
|
)
|
|
|
|
endif()
|
2011-09-27 10:51:57 +00:00
|
|
|
|
2011-09-26 05:26:04 +00:00
|
|
|
endif()
|
2014-02-18 22:38:48 +00:00
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
endif()
|
2006-12-10 14:49:28 +00:00
|
|
|
|
2011-11-17 18:23:34 +00:00
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Generic Install, for all targets
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-07 15:53:40 +00:00
|
|
|
# install more files specified elsewhere
|
|
|
|
delayed_do_install(${TARGETDIR_VER})
|
|
|
|
|
2011-07-01 13:10:49 +00:00
|
|
|
unset(BLENDER_TEXT_FILES)
|
|
|
|
|
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Setup link libs
|
|
|
|
|
2010-12-08 08:43:06 +00:00
|
|
|
add_dependencies(blender makesdna)
|
2006-11-17 02:27:12 +00:00
|
|
|
|
2014-06-18 12:49:17 +00:00
|
|
|
setup_blender_sorted_libs()
|
2011-09-30 15:51:58 +00:00
|
|
|
|
2014-06-18 12:49:17 +00:00
|
|
|
target_link_libraries(blender ${BLENDER_SORTED_LIBS})
|
2010-12-08 08:43:06 +00:00
|
|
|
|
|
|
|
setup_liblinks(blender)
|
2014-08-07 14:01:20 +00:00
|
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# Setup launcher
|
|
|
|
|
|
|
|
if(WIN32 AND NOT WITH_PYTHON_MODULE)
|
|
|
|
set(LAUNCHER_SRC
|
|
|
|
creator_launch_win.c
|
|
|
|
../icons/winblender.rc
|
|
|
|
)
|
|
|
|
add_executable(blender-launcher ${LAUNCHER_SRC})
|
2014-08-29 17:05:14 +00:00
|
|
|
target_link_libraries(blender-launcher bf_intern_utfconv ${PLATFORM_LINKLIBS})
|
2014-08-07 14:01:20 +00:00
|
|
|
|
|
|
|
set_target_properties(blender PROPERTIES OUTPUT_NAME blender-app)
|
|
|
|
set_target_properties(blender-launcher PROPERTIES OUTPUT_NAME blender)
|
2014-11-11 14:47:22 +00:00
|
|
|
|
|
|
|
install(TARGETS blender blender-launcher
|
2014-11-15 19:51:18 +00:00
|
|
|
COMPONENT Blender
|
2014-11-11 14:47:22 +00:00
|
|
|
DESTINATION ".")
|
2014-11-15 19:51:18 +00:00
|
|
|
|
2014-11-14 09:49:01 +00:00
|
|
|
if(MSVC12_REDIST_DIR)
|
|
|
|
if(CMAKE_CL_64)
|
|
|
|
set(_WIN_PLATFORM x64)
|
|
|
|
else()
|
|
|
|
set(_WIN_PLATFORM x86)
|
|
|
|
endif()
|
|
|
|
install(
|
|
|
|
FILES ${MSVC12_REDIST_DIR}/${_WIN_PLATFORM}/Microsoft.VC120.CRT/msvcp120.dll
|
|
|
|
${MSVC12_REDIST_DIR}/${_WIN_PLATFORM}/Microsoft.VC120.CRT/msvcr120.dll
|
|
|
|
DESTINATION ".")
|
|
|
|
if(WITH_OPENMP)
|
|
|
|
install(
|
|
|
|
FILES ${MSVC12_REDIST_DIR}/${_WIN_PLATFORM}/Microsoft.VC120.OpenMP/vcomp120.dll
|
|
|
|
DESTINATION ".")
|
|
|
|
endif()
|
|
|
|
endif()
|
2014-08-07 14:01:20 +00:00
|
|
|
endif()
|