Compare commits
29 Commits
tmp-workbe
...
temp-enum-
Author | SHA1 | Date | |
---|---|---|---|
c6f85d7a8d | |||
25f44ab631 | |||
1d729aa2f7 | |||
b17561f8b2 | |||
dea72dbb9d | |||
fe2cde8390 | |||
74257d6ccb | |||
b4d47523c2 | |||
d728c22181 | |||
1c31d62951 | |||
e6ba5ec37b | |||
62bd391187 | |||
e736900e9a | |||
65548da002 | |||
3481d13104 | |||
23ef20855b | |||
ebc81c6de4 | |||
ffd8b05e20 | |||
1006e84faa | |||
dfb86671fe | |||
2fb43d04cb | |||
dad7371b41 | |||
eaa9feb9a0 | |||
d12eff1a88 | |||
6069ff45c7 | |||
f121713ece | |||
165100d8ac | |||
ffb5d1205e | |||
805540c713 |
@@ -61,17 +61,17 @@ ContinuationIndentWidth: 4
|
|||||||
# This tries to match Blender's style as much as possible. One
|
# This tries to match Blender's style as much as possible. One
|
||||||
BreakBeforeBraces: Custom
|
BreakBeforeBraces: Custom
|
||||||
BraceWrapping: {
|
BraceWrapping: {
|
||||||
AfterClass: 'false',
|
AfterClass: 'false'
|
||||||
AfterControlStatement: 'false',
|
AfterControlStatement: 'false'
|
||||||
AfterEnum : 'false',
|
AfterEnum : 'false'
|
||||||
AfterFunction : 'true',
|
AfterFunction : 'true'
|
||||||
AfterNamespace : 'false',
|
AfterNamespace : 'false'
|
||||||
AfterStruct : 'false',
|
AfterStruct : 'false'
|
||||||
AfterUnion : 'false',
|
AfterUnion : 'false'
|
||||||
BeforeCatch : 'true',
|
BeforeCatch : 'true'
|
||||||
BeforeElse : 'true',
|
BeforeElse : 'true'
|
||||||
IndentBraces : 'false',
|
IndentBraces : 'false'
|
||||||
AfterObjCDeclaration: 'true',
|
AfterObjCDeclaration: 'true'
|
||||||
}
|
}
|
||||||
|
|
||||||
# For switch statements, indent the cases.
|
# For switch statements, indent the cases.
|
||||||
@@ -162,7 +162,6 @@ PenaltyBreakString: 1000000
|
|||||||
ForEachMacros:
|
ForEachMacros:
|
||||||
- BEGIN_ANIMFILTER_SUBCHANNELS
|
- BEGIN_ANIMFILTER_SUBCHANNELS
|
||||||
- BKE_pbvh_vertex_iter_begin
|
- BKE_pbvh_vertex_iter_begin
|
||||||
- BKE_pbvh_face_iter_begin
|
|
||||||
- BLI_FOREACH_SPARSE_RANGE
|
- BLI_FOREACH_SPARSE_RANGE
|
||||||
- BLI_SMALLSTACK_ITER_BEGIN
|
- BLI_SMALLSTACK_ITER_BEGIN
|
||||||
- BMO_ITER
|
- BMO_ITER
|
||||||
@@ -206,7 +205,6 @@ ForEachMacros:
|
|||||||
- FOREACH_SCENE_COLLECTION_BEGIN
|
- FOREACH_SCENE_COLLECTION_BEGIN
|
||||||
- FOREACH_SCENE_OBJECT_BEGIN
|
- FOREACH_SCENE_OBJECT_BEGIN
|
||||||
- FOREACH_SELECTED_BASE_BEGIN
|
- FOREACH_SELECTED_BASE_BEGIN
|
||||||
- FOREACH_SELECTED_BEZT_BEGIN
|
|
||||||
- FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN
|
- FOREACH_SELECTED_EDITABLE_OBJECT_BEGIN
|
||||||
- FOREACH_SELECTED_OBJECT_BEGIN
|
- FOREACH_SELECTED_OBJECT_BEGIN
|
||||||
- FOREACH_TRANS_DATA_CONTAINER
|
- FOREACH_TRANS_DATA_CONTAINER
|
||||||
@@ -266,13 +264,10 @@ ForEachMacros:
|
|||||||
- SET_SLOT_PROBING_BEGIN
|
- SET_SLOT_PROBING_BEGIN
|
||||||
- MAP_SLOT_PROBING_BEGIN
|
- MAP_SLOT_PROBING_BEGIN
|
||||||
- VECTOR_SET_SLOT_PROBING_BEGIN
|
- VECTOR_SET_SLOT_PROBING_BEGIN
|
||||||
- WL_ARRAY_FOR_EACH
|
|
||||||
- FOREACH_SPECTRUM_CHANNEL
|
|
||||||
|
|
||||||
StatementMacros:
|
StatementMacros:
|
||||||
- PyObject_HEAD
|
- PyObject_HEAD
|
||||||
- PyObject_VAR_HEAD
|
- PyObject_VAR_HEAD
|
||||||
- ccl_gpu_kernel_postfix
|
|
||||||
|
|
||||||
MacroBlockBegin: "^OSL_CLOSURE_STRUCT_BEGIN$"
|
MacroBlockBegin: "^BSDF_CLOSURE_CLASS_BEGIN$"
|
||||||
MacroBlockEnd: "^OSL_CLOSURE_STRUCT_END$"
|
MacroBlockEnd: "^BSDF_CLOSURE_CLASS_END$"
|
||||||
|
16
.clang-tidy
16
.clang-tidy
@@ -1,8 +1,6 @@
|
|||||||
# The warnings below are disabled because they are too pedantic and not worth fixing.
|
# The warnings below are disabled because they are too pedantic and not worth fixing.
|
||||||
# Some of them will be enabled as part of the Clang-Tidy task, see T78535.
|
# Some of them will be enabled as part of the Clang-Tidy task, see T78535.
|
||||||
|
|
||||||
# NOTE: No comments in the list below is allowed. Clang-tidy will ignore items after comments in the lists flag list.
|
|
||||||
# This is because the comment is not a valid list item and it will stop parsing flags if a list item is a comment.
|
|
||||||
Checks: >
|
Checks: >
|
||||||
-*,
|
-*,
|
||||||
readability-*,
|
readability-*,
|
||||||
@@ -14,11 +12,10 @@ Checks: >
|
|||||||
-readability-avoid-const-params-in-decls,
|
-readability-avoid-const-params-in-decls,
|
||||||
-readability-simplify-boolean-expr,
|
-readability-simplify-boolean-expr,
|
||||||
-readability-make-member-function-const,
|
-readability-make-member-function-const,
|
||||||
-readability-suspicious-call-argument,
|
|
||||||
-readability-redundant-member-init,
|
|
||||||
-readability-misleading-indentation,
|
-readability-misleading-indentation,
|
||||||
|
|
||||||
-readability-use-anyofallof,
|
-readability-use-anyofallof,
|
||||||
-readability-identifier-length,
|
|
||||||
|
|
||||||
-readability-function-cognitive-complexity,
|
-readability-function-cognitive-complexity,
|
||||||
|
|
||||||
@@ -28,16 +25,12 @@ Checks: >
|
|||||||
-bugprone-branch-clone,
|
-bugprone-branch-clone,
|
||||||
-bugprone-macro-parentheses,
|
-bugprone-macro-parentheses,
|
||||||
-bugprone-reserved-identifier,
|
-bugprone-reserved-identifier,
|
||||||
-bugprone-easily-swappable-parameters,
|
|
||||||
-bugprone-implicit-widening-of-multiplication-result,
|
|
||||||
|
|
||||||
-bugprone-sizeof-expression,
|
-bugprone-sizeof-expression,
|
||||||
-bugprone-integer-division,
|
-bugprone-integer-division,
|
||||||
|
|
||||||
-bugprone-redundant-branch-condition,
|
-bugprone-redundant-branch-condition,
|
||||||
|
|
||||||
-bugprone-suspicious-include,
|
|
||||||
|
|
||||||
modernize-*,
|
modernize-*,
|
||||||
-modernize-use-auto,
|
-modernize-use-auto,
|
||||||
-modernize-use-trailing-return-type,
|
-modernize-use-trailing-return-type,
|
||||||
@@ -45,8 +38,9 @@ Checks: >
|
|||||||
-modernize-use-nodiscard,
|
-modernize-use-nodiscard,
|
||||||
-modernize-loop-convert,
|
-modernize-loop-convert,
|
||||||
-modernize-pass-by-value,
|
-modernize-pass-by-value,
|
||||||
-modernize-raw-string-literal,
|
# Cannot be enabled yet, because using raw string literals in tests breaks
|
||||||
-modernize-return-braced-init-list
|
# the windows compiler currently.
|
||||||
|
-modernize-raw-string-literal
|
||||||
|
|
||||||
CheckOptions:
|
CheckOptions:
|
||||||
- key: modernize-use-default-member-init.UseAssignment
|
- key: modernize-use-default-member-init.UseAssignment
|
||||||
|
@@ -34,15 +34,6 @@ indent_style = space
|
|||||||
indent_size = 2
|
indent_size = 2
|
||||||
max_line_length = 99
|
max_line_length = 99
|
||||||
|
|
||||||
# Tom's Obvious Minimal Language
|
|
||||||
[*.toml]
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 4
|
|
||||||
max_line_length = 120
|
|
||||||
|
|
||||||
# reStructuredText
|
# reStructuredText
|
||||||
[*.rst]
|
[*.rst]
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
@@ -51,12 +42,3 @@ insert_final_newline = true
|
|||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 3
|
indent_size = 3
|
||||||
max_line_length = 120
|
max_line_length = 120
|
||||||
|
|
||||||
# Makefile
|
|
||||||
[{Makefile,GNUmakefile}]
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
indent_style = tab
|
|
||||||
indent_size = 4
|
|
||||||
max_line_length = 120
|
|
@@ -1,41 +0,0 @@
|
|||||||
name: Bug Report
|
|
||||||
about: File a bug report
|
|
||||||
labels:
|
|
||||||
- bug
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
### Instructions
|
|
||||||
First time reporting? See [tips](https://wiki.blender.org/wiki/Process/Bug_Reports) and [walkthrough video](https://www.youtube.com/watch?v=JTD0OJq_rF4).
|
|
||||||
|
|
||||||
* Use **Help > Report a Bug** in Blender to fill system information and exact Blender version.
|
|
||||||
* Test [daily builds](https://builder.blender.org/) to verify if the issue is already fixed.
|
|
||||||
* Test [previous versions](https://download.blender.org/release/) to find an older working version.
|
|
||||||
* For feature requests, feedback, questions or build issues, see [communication channels](https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests).
|
|
||||||
* If there are multiple bugs, make multiple bug reports.
|
|
||||||
|
|
||||||
- type: textarea
|
|
||||||
id: body
|
|
||||||
attributes:
|
|
||||||
label: "Description"
|
|
||||||
value: |
|
|
||||||
**System Information**
|
|
||||||
Operating system:
|
|
||||||
Graphics card:
|
|
||||||
|
|
||||||
**Blender Version**
|
|
||||||
Broken: (example: 2.80, edbf15d3c044, master, 2018-11-28, as found on the splash screen)
|
|
||||||
Worked: (newest version of Blender that worked as expected)
|
|
||||||
|
|
||||||
**Short description of error**
|
|
||||||
|
|
||||||
**Exact steps for others to reproduce the error**
|
|
||||||
Based on the default startup or an attached .blend file (as simple as possible).
|
|
||||||
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
### Help the developers
|
|
||||||
|
|
||||||
Bug fixing is important, the developers will handle reports swiftly. For that reason, carefully provide exact steps and a **small and simple .blend file** to reproduce the problem. You do your half of the work, then we do our half!
|
|
@@ -1 +0,0 @@
|
|||||||
blank_issues_enabled: false
|
|
@@ -1,9 +0,0 @@
|
|||||||
name: Design
|
|
||||||
about: Create a design task (for developers only)
|
|
||||||
labels:
|
|
||||||
- design
|
|
||||||
body:
|
|
||||||
- type: textarea
|
|
||||||
id: body
|
|
||||||
attributes:
|
|
||||||
label: "Description"
|
|
@@ -1,9 +0,0 @@
|
|||||||
name: To Do
|
|
||||||
about: Create a to do task (for developers only)
|
|
||||||
labels:
|
|
||||||
- todo
|
|
||||||
body:
|
|
||||||
- type: textarea
|
|
||||||
id: body
|
|
||||||
attributes:
|
|
||||||
label: "Description"
|
|
@@ -1,20 +0,0 @@
|
|||||||
name: Pull Request
|
|
||||||
about: Contribute code to Blender
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
### Instructions
|
|
||||||
|
|
||||||
Guides to [contributing code](https://wiki.blender.org/index.php/Dev:Doc/Process/Contributing_Code) and effective [code review](https://wiki.blender.org/index.php/Dev:Doc/Tools/Code_Review).
|
|
||||||
|
|
||||||
By submitting code here, you agree that the code is (compatible with) GNU GPL v2 or later.
|
|
||||||
|
|
||||||
- type: textarea
|
|
||||||
id: body
|
|
||||||
attributes:
|
|
||||||
label: "Description"
|
|
||||||
value: |
|
|
||||||
Description of the problem that is addressed in the patch.
|
|
||||||
|
|
||||||
Description of the proposed solution and its implementation.
|
|
1176
CMakeLists.txt
1176
CMakeLists.txt
File diff suppressed because it is too large
Load Diff
199
GNUmakefile
199
GNUmakefile
@@ -1,4 +1,23 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# -*- mode: gnumakefile; tab-width: 4; indent-tabs-mode: t; -*-
|
||||||
|
# vim: tabstop=4
|
||||||
|
#
|
||||||
|
# ##### BEGIN GPL LICENSE BLOCK #####
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ##### END GPL LICENSE BLOCK #####
|
||||||
|
|
||||||
# This Makefile does an out-of-source CMake build in ../build_`OS`_`CPU`
|
# This Makefile does an out-of-source CMake build in ../build_`OS`_`CPU`
|
||||||
# eg:
|
# eg:
|
||||||
@@ -32,7 +51,7 @@ Other Convenience Targets
|
|||||||
* config: Run cmake configuration tool to set build options.
|
* config: Run cmake configuration tool to set build options.
|
||||||
* deps: Build library dependencies (intended only for platform maintainers).
|
* deps: Build library dependencies (intended only for platform maintainers).
|
||||||
|
|
||||||
The existence of locally build dependencies overrides the pre-built dependencies from subversion.
|
The existance of locally build dependancies overrides the pre-built dependencies from subversion.
|
||||||
These must be manually removed from '../lib/' to go back to using the pre-compiled libraries.
|
These must be manually removed from '../lib/' to go back to using the pre-compiled libraries.
|
||||||
|
|
||||||
Project Files
|
Project Files
|
||||||
@@ -44,6 +63,8 @@ Project Files
|
|||||||
|
|
||||||
Package Targets
|
Package Targets
|
||||||
|
|
||||||
|
* package_debian: Build a debian package.
|
||||||
|
* package_pacman: Build an arch linux pacman package.
|
||||||
* package_archive: Build an archive package.
|
* package_archive: Build an archive package.
|
||||||
|
|
||||||
Testing Targets
|
Testing Targets
|
||||||
@@ -51,25 +72,24 @@ Testing Targets
|
|||||||
|
|
||||||
* test:
|
* test:
|
||||||
Run automated tests with ctest.
|
Run automated tests with ctest.
|
||||||
|
* test_cmake:
|
||||||
|
Runs our own cmake file checker
|
||||||
|
which detects errors in the cmake file list definitions
|
||||||
|
* test_pep8:
|
||||||
|
Checks all python script are pep8
|
||||||
|
which are tagged to use the stricter formatting
|
||||||
|
* test_deprecated:
|
||||||
|
Checks for deprecation tags in our code which may need to be removed
|
||||||
|
|
||||||
Static Source Code Checking
|
Static Source Code Checking
|
||||||
Not associated with building Blender.
|
Not associated with building Blender.
|
||||||
|
|
||||||
* check_cppcheck: Run blender source through cppcheck (C & C++).
|
* check_cppcheck: Run blender source through cppcheck (C & C++).
|
||||||
* check_clang_array: Run blender source through clang array checking script (C & C++).
|
* check_clang_array: Run blender source through clang array checking script (C & C++).
|
||||||
* check_deprecated: Check if there is any deprecated code to remove.
|
|
||||||
* check_splint: Run blenders source through splint (C only).
|
* check_splint: Run blenders source through splint (C only).
|
||||||
* check_sparse: Run blenders source through sparse (C only).
|
* check_sparse: Run blenders source through sparse (C only).
|
||||||
* check_smatch: Run blenders source through smatch (C only).
|
* check_smatch: Run blenders source through smatch (C only).
|
||||||
* check_descriptions: Check for duplicate/invalid descriptions.
|
* check_descriptions: Check for duplicate/invalid descriptions.
|
||||||
* check_licenses: Check license headers follow the SPDX license specification,
|
|
||||||
using one of the accepted licenses in 'doc/license/SPDX-license-identifiers.txt'
|
|
||||||
Append with 'SHOW_HEADERS=1' to show all unique headers
|
|
||||||
which can be useful for spotting license irregularities.
|
|
||||||
* check_cmake: Runs our own cmake file checker which detects errors in the cmake file list definitions.
|
|
||||||
* check_pep8: Checks all Python script are pep8 which are tagged to use the stricter formatting.
|
|
||||||
* check_mypy: Checks all Python scripts using mypy,
|
|
||||||
see: source/tools/check_source/check_mypy_config.py scripts which are included.
|
|
||||||
|
|
||||||
Spell Checkers
|
Spell Checkers
|
||||||
This runs the spell checker from the developer tools repositor.
|
This runs the spell checker from the developer tools repositor.
|
||||||
@@ -120,7 +140,7 @@ Utilities
|
|||||||
Updates git and all submodules but not svn.
|
Updates git and all submodules but not svn.
|
||||||
|
|
||||||
* format:
|
* format:
|
||||||
Format source code using clang-format & autopep8 (uses PATHS if passed in). For example::
|
Format source code using clang (uses PATHS if passed in). For example::
|
||||||
|
|
||||||
make format PATHS="source/blender/blenlib source/blender/blenkernel"
|
make format PATHS="source/blender/blenlib source/blender/blenkernel"
|
||||||
|
|
||||||
@@ -130,7 +150,6 @@ Environment Variables
|
|||||||
* BUILD_DIR: Override default build path.
|
* BUILD_DIR: Override default build path.
|
||||||
* PYTHON: Use this for the Python command (used for checking tools).
|
* PYTHON: Use this for the Python command (used for checking tools).
|
||||||
* NPROCS: Number of processes to use building (auto-detect when omitted).
|
* NPROCS: Number of processes to use building (auto-detect when omitted).
|
||||||
* AUTOPEP8: Command used for Python code-formatting (used for the format target).
|
|
||||||
|
|
||||||
Documentation Targets
|
Documentation Targets
|
||||||
Not associated with building Blender.
|
Not associated with building Blender.
|
||||||
@@ -162,7 +181,6 @@ CPU:=$(shell uname -m)
|
|||||||
# Source and Build DIR's
|
# Source and Build DIR's
|
||||||
BLENDER_DIR:=$(shell pwd -P)
|
BLENDER_DIR:=$(shell pwd -P)
|
||||||
BUILD_TYPE:=Release
|
BUILD_TYPE:=Release
|
||||||
BLENDER_IS_PYTHON_MODULE:=
|
|
||||||
|
|
||||||
# CMake arguments, assigned to local variable to make it mutable.
|
# CMake arguments, assigned to local variable to make it mutable.
|
||||||
CMAKE_CONFIG_ARGS := $(BUILD_CMAKE_ARGS)
|
CMAKE_CONFIG_ARGS := $(BUILD_CMAKE_ARGS)
|
||||||
@@ -201,47 +219,17 @@ endif
|
|||||||
# in libraries, or python 2 for running make update to get it.
|
# in libraries, or python 2 for running make update to get it.
|
||||||
ifeq ($(OS_NCASE),darwin)
|
ifeq ($(OS_NCASE),darwin)
|
||||||
ifeq (, $(shell command -v $(PYTHON)))
|
ifeq (, $(shell command -v $(PYTHON)))
|
||||||
PYTHON:=$(DEPS_INSTALL_DIR)/python/bin/python3.10
|
PYTHON:=$(DEPS_INSTALL_DIR)/python/bin/python3.7m
|
||||||
ifeq (, $(shell command -v $(PYTHON)))
|
ifeq (, $(shell command -v $(PYTHON)))
|
||||||
PYTHON:=python
|
PYTHON:=python
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Set the LIBDIR, an empty string when not found.
|
|
||||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_${CPU})
|
|
||||||
ifeq (, $(LIBDIR))
|
|
||||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE}_${CPU}_glibc_228)
|
|
||||||
endif
|
|
||||||
ifeq (, $(LIBDIR))
|
|
||||||
LIBDIR:=$(wildcard ../lib/${OS_NCASE})
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Use the autopep8 module in ../lib/ (which can be executed via Python directly).
|
|
||||||
# Otherwise the "autopep8" command can be used.
|
|
||||||
ifndef AUTOPEP8
|
|
||||||
ifneq (, $(LIBDIR))
|
|
||||||
AUTOPEP8:=$(wildcard $(LIBDIR)/python/lib/python3.10/site-packages/autopep8.py)
|
|
||||||
endif
|
|
||||||
ifeq (, $(AUTOPEP8))
|
|
||||||
AUTOPEP8:=autopep8
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Additional targets for the build configuration
|
# additional targets for the build configuration
|
||||||
|
|
||||||
# NOTE: These targets can be combined and are applied in reverse order listed here.
|
# support 'make debug'
|
||||||
# So it's important that `bpy` comes before `release` (for example)
|
|
||||||
# `make bpy release` first loads `release` configuration, then `bpy`.
|
|
||||||
# This is important as `bpy` will turn off some settings enabled by release.
|
|
||||||
|
|
||||||
ifneq "$(findstring bpy, $(MAKECMDGOALS))" ""
|
|
||||||
BUILD_DIR:=$(BUILD_DIR)_bpy
|
|
||||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/bpy_module.cmake" $(CMAKE_CONFIG_ARGS)
|
|
||||||
BLENDER_IS_PYTHON_MODULE:=1
|
|
||||||
endif
|
|
||||||
ifneq "$(findstring debug, $(MAKECMDGOALS))" ""
|
ifneq "$(findstring debug, $(MAKECMDGOALS))" ""
|
||||||
BUILD_DIR:=$(BUILD_DIR)_debug
|
BUILD_DIR:=$(BUILD_DIR)_debug
|
||||||
BUILD_TYPE:=Debug
|
BUILD_TYPE:=Debug
|
||||||
@@ -266,6 +254,10 @@ ifneq "$(findstring headless, $(MAKECMDGOALS))" ""
|
|||||||
BUILD_DIR:=$(BUILD_DIR)_headless
|
BUILD_DIR:=$(BUILD_DIR)_headless
|
||||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_headless.cmake" $(CMAKE_CONFIG_ARGS)
|
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_headless.cmake" $(CMAKE_CONFIG_ARGS)
|
||||||
endif
|
endif
|
||||||
|
ifneq "$(findstring bpy, $(MAKECMDGOALS))" ""
|
||||||
|
BUILD_DIR:=$(BUILD_DIR)_bpy
|
||||||
|
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/bpy_module.cmake" $(CMAKE_CONFIG_ARGS)
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq "$(findstring developer, $(MAKECMDGOALS))" ""
|
ifneq "$(findstring developer, $(MAKECMDGOALS))" ""
|
||||||
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_developer.cmake" $(CMAKE_CONFIG_ARGS)
|
CMAKE_CONFIG_ARGS:=-C"$(BLENDER_DIR)/build_files/cmake/config/blender_developer.cmake" $(CMAKE_CONFIG_ARGS)
|
||||||
@@ -303,10 +295,8 @@ endif
|
|||||||
# use the default build path can still use utility helpers.
|
# use the default build path can still use utility helpers.
|
||||||
ifeq ($(OS), Darwin)
|
ifeq ($(OS), Darwin)
|
||||||
BLENDER_BIN?="$(BUILD_DIR)/bin/Blender.app/Contents/MacOS/Blender"
|
BLENDER_BIN?="$(BUILD_DIR)/bin/Blender.app/Contents/MacOS/Blender"
|
||||||
BLENDER_BIN_DIR?="$(BUILD_DIR)/bin/Blender.app/Contents/MacOS/Blender"
|
|
||||||
else
|
else
|
||||||
BLENDER_BIN?="$(BUILD_DIR)/bin/blender"
|
BLENDER_BIN?="$(BUILD_DIR)/bin/blender"
|
||||||
BLENDER_BIN_DIR?="$(BUILD_DIR)/bin"
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
@@ -338,7 +328,7 @@ CMAKE_CONFIG = cmake $(CMAKE_CONFIG_ARGS) \
|
|||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Tool for 'make config'
|
# Tool for 'make config'
|
||||||
|
|
||||||
# X11 specific.
|
# X11 spesific
|
||||||
ifdef DISPLAY
|
ifdef DISPLAY
|
||||||
CMAKE_CONFIG_TOOL = cmake-gui
|
CMAKE_CONFIG_TOOL = cmake-gui
|
||||||
else
|
else
|
||||||
@@ -363,12 +353,8 @@ all: .FORCE
|
|||||||
@echo Building Blender ...
|
@echo Building Blender ...
|
||||||
$(BUILD_COMMAND) -C "$(BUILD_DIR)" -j $(NPROCS) install
|
$(BUILD_COMMAND) -C "$(BUILD_DIR)" -j $(NPROCS) install
|
||||||
@echo
|
@echo
|
||||||
@echo Edit build configuration with: \"$(BUILD_DIR)/CMakeCache.txt\" run make again to rebuild.
|
@echo edit build configuration with: "$(BUILD_DIR)/CMakeCache.txt" run make again to rebuild.
|
||||||
@if test -z "$(BLENDER_IS_PYTHON_MODULE)"; then \
|
@echo Blender successfully built, run from: $(BLENDER_BIN)
|
||||||
echo Blender successfully built, run from: $(BLENDER_BIN); \
|
|
||||||
else \
|
|
||||||
echo Blender successfully built as a Python module, \"bpy\" can be imported from: $(BLENDER_BIN_DIR); \
|
|
||||||
fi
|
|
||||||
@echo
|
@echo
|
||||||
|
|
||||||
debug: all
|
debug: all
|
||||||
@@ -419,6 +405,11 @@ help: .FORCE
|
|||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Packages
|
# Packages
|
||||||
#
|
#
|
||||||
|
package_debian: .FORCE
|
||||||
|
cd build_files/package_spec ; DEB_BUILD_OPTIONS="parallel=$(NPROCS)" sh ./build_debian.sh
|
||||||
|
|
||||||
|
package_pacman: .FORCE
|
||||||
|
cd build_files/package_spec/pacman ; MAKEFLAGS="-j$(NPROCS)" makepkg
|
||||||
|
|
||||||
package_archive: .FORCE
|
package_archive: .FORCE
|
||||||
make -C "$(BUILD_DIR)" -s package_archive
|
make -C "$(BUILD_DIR)" -s package_archive
|
||||||
@@ -429,7 +420,21 @@ package_archive: .FORCE
|
|||||||
# Tests
|
# Tests
|
||||||
#
|
#
|
||||||
test: .FORCE
|
test: .FORCE
|
||||||
@$(PYTHON) ./build_files/utils/make_test.py "$(BUILD_DIR)"
|
$(PYTHON) ./build_files/utils/make_test.py "$(BUILD_DIR)"
|
||||||
|
|
||||||
|
# run pep8 check check on scripts we distribute.
|
||||||
|
test_pep8: .FORCE
|
||||||
|
$(PYTHON) tests/python/pep8.py > test_pep8.log 2>&1
|
||||||
|
@echo "written: test_pep8.log"
|
||||||
|
|
||||||
|
# run some checks on our cmakefiles.
|
||||||
|
test_cmake: .FORCE
|
||||||
|
$(PYTHON) build_files/cmake/cmake_consistency_check.py > test_cmake_consistency.log 2>&1
|
||||||
|
@echo "written: test_cmake_consistency.log"
|
||||||
|
|
||||||
|
# run deprecation tests, see if we have anything to remove.
|
||||||
|
test_deprecated: .FORCE
|
||||||
|
$(PYTHON) tests/check_deprecated.py
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
@@ -451,44 +456,44 @@ project_eclipse: .FORCE
|
|||||||
#
|
#
|
||||||
|
|
||||||
check_cppcheck: .FORCE
|
check_cppcheck: .FORCE
|
||||||
@$(CMAKE_CONFIG)
|
$(CMAKE_CONFIG)
|
||||||
@cd "$(BUILD_DIR)" ; \
|
cd "$(BUILD_DIR)" ; \
|
||||||
$(PYTHON) \
|
$(PYTHON) \
|
||||||
"$(BLENDER_DIR)/build_files/cmake/cmake_static_check_cppcheck.py" 2> \
|
"$(BLENDER_DIR)/build_files/cmake/cmake_static_check_cppcheck.py" 2> \
|
||||||
"$(BLENDER_DIR)/check_cppcheck.txt"
|
"$(BLENDER_DIR)/check_cppcheck.txt"
|
||||||
@echo "written: check_cppcheck.txt"
|
@echo "written: check_cppcheck.txt"
|
||||||
|
|
||||||
check_clang_array: .FORCE
|
check_clang_array: .FORCE
|
||||||
@$(CMAKE_CONFIG)
|
$(CMAKE_CONFIG)
|
||||||
@cd "$(BUILD_DIR)" ; \
|
cd "$(BUILD_DIR)" ; \
|
||||||
$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_static_check_clang_array.py"
|
$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_static_check_clang_array.py"
|
||||||
|
|
||||||
check_splint: .FORCE
|
check_splint: .FORCE
|
||||||
@$(CMAKE_CONFIG)
|
$(CMAKE_CONFIG)
|
||||||
@cd "$(BUILD_DIR)" ; \
|
cd "$(BUILD_DIR)" ; \
|
||||||
$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_static_check_splint.py"
|
$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_static_check_splint.py"
|
||||||
|
|
||||||
check_sparse: .FORCE
|
check_sparse: .FORCE
|
||||||
@$(CMAKE_CONFIG)
|
$(CMAKE_CONFIG)
|
||||||
@cd "$(BUILD_DIR)" ; \
|
cd "$(BUILD_DIR)" ; \
|
||||||
$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_static_check_sparse.py"
|
$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_static_check_sparse.py"
|
||||||
|
|
||||||
check_smatch: .FORCE
|
check_smatch: .FORCE
|
||||||
@$(CMAKE_CONFIG)
|
$(CMAKE_CONFIG)
|
||||||
@cd "$(BUILD_DIR)" ; \
|
cd "$(BUILD_DIR)" ; \
|
||||||
$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_static_check_smatch.py"
|
$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_static_check_smatch.py"
|
||||||
|
|
||||||
check_mypy: .FORCE
|
check_mypy: .FORCE
|
||||||
@$(PYTHON) "$(BLENDER_DIR)/source/tools/check_source/check_mypy.py"
|
$(PYTHON) "$(BLENDER_DIR)/source/tools/check_source/check_mypy.py"
|
||||||
|
|
||||||
check_spelling_py: .FORCE
|
check_spelling_py: .FORCE
|
||||||
@cd "$(BUILD_DIR)" ; \
|
cd "$(BUILD_DIR)" ; \
|
||||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||||
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
||||||
"$(BLENDER_DIR)/release/scripts"
|
"$(BLENDER_DIR)/release/scripts"
|
||||||
|
|
||||||
check_spelling_c: .FORCE
|
check_spelling_c: .FORCE
|
||||||
@cd "$(BUILD_DIR)" ; \
|
cd "$(BUILD_DIR)" ; \
|
||||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||||
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
||||||
--cache-file=$(CHECK_SPELLING_CACHE) \
|
--cache-file=$(CHECK_SPELLING_CACHE) \
|
||||||
@@ -498,71 +503,53 @@ check_spelling_c: .FORCE
|
|||||||
"$(BLENDER_DIR)/intern/ghost" \
|
"$(BLENDER_DIR)/intern/ghost" \
|
||||||
|
|
||||||
check_spelling_osl: .FORCE
|
check_spelling_osl: .FORCE
|
||||||
@cd "$(BUILD_DIR)" ; \
|
cd "$(BUILD_DIR)" ;\
|
||||||
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
PYTHONIOENCODING=utf_8 $(PYTHON) \
|
||||||
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
"$(BLENDER_DIR)/source/tools/check_source/check_spelling.py" \
|
||||||
--cache-file=$(CHECK_SPELLING_CACHE) \
|
--cache-file=$(CHECK_SPELLING_CACHE) \
|
||||||
"$(BLENDER_DIR)/intern/cycles/kernel/shaders"
|
"$(BLENDER_DIR)/intern/cycles/kernel/shaders"
|
||||||
|
|
||||||
check_descriptions: .FORCE
|
check_descriptions: .FORCE
|
||||||
@$(BLENDER_BIN) --background -noaudio --factory-startup --python \
|
$(BLENDER_BIN) --background -noaudio --factory-startup --python \
|
||||||
"$(BLENDER_DIR)/source/tools/check_source/check_descriptions.py"
|
"$(BLENDER_DIR)/source/tools/check_source/check_descriptions.py"
|
||||||
|
|
||||||
check_deprecated: .FORCE
|
|
||||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
|
||||||
source/tools/check_source/check_deprecated.py
|
|
||||||
|
|
||||||
check_licenses: .FORCE
|
|
||||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
|
||||||
"$(BLENDER_DIR)/source/tools/check_source/check_licenses.py" \
|
|
||||||
"--show-headers=$(SHOW_HEADERS)"
|
|
||||||
|
|
||||||
check_pep8: .FORCE
|
|
||||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
|
||||||
tests/python/pep8.py
|
|
||||||
|
|
||||||
check_cmake: .FORCE
|
|
||||||
@PYTHONIOENCODING=utf_8 $(PYTHON) \
|
|
||||||
source/tools/check_source/check_cmake_consistency.py
|
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Utilities
|
# Utilities
|
||||||
#
|
#
|
||||||
|
|
||||||
source_archive: .FORCE
|
source_archive: .FORCE
|
||||||
@$(PYTHON) ./build_files/utils/make_source_archive.py
|
python3 ./build_files/utils/make_source_archive.py
|
||||||
|
|
||||||
source_archive_complete: .FORCE
|
source_archive_complete: .FORCE
|
||||||
@cmake \
|
cmake \
|
||||||
-S "$(BLENDER_DIR)/build_files/build_environment" -B"$(BUILD_DIR)/source_archive" \
|
-S "$(BLENDER_DIR)/build_files/build_environment" -B"$(BUILD_DIR)/source_archive" \
|
||||||
-DCMAKE_BUILD_TYPE_INIT:STRING=$(BUILD_TYPE) -DPACKAGE_USE_UPSTREAM_SOURCES=OFF
|
-DCMAKE_BUILD_TYPE_INIT:STRING=$(BUILD_TYPE) -DPACKAGE_USE_UPSTREAM_SOURCES=OFF
|
||||||
# This assumes CMake is still using a default `PACKAGE_DIR` variable:
|
# This assumes CMake is still using a default `PACKAGE_DIR` variable:
|
||||||
@$(PYTHON) ./build_files/utils/make_source_archive.py --include-packages "$(BUILD_DIR)/source_archive/packages"
|
python3 ./build_files/utils/make_source_archive.py --include-packages "$(BUILD_DIR)/source_archive/packages"
|
||||||
|
|
||||||
|
|
||||||
INKSCAPE_BIN?="inkscape"
|
INKSCAPE_BIN?="inkscape"
|
||||||
icons: .FORCE
|
icons: .FORCE
|
||||||
@BLENDER_BIN=$(BLENDER_BIN) INKSCAPE_BIN=$(INKSCAPE_BIN) \
|
BLENDER_BIN=$(BLENDER_BIN) INKSCAPE_BIN=$(INKSCAPE_BIN) \
|
||||||
"$(BLENDER_DIR)/release/datafiles/blender_icons_update.py"
|
"$(BLENDER_DIR)/release/datafiles/blender_icons_update.py"
|
||||||
@INKSCAPE_BIN=$(INKSCAPE_BIN) \
|
INKSCAPE_BIN=$(INKSCAPE_BIN) \
|
||||||
"$(BLENDER_DIR)/release/datafiles/prvicons_update.py"
|
"$(BLENDER_DIR)/release/datafiles/prvicons_update.py"
|
||||||
@INKSCAPE_BIN=$(INKSCAPE_BIN) \
|
INKSCAPE_BIN=$(INKSCAPE_BIN) \
|
||||||
"$(BLENDER_DIR)/release/datafiles/alert_icons_update.py"
|
"$(BLENDER_DIR)/release/datafiles/alert_icons_update.py"
|
||||||
|
|
||||||
icons_geom: .FORCE
|
icons_geom: .FORCE
|
||||||
@BLENDER_BIN=$(BLENDER_BIN) \
|
BLENDER_BIN=$(BLENDER_BIN) \
|
||||||
"$(BLENDER_DIR)/release/datafiles/blender_icons_geom_update.py"
|
"$(BLENDER_DIR)/release/datafiles/blender_icons_geom_update.py"
|
||||||
|
|
||||||
update: .FORCE
|
update: .FORCE
|
||||||
@$(PYTHON) ./build_files/utils/make_update.py
|
$(PYTHON) ./build_files/utils/make_update.py
|
||||||
|
|
||||||
update_code: .FORCE
|
update_code: .FORCE
|
||||||
@$(PYTHON) ./build_files/utils/make_update.py --no-libraries
|
$(PYTHON) ./build_files/utils/make_update.py --no-libraries
|
||||||
|
|
||||||
format: .FORCE
|
format: .FORCE
|
||||||
@PATH="${LIBDIR}/llvm/bin/:$(PATH)" $(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
PATH="../lib/${OS_NCASE}_${CPU}/llvm/bin/:../lib/${OS_NCASE}_centos7_${CPU}/llvm/bin/:../lib/${OS_NCASE}/llvm/bin/:$(PATH)" \
|
||||||
@$(PYTHON) source/tools/utils_maintenance/autopep8_format_paths.py --autopep8-command="$(AUTOPEP8)" $(PATHS)
|
$(PYTHON) source/tools/utils_maintenance/clang_format_paths.py $(PATHS)
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
@@ -571,25 +558,25 @@ format: .FORCE
|
|||||||
|
|
||||||
# Simple version of ./doc/python_api/sphinx_doc_gen.sh with no PDF generation.
|
# Simple version of ./doc/python_api/sphinx_doc_gen.sh with no PDF generation.
|
||||||
doc_py: .FORCE
|
doc_py: .FORCE
|
||||||
@ASAN_OPTIONS=halt_on_error=0:${ASAN_OPTIONS} \
|
ASAN_OPTIONS=halt_on_error=0:${ASAN_OPTIONS} \
|
||||||
$(BLENDER_BIN) \
|
$(BLENDER_BIN) \
|
||||||
--background -noaudio --factory-startup \
|
--background -noaudio --factory-startup \
|
||||||
--python doc/python_api/sphinx_doc_gen.py
|
--python doc/python_api/sphinx_doc_gen.py
|
||||||
@sphinx-build -b html -j $(NPROCS) doc/python_api/sphinx-in doc/python_api/sphinx-out
|
sphinx-build -b html -j $(NPROCS) doc/python_api/sphinx-in doc/python_api/sphinx-out
|
||||||
@echo "docs written into: '$(BLENDER_DIR)/doc/python_api/sphinx-out/index.html'"
|
@echo "docs written into: '$(BLENDER_DIR)/doc/python_api/sphinx-out/index.html'"
|
||||||
|
|
||||||
doc_doxy: .FORCE
|
doc_doxy: .FORCE
|
||||||
@cd doc/doxygen; doxygen Doxyfile
|
cd doc/doxygen; doxygen Doxyfile
|
||||||
@echo "docs written into: '$(BLENDER_DIR)/doc/doxygen/html/index.html'"
|
@echo "docs written into: '$(BLENDER_DIR)/doc/doxygen/html/index.html'"
|
||||||
|
|
||||||
doc_dna: .FORCE
|
doc_dna: .FORCE
|
||||||
@$(BLENDER_BIN) \
|
$(BLENDER_BIN) \
|
||||||
--background -noaudio --factory-startup \
|
--background -noaudio --factory-startup \
|
||||||
--python doc/blender_file_format/BlendFileDnaExporter_25.py
|
--python doc/blender_file_format/BlendFileDnaExporter_25.py
|
||||||
@echo "docs written into: '$(BLENDER_DIR)/doc/blender_file_format/dna.html'"
|
@echo "docs written into: '$(BLENDER_DIR)/doc/blender_file_format/dna.html'"
|
||||||
|
|
||||||
doc_man: .FORCE
|
doc_man: .FORCE
|
||||||
@$(PYTHON) doc/manpage/blender.1.py --blender="$(BLENDER_BIN)" --output=blender.1 --verbose
|
$(PYTHON) doc/manpage/blender.1.py $(BLENDER_BIN) blender.1
|
||||||
|
|
||||||
help_features: .FORCE
|
help_features: .FORCE
|
||||||
@$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_print_build_options.py" $(BLENDER_DIR)"/CMakeLists.txt"
|
@$(PYTHON) "$(BLENDER_DIR)/build_files/cmake/cmake_print_build_options.py" $(BLENDER_DIR)"/CMakeLists.txt"
|
||||||
|
38
README.md
38
README.md
@@ -1,38 +0,0 @@
|
|||||||
<!--
|
|
||||||
Keep this document short & concise,
|
|
||||||
linking to external resources instead of including content in-line.
|
|
||||||
See 'release/text/readme.html' for the end user read-me.
|
|
||||||
-->
|
|
||||||
|
|
||||||
Blender
|
|
||||||
=======
|
|
||||||
|
|
||||||
Blender is the free and open source 3D creation suite.
|
|
||||||
It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing,
|
|
||||||
motion tracking and video editing.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
Project Pages
|
|
||||||
-------------
|
|
||||||
|
|
||||||
- [Main Website](http://www.blender.org)
|
|
||||||
- [Reference Manual](https://docs.blender.org/manual/en/latest/index.html)
|
|
||||||
- [User Community](https://www.blender.org/community/)
|
|
||||||
|
|
||||||
Development
|
|
||||||
-----------
|
|
||||||
|
|
||||||
- [Build Instructions](https://wiki.blender.org/wiki/Building_Blender)
|
|
||||||
- [Code Review & Bug Tracker](https://developer.blender.org)
|
|
||||||
- [Developer Forum](https://devtalk.blender.org)
|
|
||||||
- [Developer Documentation](https://wiki.blender.org)
|
|
||||||
|
|
||||||
|
|
||||||
License
|
|
||||||
-------
|
|
||||||
|
|
||||||
Blender as a whole is licensed under the GNU General Public License, Version 3.
|
|
||||||
Individual files may have a different, but compatible license.
|
|
||||||
|
|
||||||
See [blender.org/about/license](https://www.blender.org/about/license) for details.
|
|
@@ -1,6 +1,22 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
##################################################################################################
|
####################################################################################################
|
||||||
#
|
#
|
||||||
# This is a build system used by platform maintainers to build library dependencies on
|
# This is a build system used by platform maintainers to build library dependencies on
|
||||||
# Windows, macOS and Linux.
|
# Windows, macOS and Linux.
|
||||||
@@ -22,29 +38,23 @@
|
|||||||
# Install compiler cmake autoconf automake libtool yasm tcl
|
# Install compiler cmake autoconf automake libtool yasm tcl
|
||||||
# Run "make deps" from main Blender directory
|
# Run "make deps" from main Blender directory
|
||||||
#
|
#
|
||||||
##################################################################################################
|
####################################################################################################
|
||||||
|
|
||||||
project("BlenderDependencies")
|
project("BlenderDependencies")
|
||||||
cmake_minimum_required(VERSION 3.5)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
if(POLICY CMP0135)
|
|
||||||
cmake_policy(SET CMP0135 NEW) # CMake 3.24+ Set the date/time for extracted files to time of extraction
|
|
||||||
endif()
|
|
||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
include(cmake/check_software.cmake)
|
include(cmake/check_software.cmake)
|
||||||
include(cmake/options.cmake)
|
include(cmake/options.cmake)
|
||||||
# `versions.cmake` needs to be included after `options.cmake`
|
|
||||||
# due to the `BLENDER_PLATFORM_ARM` variable being needed.
|
|
||||||
include(cmake/versions.cmake)
|
include(cmake/versions.cmake)
|
||||||
include(cmake/boost_build_options.cmake)
|
|
||||||
include(cmake/download.cmake)
|
include(cmake/download.cmake)
|
||||||
include(cmake/macros.cmake)
|
|
||||||
|
|
||||||
if(ENABLE_MINGW64)
|
if(ENABLE_MINGW64)
|
||||||
include(cmake/setup_mingw64.cmake)
|
include(cmake/setup_mingw64.cmake)
|
||||||
else()
|
else()
|
||||||
set(mingw_LIBDIR ${LIBDIR})
|
set(mingw_LIBDIR ${LIBDIR})
|
||||||
endif()
|
endif()
|
||||||
include(cmake/ssl.cmake)
|
|
||||||
include(cmake/zlib.cmake)
|
include(cmake/zlib.cmake)
|
||||||
include(cmake/zstd.cmake)
|
include(cmake/zstd.cmake)
|
||||||
include(cmake/openal.cmake)
|
include(cmake/openal.cmake)
|
||||||
@@ -52,32 +62,36 @@ include(cmake/png.cmake)
|
|||||||
include(cmake/jpeg.cmake)
|
include(cmake/jpeg.cmake)
|
||||||
include(cmake/blosc.cmake)
|
include(cmake/blosc.cmake)
|
||||||
include(cmake/pthreads.cmake)
|
include(cmake/pthreads.cmake)
|
||||||
include(cmake/imath.cmake)
|
|
||||||
include(cmake/openexr.cmake)
|
include(cmake/openexr.cmake)
|
||||||
include(cmake/brotli.cmake)
|
|
||||||
include(cmake/freetype.cmake)
|
include(cmake/freetype.cmake)
|
||||||
include(cmake/epoxy.cmake)
|
|
||||||
include(cmake/freeglut.cmake)
|
include(cmake/freeglut.cmake)
|
||||||
|
include(cmake/glew.cmake)
|
||||||
include(cmake/alembic.cmake)
|
include(cmake/alembic.cmake)
|
||||||
|
include(cmake/glfw.cmake)
|
||||||
|
include(cmake/clew.cmake)
|
||||||
|
include(cmake/cuew.cmake)
|
||||||
include(cmake/opensubdiv.cmake)
|
include(cmake/opensubdiv.cmake)
|
||||||
include(cmake/sdl.cmake)
|
include(cmake/sdl.cmake)
|
||||||
include(cmake/opencollada.cmake)
|
include(cmake/opencollada.cmake)
|
||||||
|
include(cmake/llvm.cmake)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
include(cmake/openmp.cmake)
|
include(cmake/openmp.cmake)
|
||||||
endif()
|
endif()
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
include(cmake/nasm.cmake)
|
include(cmake/nasm.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
include(cmake/openimageio.cmake)
|
||||||
include(cmake/tiff.cmake)
|
include(cmake/tiff.cmake)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
include(cmake/flexbison.cmake)
|
include(cmake/flexbison.cmake)
|
||||||
elseif(UNIX AND NOT APPLE)
|
elseif(UNIX AND NOT APPLE)
|
||||||
include(cmake/flex.cmake)
|
include(cmake/flex.cmake)
|
||||||
endif()
|
endif()
|
||||||
include(cmake/tbb.cmake)
|
|
||||||
include(cmake/python.cmake)
|
|
||||||
include(cmake/llvm.cmake)
|
|
||||||
include(cmake/osl.cmake)
|
include(cmake/osl.cmake)
|
||||||
|
include(cmake/tbb.cmake)
|
||||||
|
include(cmake/openvdb.cmake)
|
||||||
|
include(cmake/nanovdb.cmake)
|
||||||
|
include(cmake/python.cmake)
|
||||||
option(USE_PIP_NUMPY "Install NumPy using pip wheel instead of building from source" OFF)
|
option(USE_PIP_NUMPY "Install NumPy using pip wheel instead of building from source" OFF)
|
||||||
if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
if(APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64"))
|
||||||
set(USE_PIP_NUMPY ON)
|
set(USE_PIP_NUMPY ON)
|
||||||
@@ -86,52 +100,30 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
include(cmake/python_site_packages.cmake)
|
include(cmake/python_site_packages.cmake)
|
||||||
include(cmake/package_python.cmake)
|
include(cmake/package_python.cmake)
|
||||||
include(cmake/openimageio.cmake)
|
|
||||||
include(cmake/usd.cmake)
|
include(cmake/usd.cmake)
|
||||||
include(cmake/materialx.cmake)
|
|
||||||
include(cmake/openvdb.cmake)
|
|
||||||
include(cmake/potrace.cmake)
|
include(cmake/potrace.cmake)
|
||||||
include(cmake/haru.cmake)
|
include(cmake/haru.cmake)
|
||||||
# Boost needs to be included after `python.cmake` due to the PYTHON_BINARY variable being needed.
|
# Boost needs to be included after python.cmake due to the PYTHON_BINARY variable being needed.
|
||||||
include(cmake/boost.cmake)
|
include(cmake/boost.cmake)
|
||||||
include(cmake/pugixml.cmake)
|
include(cmake/pugixml.cmake)
|
||||||
include(cmake/ispc.cmake)
|
include(cmake/ispc.cmake)
|
||||||
include(cmake/openimagedenoise.cmake)
|
include(cmake/openimagedenoise.cmake)
|
||||||
include(cmake/embree.cmake)
|
include(cmake/embree.cmake)
|
||||||
include(cmake/openpgl.cmake)
|
|
||||||
include(cmake/fmt.cmake)
|
|
||||||
include(cmake/robinmap.cmake)
|
|
||||||
include(cmake/xml2.cmake)
|
|
||||||
|
|
||||||
include(cmake/fribidi.cmake)
|
|
||||||
include(cmake/harfbuzz.cmake)
|
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
include(cmake/xr_openxr.cmake)
|
include(cmake/xr_openxr.cmake)
|
||||||
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
|
||||||
include(cmake/dpcpp.cmake)
|
|
||||||
include(cmake/dpcpp_deps.cmake)
|
|
||||||
endif()
|
|
||||||
if(NOT WIN32)
|
|
||||||
include(cmake/igc.cmake)
|
|
||||||
include(cmake/gmmlib.cmake)
|
|
||||||
include(cmake/ocloc.cmake)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# OpenColorIO and dependencies.
|
# OpenColorIO and dependencies.
|
||||||
include(cmake/expat.cmake)
|
include(cmake/expat.cmake)
|
||||||
include(cmake/pystring.cmake)
|
|
||||||
include(cmake/yamlcpp.cmake)
|
include(cmake/yamlcpp.cmake)
|
||||||
include(cmake/minizipng.cmake)
|
|
||||||
include(cmake/opencolorio.cmake)
|
include(cmake/opencolorio.cmake)
|
||||||
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
if(BLENDER_PLATFORM_ARM)
|
||||||
include(cmake/sse2neon.cmake)
|
include(cmake/sse2neon.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include(cmake/webp.cmake)
|
if(WITH_WEBP)
|
||||||
if(NOT APPLE)
|
include(cmake/webp.cmake)
|
||||||
include(cmake/level-zero.cmake)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT WIN32 OR ENABLE_MINGW64)
|
if(NOT WIN32 OR ENABLE_MINGW64)
|
||||||
@@ -149,7 +141,6 @@ if(NOT WIN32 OR ENABLE_MINGW64)
|
|||||||
include(cmake/vpx.cmake)
|
include(cmake/vpx.cmake)
|
||||||
include(cmake/x264.cmake)
|
include(cmake/x264.cmake)
|
||||||
include(cmake/xvidcore.cmake)
|
include(cmake/xvidcore.cmake)
|
||||||
include(cmake/aom.cmake)
|
|
||||||
include(cmake/ffmpeg.cmake)
|
include(cmake/ffmpeg.cmake)
|
||||||
include(cmake/fftw.cmake)
|
include(cmake/fftw.cmake)
|
||||||
include(cmake/sndfile.cmake)
|
include(cmake/sndfile.cmake)
|
||||||
@@ -158,6 +149,7 @@ if(NOT WIN32 OR ENABLE_MINGW64)
|
|||||||
endif()
|
endif()
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
include(cmake/flac.cmake)
|
include(cmake/flac.cmake)
|
||||||
|
include(cmake/xml2.cmake)
|
||||||
if(NOT APPLE)
|
if(NOT APPLE)
|
||||||
include(cmake/spnav.cmake)
|
include(cmake/spnav.cmake)
|
||||||
include(cmake/jemalloc.cmake)
|
include(cmake/jemalloc.cmake)
|
||||||
@@ -170,6 +162,7 @@ if(UNIX)
|
|||||||
include(cmake/bzip2.cmake)
|
include(cmake/bzip2.cmake)
|
||||||
include(cmake/ffi.cmake)
|
include(cmake/ffi.cmake)
|
||||||
include(cmake/lzma.cmake)
|
include(cmake/lzma.cmake)
|
||||||
|
include(cmake/ssl.cmake)
|
||||||
include(cmake/sqlite.cmake)
|
include(cmake/sqlite.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -177,13 +170,6 @@ if(UNIX AND NOT APPLE)
|
|||||||
include(cmake/libglu.cmake)
|
include(cmake/libglu.cmake)
|
||||||
include(cmake/mesa.cmake)
|
include(cmake/mesa.cmake)
|
||||||
include(cmake/wayland_protocols.cmake)
|
include(cmake/wayland_protocols.cmake)
|
||||||
# Can be removed when the build-bot upgrades to v1.20.x or newer.
|
|
||||||
include(cmake/wayland.cmake)
|
|
||||||
include(cmake/wayland_libdecor.cmake)
|
|
||||||
endif()
|
endif()
|
||||||
include(cmake/shaderc_deps.cmake)
|
|
||||||
include(cmake/shaderc.cmake)
|
|
||||||
include(cmake/vulkan.cmake)
|
|
||||||
include(cmake/pybind11.cmake)
|
|
||||||
include(cmake/harvest.cmake)
|
include(cmake/harvest.cmake)
|
||||||
include(cmake/cve_check.cmake)
|
|
||||||
|
@@ -1,23 +1,52 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(ALEMBIC_EXTRA_ARGS
|
set(ALEMBIC_EXTRA_ARGS
|
||||||
-DImath_ROOT=${LIBDIR}/imath
|
-DBUILDSTATIC=ON
|
||||||
-DUSE_PYALEMBIC=OFF
|
-DLINKSTATIC=ON
|
||||||
-DUSE_ARNOLD=OFF
|
-DILMBASE_ROOT=${LIBDIR}/openexr
|
||||||
-DUSE_MAYA=OFF
|
-DALEMBIC_ILMBASE_INCLUDE_DIRECTORY=${LIBDIR}/openexr/include/OpenEXR
|
||||||
-DUSE_PRMAN=OFF
|
-DALEMBIC_ILMBASE_HALF_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DUSE_HDF5=OFF
|
-DALEMBIC_ILMBASE_IMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DUSE_TESTS=OFF
|
-DALEMBIC_ILMBASE_ILMTHREAD_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DALEMBIC_ILMBASE_IEX_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DALEMBIC_ILMBASE_IEXMATH_LIB=${LIBDIR}/openexr/lib/${LIBPREFIX}IexMath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DUSE_PYILMBASE=0
|
||||||
|
-DUSE_PYALEMBIC=0
|
||||||
|
-DUSE_ARNOLD=0
|
||||||
|
-DUSE_MAYA=0
|
||||||
|
-DUSE_PRMAN=0
|
||||||
|
-DUSE_HDF5=Off
|
||||||
|
-DUSE_STATIC_HDF5=Off
|
||||||
|
-DUSE_TESTS=Off
|
||||||
|
-DALEMBIC_NO_OPENGL=1
|
||||||
-DUSE_BINARIES=ON
|
-DUSE_BINARIES=ON
|
||||||
-DALEMBIC_ILMBASE_LINK_STATIC=OFF
|
-DALEMBIC_ILMBASE_LINK_STATIC=On
|
||||||
-DALEMBIC_SHARED_LIBS=OFF
|
-DALEMBIC_SHARED_LIBS=OFF
|
||||||
|
-DGLUT_INCLUDE_DIR=""
|
||||||
|
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||||
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_alembic
|
ExternalProject_Add(external_alembic
|
||||||
URL file://${PACKAGE_DIR}/${ALEMBIC_FILE}
|
URL file://${PACKAGE_DIR}/${ALEMBIC_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${ALEMBIC_HASH_TYPE}=${ALEMBIC_HASH}
|
URL_HASH ${ALEMBIC_HASH_TYPE}=${ALEMBIC_HASH}
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
PREFIX ${BUILD_DIR}/alembic
|
PREFIX ${BUILD_DIR}/alembic
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/alembic -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${ALEMBIC_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/alembic -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${ALEMBIC_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/alembic
|
INSTALL_DIR ${LIBDIR}/alembic
|
||||||
@@ -42,5 +71,6 @@ endif()
|
|||||||
|
|
||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_alembic
|
external_alembic
|
||||||
external_imath
|
external_zlib
|
||||||
|
external_openexr
|
||||||
)
|
)
|
||||||
|
@@ -1,41 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
# The default generator on windows is msbuild, which we do not
|
|
||||||
# want to use for this dep, as needs to build with mingw
|
|
||||||
set(AOM_GENERATOR "Ninja")
|
|
||||||
# The default flags are full of MSVC options given this will be
|
|
||||||
# building with mingw, it'll have an unhappy time with that and
|
|
||||||
# we need to clear them out.
|
|
||||||
set(AOM_CMAKE_FLAGS )
|
|
||||||
else()
|
|
||||||
set(AOM_GENERATOR "Unix Makefiles")
|
|
||||||
set(AOM_CMAKE_FLAGS ${DEFAULT_CMAKE_FLAGS})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(AOM_EXTRA_ARGS
|
|
||||||
-DENABLE_TESTDATA=OFF
|
|
||||||
-DENABLE_TESTS=OFF
|
|
||||||
-DENABLE_TOOLS=OFF
|
|
||||||
-DENABLE_EXAMPLES=OFF
|
|
||||||
${AOM_EXTRA_ARGS_WIN32}
|
|
||||||
)
|
|
||||||
|
|
||||||
# This is slightly different from all other deps in the way that
|
|
||||||
# aom uses cmake as a build system, but still needs the environment setup
|
|
||||||
# to include perl so we manually setup the environment and call
|
|
||||||
# cmake directly for the configure, build and install commands.
|
|
||||||
|
|
||||||
ExternalProject_Add(external_aom
|
|
||||||
URL file://${PACKAGE_DIR}/${AOM_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${AOM_HASH_TYPE}=${AOM_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/aom
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/aom/src/external_aom < ${PATCH_DIR}/aom.diff
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
|
||||||
cd ${BUILD_DIR}/aom/src/external_aom-build/ &&
|
|
||||||
${CMAKE_COMMAND} -G "${AOM_GENERATOR}" -DCMAKE_INSTALL_PREFIX=${LIBDIR}/aom ${AOM_CMAKE_FLAGS} ${AOM_EXTRA_ARGS} ${BUILD_DIR}/aom/src/external_aom/
|
|
||||||
BUILD_COMMAND ${CMAKE_COMMAND} --build .
|
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install
|
|
||||||
INSTALL_DIR ${LIBDIR}/aom
|
|
||||||
)
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(BLOSC_EXTRA_ARGS
|
set(BLOSC_EXTRA_ARGS
|
||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||||
@@ -24,6 +40,7 @@ ExternalProject_Add(external_blosc
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${BLOSC_HASH_TYPE}=${BLOSC_HASH}
|
URL_HASH ${BLOSC_HASH_TYPE}=${BLOSC_HASH}
|
||||||
PREFIX ${BUILD_DIR}/blosc
|
PREFIX ${BUILD_DIR}/blosc
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} --verbose -p 1 -N -d ${BUILD_DIR}/blosc/src/external_blosc < ${PATCH_DIR}/blosc.diff
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blosc ${DEFAULT_CMAKE_FLAGS} ${BLOSC_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/blosc ${DEFAULT_CMAKE_FLAGS} ${BLOSC_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/blosc
|
INSTALL_DIR ${LIBDIR}/blosc
|
||||||
)
|
)
|
||||||
@@ -38,3 +55,19 @@ if(WIN32)
|
|||||||
external_pthreads
|
external_pthreads
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
if(BUILD_MODE STREQUAL Release)
|
||||||
|
ExternalProject_Add_Step(external_blosc after_install
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc.lib ${HARVEST_TARGET}/blosc/lib/libblosc.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/blosc/include/ ${HARVEST_TARGET}/blosc/include/
|
||||||
|
DEPENDEES install
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
|
ExternalProject_Add_Step(external_blosc after_install
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/blosc/lib/libblosc_d.lib ${HARVEST_TARGET}/blosc/lib/libblosc_d.lib
|
||||||
|
DEPENDEES install
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
@@ -1,20 +1,37 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
|
set(BOOST_ADDRESS_MODEL 64)
|
||||||
|
|
||||||
|
if(BLENDER_PLATFORM_ARM)
|
||||||
|
set(BOOST_ARCHITECTURE arm)
|
||||||
|
else()
|
||||||
|
set(BOOST_ARCHITECTURE x86)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
set(BOOST_TOOLSET toolset=msvc-14.1)
|
||||||
|
set(BOOST_COMPILER_STRING -vc141)
|
||||||
|
|
||||||
set(BOOST_CONFIGURE_COMMAND bootstrap.bat)
|
set(BOOST_CONFIGURE_COMMAND bootstrap.bat)
|
||||||
set(BOOST_BUILD_COMMAND b2)
|
set(BOOST_BUILD_COMMAND b2)
|
||||||
set(BOOST_BUILD_OPTIONS runtime-link=shared)
|
set(BOOST_BUILD_OPTIONS runtime-link=shared )
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
set(BOOST_HARVEST_CMD ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/lib/ ${HARVEST_TARGET}/boost/lib/ )
|
||||||
list(APPEND BOOST_BUILD_OPTIONS python-debugging=on variant=debug)
|
|
||||||
if(WITH_OPTIMIZED_DEBUG)
|
|
||||||
list(APPEND BOOST_BUILD_OPTIONS debug-symbols=off)
|
|
||||||
else()
|
|
||||||
list(APPEND BOOST_BUILD_OPTIONS debug-symbols=on)
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
list(APPEND BOOST_BUILD_OPTIONS variant=release)
|
|
||||||
endif()
|
|
||||||
set(BOOST_HARVEST_CMD ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/lib/ ${HARVEST_TARGET}/boost/lib/)
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-${BOOST_VERSION_NODOTS_SHORT}/ ${HARVEST_TARGET}/boost/include/)
|
set(BOOST_HARVEST_CMD ${BOOST_HARVEST_CMD} && ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/boost/include/boost-${BOOST_VERSION_NODOTS_SHORT}/ ${HARVEST_TARGET}/boost/include/)
|
||||||
endif()
|
endif()
|
||||||
@@ -23,24 +40,33 @@ elseif(APPLE)
|
|||||||
set(BOOST_BUILD_COMMAND ./b2)
|
set(BOOST_BUILD_COMMAND ./b2)
|
||||||
set(BOOST_BUILD_OPTIONS toolset=clang-darwin cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} visibility=global --disable-icu boost.locale.icu=off)
|
set(BOOST_BUILD_OPTIONS toolset=clang-darwin cxxflags=${PLATFORM_CXXFLAGS} linkflags=${PLATFORM_LDFLAGS} visibility=global --disable-icu boost.locale.icu=off)
|
||||||
set(BOOST_HARVEST_CMD echo .)
|
set(BOOST_HARVEST_CMD echo .)
|
||||||
|
set(BOOST_PATCH_COMMAND echo .)
|
||||||
else()
|
else()
|
||||||
set(BOOST_HARVEST_CMD echo .)
|
set(BOOST_HARVEST_CMD echo .)
|
||||||
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
|
set(BOOST_CONFIGURE_COMMAND ./bootstrap.sh)
|
||||||
set(BOOST_BUILD_COMMAND ./b2)
|
set(BOOST_BUILD_COMMAND ./b2)
|
||||||
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
|
set(BOOST_BUILD_OPTIONS cxxflags=${PLATFORM_CXXFLAGS} --disable-icu boost.locale.icu=off)
|
||||||
|
set(BOOST_PATCH_COMMAND echo .)
|
||||||
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||||
|
set(BOOST_ADDRESS_MODEL 64)
|
||||||
|
else()
|
||||||
|
set(BOOST_ADDRESS_MODEL 32)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(JAM_FILE ${BUILD_DIR}/boost.user-config.jam)
|
if(WITH_BOOST_PYTHON)
|
||||||
configure_file(${PATCH_DIR}/boost.user.jam.in ${JAM_FILE})
|
set(JAM_FILE ${BUILD_DIR}/boost.user-config.jam)
|
||||||
set(BOOST_PYTHON_OPTIONS
|
configure_file(${PATCH_DIR}/boost.user.jam.in ${JAM_FILE})
|
||||||
--with-python
|
|
||||||
--user-config=${JAM_FILE}
|
|
||||||
)
|
|
||||||
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
|
||||||
set(BOOST_PYTHON_OPTIONS
|
set(BOOST_PYTHON_OPTIONS
|
||||||
${BOOST_PYTHON_OPTIONS}
|
--with-python
|
||||||
define=BOOST_DEBUG_PYTHON
|
--user-config=${JAM_FILE}
|
||||||
)
|
)
|
||||||
|
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
||||||
|
set(BOOST_PYTHON_OPTIONS
|
||||||
|
${BOOST_PYTHON_OPTIONS}
|
||||||
|
define=BOOST_DEBUG_PYTHON
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(BOOST_OPTIONS
|
set(BOOST_OPTIONS
|
||||||
@@ -70,15 +96,17 @@ ExternalProject_Add(external_boost
|
|||||||
URL_HASH ${BOOST_HASH_TYPE}=${BOOST_HASH}
|
URL_HASH ${BOOST_HASH_TYPE}=${BOOST_HASH}
|
||||||
PREFIX ${BUILD_DIR}/boost
|
PREFIX ${BUILD_DIR}/boost
|
||||||
UPDATE_COMMAND ""
|
UPDATE_COMMAND ""
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/boost/src/external_boost < ${PATCH_DIR}/boost.diff
|
PATCH_COMMAND ${BOOST_PATCH_COMMAND}
|
||||||
CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND}
|
CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND}
|
||||||
BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=${BOOST_ARCHITECTURE} address-model=${BOOST_ADDRESS_MODEL} link=shared threading=multi ${BOOST_OPTIONS} --prefix=${LIBDIR}/boost install
|
BUILD_COMMAND ${BOOST_BUILD_COMMAND} ${BOOST_BUILD_OPTIONS} -j${MAKE_THREADS} architecture=${BOOST_ARCHITECTURE} address-model=${BOOST_ADDRESS_MODEL} link=static threading=multi ${BOOST_OPTIONS} --prefix=${LIBDIR}/boost install
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
INSTALL_COMMAND "${BOOST_HARVEST_CMD}"
|
INSTALL_COMMAND "${BOOST_HARVEST_CMD}"
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies(
|
if(WITH_BOOST_PYTHON)
|
||||||
external_boost
|
add_dependencies(
|
||||||
external_python
|
external_boost
|
||||||
external_numpy
|
external_python
|
||||||
)
|
external_numpy
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
@@ -1,31 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(BOOST_ADDRESS_MODEL 64)
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
|
||||||
set(BOOST_ARCHITECTURE arm)
|
|
||||||
else()
|
|
||||||
set(BOOST_ARCHITECTURE x86)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
if(MSVC_VERSION GREATER_EQUAL 1920) # 2019
|
|
||||||
set(BOOST_TOOLSET toolset=msvc-14.2)
|
|
||||||
set(BOOST_COMPILER_STRING -vc142)
|
|
||||||
else() # 2017
|
|
||||||
set(BOOST_TOOLSET toolset=msvc-14.1)
|
|
||||||
set(BOOST_COMPILER_STRING -vc141)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(DEFAULT_BOOST_FLAGS
|
|
||||||
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
|
||||||
-DBoost_USE_MULTITHREADED=ON
|
|
||||||
-DBoost_USE_STATIC_LIBS=OFF
|
|
||||||
-DBoost_USE_STATIC_RUNTIME=OFF
|
|
||||||
-DBOOST_ROOT=${LIBDIR}/boost
|
|
||||||
-DBoost_NO_SYSTEM_PATHS=ON
|
|
||||||
-DBoost_NO_BOOST_CMAKE=ON
|
|
||||||
-DBoost_ADDITIONAL_VERSIONS=${BOOST_VERSION_SHORT}
|
|
||||||
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
|
||||||
-DBoost_USE_DEBUG_PYTHON=On
|
|
||||||
)
|
|
@@ -1,22 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(BROTLI_EXTRA_ARGS
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_brotli
|
|
||||||
URL file://${PACKAGE_DIR}/${BROTLI_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${BROTLI_HASH_TYPE}=${BROTLI_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/brotli
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/brotli ${DEFAULT_CMAKE_FLAGS} ${BROTLI_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/brotli
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_brotli after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/brotli/include ${HARVEST_TARGET}/brotli/include
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/brotli/lib/brotlidec-static${LIBEXT} ${HARVEST_TARGET}/brotli/lib/brotlidec-static${LIBEXT}
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/brotli/lib/brotlicommon-static${LIBEXT} ${HARVEST_TARGET}/brotli/lib/brotlicommon-static${LIBEXT}
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(BZIP2_PREFIX "${LIBDIR}/bzip2")
|
set(BZIP2_PREFIX "${LIBDIR}/bzip2")
|
||||||
set(BZIP2_CONFIGURE_ENV echo .)
|
set(BZIP2_CONFIGURE_ENV echo .)
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
@@ -12,16 +28,19 @@ if(UNIX)
|
|||||||
automake
|
automake
|
||||||
bison
|
bison
|
||||||
${_libtoolize_name}
|
${_libtoolize_name}
|
||||||
ninja
|
|
||||||
pkg-config
|
pkg-config
|
||||||
tclsh
|
tclsh
|
||||||
yasm
|
yasm
|
||||||
)
|
)
|
||||||
|
|
||||||
if(APPLE)
|
if(NOT APPLE)
|
||||||
list(APPEND _required_software dos2unix)
|
set(_required_software
|
||||||
else()
|
${_required_software}
|
||||||
list(APPEND _required_software patchelf)
|
|
||||||
|
# Needed for Mesa.
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
foreach(_software ${_required_software})
|
foreach(_software ${_required_software})
|
||||||
@@ -51,10 +70,13 @@ if(UNIX)
|
|||||||
" ${_software_missing}\n"
|
" ${_software_missing}\n"
|
||||||
"\n"
|
"\n"
|
||||||
"On Debian and Ubuntu:\n"
|
"On Debian and Ubuntu:\n"
|
||||||
" apt install autoconf automake bison libtool yasm tcl ninja-build meson python3-mako patchelf\n"
|
" apt install autoconf automake libtool yasm tcl ninja-build meson python3-mako\n"
|
||||||
"\n"
|
"\n"
|
||||||
"On macOS (with homebrew):\n"
|
"On macOS Intel (with homebrew):\n"
|
||||||
" brew install autoconf automake bison dos2unix flex libtool meson ninja pkg-config yasm\n"
|
" brew install autoconf automake bison libtool pkg-config yasm\n"
|
||||||
|
"\n"
|
||||||
|
"On macOS ARM (with homebrew):\n"
|
||||||
|
" brew install autoconf automake bison flex libtool pkg-config yasm\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Other platforms:\n"
|
"Other platforms:\n"
|
||||||
" Install equivalent packages.\n")
|
" Install equivalent packages.\n")
|
||||||
|
28
build_files/build_environment/cmake/clew.cmake
Normal file
28
build_files/build_environment/cmake/clew.cmake
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
|
set(CLEW_EXTRA_ARGS)
|
||||||
|
|
||||||
|
ExternalProject_Add(external_clew
|
||||||
|
URL file://${PACKAGE_DIR}/${CLEW_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${CLEW_HASH_TYPE}=${CLEW_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/clew
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/clew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CLEW_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/clew
|
||||||
|
)
|
29
build_files/build_environment/cmake/cuew.cmake
Normal file
29
build_files/build_environment/cmake/cuew.cmake
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
|
set(CUEW_EXTRA_ARGS)
|
||||||
|
|
||||||
|
ExternalProject_Add(external_cuew
|
||||||
|
URL file://${PACKAGE_DIR}/${CUEW_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${CUEW_HASH_TYPE}=${CUEW_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/cuew
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} --verbose -p 0 -N -d ${BUILD_DIR}/cuew/src/external_cuew < ${PATCH_DIR}/cuew.diff
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/cuew -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${CUEW_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/cuew
|
||||||
|
)
|
@@ -1,75 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# CVE Check requirements
|
|
||||||
#
|
|
||||||
# - A working installation of intels cve-bin-tool [1] has to be available in
|
|
||||||
# your path
|
|
||||||
#
|
|
||||||
# - Not strictly required, but highly recommended is obtaining a NVD key from
|
|
||||||
# nist since it significantly speeds up downloading/updating the required
|
|
||||||
# databases one can request a key on the following website:
|
|
||||||
# https://nvd.nist.gov/developers/request-an-api-key
|
|
||||||
|
|
||||||
# Bill of Materials construction
|
|
||||||
#
|
|
||||||
# This constructs a CSV cve-bin-tool [1] can read and process. Sadly
|
|
||||||
# cve-bin-tool at this point does not take a list of CPE's and output a check
|
|
||||||
# based on that list. so we need to pick apart the CPE retrieve the vendor,
|
|
||||||
# product and version tokens and generate a CSV.
|
|
||||||
#
|
|
||||||
# [1] https://github.com/intel/cve-bin-tool
|
|
||||||
|
|
||||||
# Because not all deps are downloaded (ie python packages) but can still have a
|
|
||||||
# xxx_CPE declared loop over all variables and look for variables ending in CPE.
|
|
||||||
|
|
||||||
set(SBOMCONTENTS)
|
|
||||||
get_cmake_property(_variableNames VARIABLES)
|
|
||||||
foreach(_variableName ${_variableNames})
|
|
||||||
if(_variableName MATCHES "CPE$")
|
|
||||||
string(REPLACE ":" ";" CPE_LIST ${${_variableName}})
|
|
||||||
string(REPLACE "_CPE" "_ID" CPE_DEPNAME ${_variableName})
|
|
||||||
list(GET CPE_LIST 3 CPE_VENDOR)
|
|
||||||
list(GET CPE_LIST 4 CPE_NAME)
|
|
||||||
list(GET CPE_LIST 5 CPE_VERSION)
|
|
||||||
set(${CPE_DEPNAME} "${CPE_VENDOR},${CPE_NAME},${CPE_VERSION}")
|
|
||||||
set(SBOMCONTENTS "${SBOMCONTENTS}${CPE_VENDOR},${CPE_NAME},${CPE_VERSION},,,\n")
|
|
||||||
endif()
|
|
||||||
endforeach()
|
|
||||||
configure_file(${CMAKE_SOURCE_DIR}/cmake/cve_check.csv.in ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv @ONLY)
|
|
||||||
|
|
||||||
# Custom Targets
|
|
||||||
#
|
|
||||||
# This defines two new custom targets one could run in the build folder
|
|
||||||
# `cve_check` which will output the report to the console, and `cve_check_html`
|
|
||||||
# which will write out blender_dependencies.html in the build folder that one
|
|
||||||
# could share with other people or be used to get more information on the
|
|
||||||
# reported CVE's.
|
|
||||||
#
|
|
||||||
# cve-bin-tool takes data from the nist nvd database which rate limits
|
|
||||||
# unauthenticated requests to 1 requests per 6 seconds making the database
|
|
||||||
# download take "quite a bit" of time.
|
|
||||||
#
|
|
||||||
# When adding -DCVE_CHECK_NVD_KEY=your_api_key_here to your cmake invocation
|
|
||||||
# this key will be passed on to cve-bin-tool speeding up the process.
|
|
||||||
#
|
|
||||||
if(DEFINED CVE_CHECK_NVD_KEY)
|
|
||||||
set(NVD_ARGS --nvd-api-key ${CVE_CHECK_NVD_KEY})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# This will just report to the console
|
|
||||||
add_custom_target(cve_check
|
|
||||||
COMMAND cve-bin-tool
|
|
||||||
${NVD_ARGS}
|
|
||||||
-i ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv
|
|
||||||
--affected-versions
|
|
||||||
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv
|
|
||||||
)
|
|
||||||
|
|
||||||
# This will write out blender_dependencies.html
|
|
||||||
add_custom_target(cve_check_html
|
|
||||||
COMMAND cve-bin-tool
|
|
||||||
${NVD_ARGS}
|
|
||||||
-i ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv
|
|
||||||
-f html
|
|
||||||
SOURCES ${CMAKE_CURRENT_BINARY_DIR}/cve_check.csv
|
|
||||||
)
|
|
@@ -1,29 +0,0 @@
|
|||||||
vendor,product,version,cve_number,remarks,comment
|
|
||||||
@OPENJPEG_ID@,CVE-2016-9675,Ignored,issue in convert command line tool not used by blender
|
|
||||||
@PYTHON_ID@,CVE-2009-2940,Ignored,issue in pygresql not used by blender
|
|
||||||
@PYTHON_ID@,CVE-2020-29396,Ignored,issue in odoo not used by blender
|
|
||||||
@PYTHON_ID@,CVE-2021-32052,Ignored,issue in django not used by blender
|
|
||||||
@PYTHON_ID@,CVE-2009-3720,Ignored,already fixed in libexpat version used
|
|
||||||
@SSL_ID@,CVE-2009-1390,Ignored,issue in mutt not used by blender
|
|
||||||
@SSL_ID@,CVE-2009-3765,Ignored,issue in mutt not used by blender
|
|
||||||
@SSL_ID@,CVE-2009-3766,Ignored,issue in mutt not used by blender
|
|
||||||
@SSL_ID@,CVE-2009-3767,Ignored,issue in ldap not used by blender
|
|
||||||
@SSL_ID@,CVE-2019-0190,Ignored,issue in apache not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-2056,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-2057,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-2058,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-2519,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-2520,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-2521,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-2953,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-34526,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-3570,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-3597,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-3598,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-3599,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-3626,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@TIFF_ID@,CVE-2022-3627,Ignored,issue in tiff command line tool not used by blender
|
|
||||||
@XML2_ID@,CVE-2016-3709,Ignored,not affecting blender and not considered a security issue upstream
|
|
||||||
@GMP_ID@,CVE-2021-43618,Mitigated,patched using upstream commit 561a9c25298e
|
|
||||||
@SQLITE_ID@,CVE-2022-35737,Ignored,only affects SQLITE_ENABLE_STAT4 compile option not used by blender or python
|
|
||||||
@SBOMCONTENTS@
|
|
@@ -1,74 +1,22 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
## Update and uncomment this in the release branch
|
|
||||||
# set(BLENDER_VERSION 3.1)
|
|
||||||
|
|
||||||
function(download_source dep)
|
function(download_source dep)
|
||||||
set(TARGET_FILE ${${dep}_FILE})
|
set(TARGET_FILE ${${dep}_FILE})
|
||||||
set(TARGET_HASH_TYPE ${${dep}_HASH_TYPE})
|
set(TARGET_HASH_TYPE ${${dep}_HASH_TYPE})
|
||||||
set(TARGET_HASH ${${dep}_HASH})
|
set(TARGET_HASH ${${dep}_HASH})
|
||||||
if(PACKAGE_USE_UPSTREAM_SOURCES)
|
if(PACKAGE_USE_UPSTREAM_SOURCES)
|
||||||
set(TARGET_URI ${${dep}_URI})
|
set(TARGET_URI ${${dep}_URI})
|
||||||
elseif(BLENDER_VERSION)
|
|
||||||
set(TARGET_URI https://svn.blender.org/svnroot/bf-blender/tags/blender-${BLENDER_VERSION}-release/lib/packages/${TARGET_FILE})
|
|
||||||
else()
|
else()
|
||||||
set(TARGET_URI https://svn.blender.org/svnroot/bf-blender/trunk/lib/packages/${TARGET_FILE})
|
set(TARGET_URI https://svn.blender.org/svnroot/bf-blender/trunk/lib/packages/${TARGET_FILE})
|
||||||
endif()
|
|
||||||
# Validate all required variables are set and give an explicit error message
|
|
||||||
# rather than CMake erroring out later on with a more ambigious error.
|
|
||||||
if(NOT DEFINED TARGET_FILE)
|
|
||||||
message(FATAL_ERROR "${dep}_FILE variable not set")
|
|
||||||
endif()
|
|
||||||
if(NOT DEFINED TARGET_HASH)
|
|
||||||
message(FATAL_ERROR "${dep}_HASH variable not set")
|
|
||||||
endif()
|
|
||||||
if(NOT DEFINED TARGET_HASH_TYPE)
|
|
||||||
message(FATAL_ERROR "${dep}_HASH_TYPE variable not set")
|
|
||||||
endif()
|
|
||||||
if(NOT DEFINED TARGET_URI)
|
|
||||||
message(FATAL_ERROR "${dep}_URI variable not set")
|
|
||||||
endif()
|
endif()
|
||||||
set(TARGET_FILE ${PACKAGE_DIR}/${TARGET_FILE})
|
set(TARGET_FILE ${PACKAGE_DIR}/${TARGET_FILE})
|
||||||
message("Checking source : ${dep} (${TARGET_FILE})")
|
message("Checking source : ${dep} (${TARGET_FILE})")
|
||||||
if(NOT EXISTS ${TARGET_FILE})
|
if(NOT EXISTS ${TARGET_FILE})
|
||||||
message("Checking source : ${dep} - source not found downloading from ${TARGET_URI}")
|
message("Checking source : ${dep} - source not found downloading from ${TARGET_URI}")
|
||||||
file(
|
file(DOWNLOAD ${TARGET_URI} ${TARGET_FILE}
|
||||||
DOWNLOAD ${TARGET_URI} ${TARGET_FILE}
|
TIMEOUT 1800 # seconds
|
||||||
TIMEOUT 1800 # seconds
|
EXPECTED_HASH ${TARGET_HASH_TYPE}=${TARGET_HASH}
|
||||||
EXPECTED_HASH ${TARGET_HASH_TYPE}=${TARGET_HASH}
|
TLS_VERIFY ON
|
||||||
TLS_VERIFY ON
|
SHOW_PROGRESS
|
||||||
SHOW_PROGRESS
|
)
|
||||||
)
|
|
||||||
endif()
|
|
||||||
if(EXISTS ${TARGET_FILE})
|
|
||||||
# Sometimes the download fails, but that is not a
|
|
||||||
# fail condition for "file(DOWNLOAD" it will warn about
|
|
||||||
# a CRC mismatch and just carry on, we need to explicitly
|
|
||||||
# catch this and remove the bogus 0 byte file so we can
|
|
||||||
# retry without having to go find the file and manually
|
|
||||||
# delete it.
|
|
||||||
file(SIZE ${TARGET_FILE} TARGET_SIZE)
|
|
||||||
if(${TARGET_SIZE} EQUAL 0)
|
|
||||||
file(REMOVE ${TARGET_FILE})
|
|
||||||
message(FATAL_ERROR "for ${TARGET_FILE} file size 0, download likely failed, deleted...")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# If we are using sources from the blender repo also
|
|
||||||
# validate that the hashes match, this takes a
|
|
||||||
# little more time, but protects us when we are
|
|
||||||
# building a release package and one of the packages
|
|
||||||
# is missing or incorrect.
|
|
||||||
#
|
|
||||||
# For regular platform maintenaince this is not needed
|
|
||||||
# since the actual build of the dep will notify the
|
|
||||||
# platform maintainer if there is a problem with the
|
|
||||||
# source package and refuse to build.
|
|
||||||
if(NOT PACKAGE_USE_UPSTREAM_SOURCES OR FORCE_CHECK_HASH)
|
|
||||||
file(${TARGET_HASH_TYPE} ${TARGET_FILE} LOCAL_HASH)
|
|
||||||
if(NOT ${TARGET_HASH} STREQUAL ${LOCAL_HASH})
|
|
||||||
message(FATAL_ERROR "${TARGET_FILE} ${TARGET_HASH_TYPE} mismatch\nExpected\t: ${TARGET_HASH}\nActual\t: ${LOCAL_HASH}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
endfunction(download_source)
|
endfunction(download_source)
|
||||||
|
|
||||||
@@ -81,14 +29,17 @@ download_source(BLOSC)
|
|||||||
download_source(PTHREADS)
|
download_source(PTHREADS)
|
||||||
download_source(OPENEXR)
|
download_source(OPENEXR)
|
||||||
download_source(FREETYPE)
|
download_source(FREETYPE)
|
||||||
download_source(EPOXY)
|
download_source(GLEW)
|
||||||
download_source(FREEGLUT)
|
download_source(FREEGLUT)
|
||||||
download_source(ALEMBIC)
|
download_source(ALEMBIC)
|
||||||
|
download_source(GLFW)
|
||||||
|
download_source(CLEW)
|
||||||
|
download_source(GLFW)
|
||||||
|
download_source(CUEW)
|
||||||
download_source(OPENSUBDIV)
|
download_source(OPENSUBDIV)
|
||||||
download_source(SDL)
|
download_source(SDL)
|
||||||
download_source(OPENCOLLADA)
|
download_source(OPENCOLLADA)
|
||||||
download_source(OPENCOLORIO)
|
download_source(OPENCOLORIO)
|
||||||
download_source(MINIZIPNG)
|
|
||||||
download_source(LLVM)
|
download_source(LLVM)
|
||||||
download_source(OPENMP)
|
download_source(OPENMP)
|
||||||
download_source(OPENIMAGEIO)
|
download_source(OPENIMAGEIO)
|
||||||
@@ -97,6 +48,7 @@ download_source(OSL)
|
|||||||
download_source(PYTHON)
|
download_source(PYTHON)
|
||||||
download_source(TBB)
|
download_source(TBB)
|
||||||
download_source(OPENVDB)
|
download_source(OPENVDB)
|
||||||
|
download_source(NANOVDB)
|
||||||
download_source(NUMPY)
|
download_source(NUMPY)
|
||||||
download_source(LAME)
|
download_source(LAME)
|
||||||
download_source(OGG)
|
download_source(OGG)
|
||||||
@@ -112,10 +64,13 @@ download_source(FFMPEG)
|
|||||||
download_source(FFTW)
|
download_source(FFTW)
|
||||||
download_source(ICONV)
|
download_source(ICONV)
|
||||||
download_source(SNDFILE)
|
download_source(SNDFILE)
|
||||||
download_source(WEBP)
|
if(WITH_WEBP)
|
||||||
|
download_source(WEBP)
|
||||||
|
endif()
|
||||||
download_source(SPNAV)
|
download_source(SPNAV)
|
||||||
download_source(JEMALLOC)
|
download_source(JEMALLOC)
|
||||||
download_source(XML2)
|
download_source(XML2)
|
||||||
|
download_source(TINYXML)
|
||||||
download_source(YAMLCPP)
|
download_source(YAMLCPP)
|
||||||
download_source(EXPAT)
|
download_source(EXPAT)
|
||||||
download_source(PUGIXML)
|
download_source(PUGIXML)
|
||||||
@@ -127,51 +82,15 @@ download_source(SSL)
|
|||||||
download_source(SQLITE)
|
download_source(SQLITE)
|
||||||
download_source(EMBREE)
|
download_source(EMBREE)
|
||||||
download_source(USD)
|
download_source(USD)
|
||||||
download_source(MATERIALX)
|
|
||||||
download_source(OIDN)
|
download_source(OIDN)
|
||||||
download_source(LIBGLU)
|
download_source(LIBGLU)
|
||||||
download_source(MESA)
|
download_source(MESA)
|
||||||
download_source(NASM)
|
download_source(NASM)
|
||||||
download_source(XR_OPENXR_SDK)
|
download_source(XR_OPENXR_SDK)
|
||||||
download_source(WL_PROTOCOLS)
|
download_source(WL_PROTOCOLS)
|
||||||
download_source(WAYLAND)
|
|
||||||
download_source(WAYLAND_LIBDECOR)
|
|
||||||
download_source(ISPC)
|
download_source(ISPC)
|
||||||
download_source(GMP)
|
download_source(GMP)
|
||||||
download_source(POTRACE)
|
download_source(POTRACE)
|
||||||
download_source(HARU)
|
download_source(HARU)
|
||||||
download_source(ZSTD)
|
download_source(ZSTD)
|
||||||
download_source(SSE2NEON)
|
|
||||||
download_source(FLEX)
|
download_source(FLEX)
|
||||||
download_source(BROTLI)
|
|
||||||
download_source(FMT)
|
|
||||||
download_source(ROBINMAP)
|
|
||||||
download_source(IMATH)
|
|
||||||
download_source(PYSTRING)
|
|
||||||
download_source(OPENPGL)
|
|
||||||
download_source(LEVEL_ZERO)
|
|
||||||
download_source(DPCPP)
|
|
||||||
download_source(VCINTRINSICS)
|
|
||||||
download_source(OPENCLHEADERS)
|
|
||||||
download_source(ICDLOADER)
|
|
||||||
download_source(MP11)
|
|
||||||
download_source(SPIRV_HEADERS)
|
|
||||||
download_source(IGC)
|
|
||||||
download_source(IGC_LLVM)
|
|
||||||
download_source(IGC_OPENCL_CLANG)
|
|
||||||
download_source(IGC_VCINTRINSICS)
|
|
||||||
download_source(IGC_SPIRV_HEADERS)
|
|
||||||
download_source(IGC_SPIRV_TOOLS)
|
|
||||||
download_source(IGC_SPIRV_TRANSLATOR)
|
|
||||||
download_source(GMMLIB)
|
|
||||||
download_source(OCLOC)
|
|
||||||
download_source(AOM)
|
|
||||||
download_source(FRIBIDI)
|
|
||||||
download_source(HARFBUZZ)
|
|
||||||
download_source(SHADERC)
|
|
||||||
download_source(SHADERC_SPIRV_TOOLS)
|
|
||||||
download_source(SHADERC_SPIRV_HEADERS)
|
|
||||||
download_source(SHADERC_GLSLANG)
|
|
||||||
download_source(VULKAN_HEADERS)
|
|
||||||
download_source(VULKAN_LOADER)
|
|
||||||
download_source(PYBIND11)
|
|
||||||
|
@@ -1,116 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# LLVM does not switch over to cpp17 until llvm 16 and building ealier versions with
|
|
||||||
# MSVC is leading to some crashes in ISPC. Switch back to their default on all platforms
|
|
||||||
# for now.
|
|
||||||
string(REPLACE "-DCMAKE_CXX_STANDARD=17" " " DPCPP_CMAKE_FLAGS "${DEFAULT_CMAKE_FLAGS}")
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
set(LLVM_GENERATOR "Ninja")
|
|
||||||
else()
|
|
||||||
set(LLVM_GENERATOR "Unix Makefiles")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(DPCPP_CONFIGURE_ARGS
|
|
||||||
# When external deps dpcpp needs are not found it will automatically
|
|
||||||
# download the during the configure stage using FetchContent. Given
|
|
||||||
# we need to keep an archive of all source used during build for compliance
|
|
||||||
# reasons it CANNOT download anything we do not know about. By setting
|
|
||||||
# this property to ON, all downloads are disabled, and we will have to
|
|
||||||
# provide the missing deps some other way, a build error beats a compliance
|
|
||||||
# violation
|
|
||||||
--cmake-opt FETCHCONTENT_FULLY_DISCONNECTED=ON
|
|
||||||
)
|
|
||||||
set(DPCPP_SOURCE_ROOT ${BUILD_DIR}/dpcpp/src/external_dpcpp/)
|
|
||||||
set(DPCPP_EXTRA_ARGS
|
|
||||||
# When external deps dpcpp needs are not found it will automatically
|
|
||||||
# download the during the configure stage using FetchContent. Given
|
|
||||||
# we need to keep an archive of all source used during build for compliance
|
|
||||||
# reasons it CANNOT download anything we do not know about. By setting
|
|
||||||
# this property to ON, all downloads are disabled, and we will have to
|
|
||||||
# provide the missing deps some other way, a build or configure error
|
|
||||||
# beats a compliance violation
|
|
||||||
-DFETCHCONTENT_FULLY_DISCONNECTED=ON
|
|
||||||
-DLLVMGenXIntrinsics_SOURCE_DIR=${BUILD_DIR}/vcintrinsics/src/external_vcintrinsics/
|
|
||||||
-DOpenCL_HEADERS=file://${PACKAGE_DIR}/${OPENCLHEADERS_FILE}
|
|
||||||
-DOpenCL_LIBRARY_SRC=file://${PACKAGE_DIR}/${ICDLOADER_FILE}
|
|
||||||
-DBOOST_MP11_SOURCE_DIR=${BUILD_DIR}/mp11/src/external_mp11/
|
|
||||||
-DLEVEL_ZERO_LIBRARY=${LIBDIR}/level-zero/lib/${LIBPREFIX}ze_loader${SHAREDLIBEXT}
|
|
||||||
-DLEVEL_ZERO_INCLUDE_DIR=${LIBDIR}/level-zero/include
|
|
||||||
-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${BUILD_DIR}/spirvheaders/src/external_spirvheaders/
|
|
||||||
# Below here is copied from an invocation of buildbot/config.py
|
|
||||||
-DLLVM_ENABLE_ASSERTIONS=ON
|
|
||||||
-DLLVM_TARGETS_TO_BUILD=X86
|
|
||||||
-DLLVM_EXTERNAL_PROJECTS=sycl^^llvm-spirv^^opencl^^libdevice^^xpti^^xptifw
|
|
||||||
-DLLVM_EXTERNAL_SYCL_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/sycl
|
|
||||||
-DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/llvm-spirv
|
|
||||||
-DLLVM_EXTERNAL_XPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
|
|
||||||
-DXPTI_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xpti
|
|
||||||
-DLLVM_EXTERNAL_XPTIFW_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/xptifw
|
|
||||||
-DLLVM_EXTERNAL_LIBDEVICE_SOURCE_DIR=${DPCPP_SOURCE_ROOT}/libdevice
|
|
||||||
-DLLVM_ENABLE_PROJECTS=clang^^sycl^^llvm-spirv^^opencl^^libdevice^^xpti^^xptifw
|
|
||||||
-DLIBCLC_TARGETS_TO_BUILD=
|
|
||||||
-DLIBCLC_GENERATE_REMANGLED_VARIANTS=OFF
|
|
||||||
-DSYCL_BUILD_PI_HIP_PLATFORM=AMD
|
|
||||||
-DLLVM_BUILD_TOOLS=ON
|
|
||||||
-DSYCL_ENABLE_WERROR=OFF
|
|
||||||
-DSYCL_INCLUDE_TESTS=ON
|
|
||||||
-DLLVM_ENABLE_DOXYGEN=OFF
|
|
||||||
-DLLVM_ENABLE_SPHINX=OFF
|
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
|
||||||
-DSYCL_ENABLE_XPTI_TRACING=ON
|
|
||||||
-DLLVM_ENABLE_LLD=OFF
|
|
||||||
-DXPTI_ENABLE_WERROR=OFF
|
|
||||||
-DSYCL_CLANG_EXTRA_FLAGS=
|
|
||||||
-DSYCL_ENABLE_PLUGINS=level_zero
|
|
||||||
-DCMAKE_INSTALL_RPATH=\$ORIGIN
|
|
||||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
|
||||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
-DLLDB_ENABLE_CURSES=OFF
|
|
||||||
-DLLVM_ENABLE_TERMINFO=OFF
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
list(APPEND DPCPP_EXTRA_ARGS -DPython3_FIND_REGISTRY=NEVER)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
ExternalProject_Add(external_dpcpp
|
|
||||||
URL file://${PACKAGE_DIR}/${DPCPP_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${DPCPP_HASH_TYPE}=${DPCPP_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/dpcpp
|
|
||||||
CMAKE_GENERATOR ${LLVM_GENERATOR}
|
|
||||||
SOURCE_SUBDIR llvm
|
|
||||||
LIST_SEPARATOR ^^
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/dpcpp ${DPCPP_CMAKE_FLAGS} ${DPCPP_EXTRA_ARGS}
|
|
||||||
# CONFIGURE_COMMAND
|
|
||||||
# ${PYTHON_BINARY}
|
|
||||||
# ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/configure.py ${DPCPP_CONFIGURE_ARGS}
|
|
||||||
# BUILD_COMMAND
|
|
||||||
# echo "." # ${PYTHON_BINARY} ${BUILD_DIR}/dpcpp/src/external_dpcpp/buildbot/compile.py
|
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . -- deploy-sycl-toolchain
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/dpcpp/src/external_dpcpp < ${PATCH_DIR}/dpcpp.diff
|
|
||||||
INSTALL_DIR ${LIBDIR}/dpcpp
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_dpcpp
|
|
||||||
external_python
|
|
||||||
external_python_site_packages
|
|
||||||
external_vcintrinsics
|
|
||||||
external_openclheaders
|
|
||||||
external_icdloader
|
|
||||||
external_mp11
|
|
||||||
external_level-zero
|
|
||||||
external_spirvheaders
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_dpcpp after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${LIBDIR}/dpcpp/bin/clang-cl.exe
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${LIBDIR}/dpcpp/bin/clang-cpp.exe
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E rm -f ${LIBDIR}/dpcpp/bin/clang.exe
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/dpcpp ${HARVEST_TARGET}/dpcpp
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -1,61 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# These are build time requirements for dpcpp
|
|
||||||
# We only have to unpack these dpcpp will build
|
|
||||||
# them.
|
|
||||||
|
|
||||||
ExternalProject_Add(external_vcintrinsics
|
|
||||||
URL file://${PACKAGE_DIR}/${VCINTRINSICS_FILE}
|
|
||||||
URL_HASH ${VCINTRINSICS_HASH_TYPE}=${VCINTRINSICS_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/vcintrinsics
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
)
|
|
||||||
|
|
||||||
# opencl headers do not have to be unpacked, dpcpp will do it
|
|
||||||
# but it wouldn't hurt to do it anyway as an opertunity to validate
|
|
||||||
# the hash is correct.
|
|
||||||
ExternalProject_Add(external_openclheaders
|
|
||||||
URL file://${PACKAGE_DIR}/${OPENCLHEADERS_FILE}
|
|
||||||
URL_HASH ${OPENCLHEADERS_HASH_TYPE}=${OPENCLHEADERS_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/openclheaders
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
)
|
|
||||||
|
|
||||||
# icdloader does not have to be unpacked, dpcpp will do it
|
|
||||||
# but it wouldn't hurt to do it anyway as an opertunity to validate
|
|
||||||
# the hash is correct.
|
|
||||||
ExternalProject_Add(external_icdloader
|
|
||||||
URL file://${PACKAGE_DIR}/${ICDLOADER_FILE}
|
|
||||||
URL_HASH ${ICDLOADER_HASH_TYPE}=${ICDLOADER_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/icdloader
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_mp11
|
|
||||||
URL file://${PACKAGE_DIR}/${MP11_FILE}
|
|
||||||
URL_HASH ${MP11_HASH_TYPE}=${MP11_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/mp11
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_spirvheaders
|
|
||||||
URL file://${PACKAGE_DIR}/${SPIRV_HEADERS_FILE}
|
|
||||||
URL_HASH ${SPIRV_HEADERS_HASH_TYPE}=${SPIRV_HEADERS_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/spirvheaders
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
)
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
# Note the utility apps may use png/tiff/gif system libraries, but the
|
# Note the utility apps may use png/tiff/gif system libraries, but the
|
||||||
# library itself does not depend on them, so should give no problems.
|
# library itself does not depend on them, so should give no problems.
|
||||||
@@ -10,34 +26,53 @@ set(EMBREE_EXTRA_ARGS
|
|||||||
-DEMBREE_RAY_MASK=ON
|
-DEMBREE_RAY_MASK=ON
|
||||||
-DEMBREE_FILTER_FUNCTION=ON
|
-DEMBREE_FILTER_FUNCTION=ON
|
||||||
-DEMBREE_BACKFACE_CULLING=OFF
|
-DEMBREE_BACKFACE_CULLING=OFF
|
||||||
|
-DEMBREE_MAX_ISA=AVX2
|
||||||
-DEMBREE_TASKING_SYSTEM=TBB
|
-DEMBREE_TASKING_SYSTEM=TBB
|
||||||
-DEMBREE_TBB_ROOT=${LIBDIR}/tbb
|
-DEMBREE_TBB_ROOT=${LIBDIR}/tbb
|
||||||
-DTBB_ROOT=${LIBDIR}/tbb
|
-DTBB_ROOT=${LIBDIR}/tbb
|
||||||
|
-DTBB_STATIC_LIB=${TBB_STATIC_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT BLENDER_PLATFORM_ARM)
|
|
||||||
set(EMBREE_EXTRA_ARGS
|
|
||||||
${EMBREE_EXTRA_ARGS}
|
|
||||||
-DEMBREE_MAX_ISA=AVX2
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(TBB_STATIC_LIBRARY)
|
if(TBB_STATIC_LIBRARY)
|
||||||
set(EMBREE_EXTRA_ARGS
|
set(EMBREE_EXTRA_ARGS
|
||||||
${EMBREE_EXTRA_ARGS}
|
${EMBREE_EXTRA_ARGS}
|
||||||
-DEMBREE_TBB_COMPONENT=tbb_static
|
-DEMBREE_TBB_LIBRARY_NAME=tbb_static
|
||||||
|
-DEMBREE_TBBMALLOC_LIBRARY_NAME=tbbmalloc_static
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_embree
|
if(WIN32)
|
||||||
URL file://${PACKAGE_DIR}/${EMBREE_FILE}
|
set(EMBREE_BUILD_DIR ${BUILD_MODE}/)
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
|
list(APPEND EMBREE_EXTRA_ARGS
|
||||||
PREFIX ${BUILD_DIR}/embree
|
-DEMBREE_TBBMALLOC_LIBRARY_NAME=tbbmalloc_debug
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
|
-DEMBREE_TBB_LIBRARY_NAME=tbb_debug
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
)
|
||||||
INSTALL_DIR ${LIBDIR}/embree
|
endif()
|
||||||
)
|
else()
|
||||||
|
set(EMBREE_BUILD_DIR)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BLENDER_PLATFORM_ARM)
|
||||||
|
ExternalProject_Add(external_embree
|
||||||
|
GIT_REPOSITORY ${EMBREE_ARM_GIT}
|
||||||
|
GIT_TAG "blender-arm"
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
PREFIX ${BUILD_DIR}/embree
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/embree
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
ExternalProject_Add(external_embree
|
||||||
|
URL file://${PACKAGE_DIR}/${EMBREE_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${EMBREE_HASH_TYPE}=${EMBREE_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/embree
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/embree/src/external_embree < ${PATCH_DIR}/embree.diff
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/embree ${DEFAULT_CMAKE_FLAGS} ${EMBREE_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/embree
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_embree
|
external_embree
|
||||||
@@ -53,17 +88,17 @@ if(WIN32)
|
|||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
ExternalProject_Add_Step(external_embree after_install
|
ExternalProject_Add_Step(external_embree after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree3.lib ${HARVEST_TARGET}/embree/lib/embree3_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree3.lib ${HARVEST_TARGET}/embree/lib/embree3_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx.lib ${HARVEST_TARGET}/embree/lib/embree_avx_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx.lib ${HARVEST_TARGET}/embree/lib/embree_avx_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx2.lib ${HARVEST_TARGET}/embree/lib/embree_avx2_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_avx2.lib ${HARVEST_TARGET}/embree/lib/embree_avx2_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_sse42.lib ${HARVEST_TARGET}/embree/lib/embree_sse42_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/embree_sse42.lib ${HARVEST_TARGET}/embree/lib/embree_sse42_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/lexers.lib ${HARVEST_TARGET}/embree/lib/lexers_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/lexers.lib ${HARVEST_TARGET}/embree/lib/lexers_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/math.lib ${HARVEST_TARGET}/embree/lib/math_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/math.lib ${HARVEST_TARGET}/embree/lib/math_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/simd.lib ${HARVEST_TARGET}/embree/lib/simd_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/simd.lib ${HARVEST_TARGET}/embree/lib/simd_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/sys.lib ${HARVEST_TARGET}/embree/lib/sys_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/sys.lib ${HARVEST_TARGET}/embree/lib/sys_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/tasking.lib ${HARVEST_TARGET}/embree/lib/tasking_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/embree/lib/tasking.lib ${HARVEST_TARGET}/embree/lib/tasking_d.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,31 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
if(WIN32)
|
|
||||||
set(EPOXY_LIB_TYPE shared)
|
|
||||||
else()
|
|
||||||
set(EPOXY_LIB_TYPE static)
|
|
||||||
endif()
|
|
||||||
ExternalProject_Add(external_epoxy
|
|
||||||
URL file://${PACKAGE_DIR}/${EPOXY_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${EPOXY_HASH_TYPE}=${EPOXY_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/epoxy
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/epoxy/src/external_epoxy/ < ${PATCH_DIR}/epoxy.diff
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && ${MESON} setup --prefix ${LIBDIR}/epoxy --default-library ${EPOXY_LIB_TYPE} --libdir lib ${BUILD_DIR}/epoxy/src/external_epoxy-build ${BUILD_DIR}/epoxy/src/external_epoxy -Dtests=false
|
|
||||||
BUILD_COMMAND ninja
|
|
||||||
INSTALL_COMMAND ninja install
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_epoxy after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/epoxy/include ${HARVEST_TARGET}/epoxy/include
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/epoxy/bin/epoxy-0.dll ${HARVEST_TARGET}/epoxy/bin/epoxy-0.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/epoxy/lib/epoxy.lib ${HARVEST_TARGET}/epoxy/lib/epoxy.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_epoxy
|
|
||||||
# Needed for `MESON`.
|
|
||||||
external_python_site_packages
|
|
||||||
)
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(EXPAT_EXTRA_ARGS
|
set(EXPAT_EXTRA_ARGS
|
||||||
-DEXPAT_BUILD_DOCS=OFF
|
-DEXPAT_BUILD_DOCS=OFF
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
ExternalProject_Add(external_ffi
|
ExternalProject_Add(external_ffi
|
||||||
URL file://${PACKAGE_DIR}/${FFI_FILE}
|
URL file://${PACKAGE_DIR}/${FFI_FILE}
|
||||||
|
@@ -1,55 +1,25 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32)
|
set(FFMPEG_CFLAGS "-I${mingw_LIBDIR}/lame/include -I${mingw_LIBDIR}/openjpeg/include/ -I${mingw_LIBDIR}/ogg/include -I${mingw_LIBDIR}/vorbis/include -I${mingw_LIBDIR}/theora/include -I${mingw_LIBDIR}/opus/include -I${mingw_LIBDIR}/vpx/include -I${mingw_LIBDIR}/x264/include -I${mingw_LIBDIR}/xvidcore/include -I${mingw_LIBDIR}/zlib/include")
|
||||||
set(temp_LIBDIR ${mingw_LIBDIR})
|
set(FFMPEG_LDFLAGS "-L${mingw_LIBDIR}/lame/lib -L${mingw_LIBDIR}/openjpeg/lib -L${mingw_LIBDIR}/ogg/lib -L${mingw_LIBDIR}/vorbis/lib -L${mingw_LIBDIR}/theora/lib -L${mingw_LIBDIR}/opus/lib -L${mingw_LIBDIR}/vpx/lib -L${mingw_LIBDIR}/x264/lib -L${mingw_LIBDIR}/xvidcore/lib -L${mingw_LIBDIR}/zlib/lib")
|
||||||
else()
|
set(FFMPEG_EXTRA_FLAGS --pkg-config-flags=--static --extra-cflags=${FFMPEG_CFLAGS} --extra-ldflags=${FFMPEG_LDFLAGS})
|
||||||
set(temp_LIBDIR ${LIBDIR})
|
set(FFMPEG_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/x264/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR}:${mingw_LIBDIR}/vpx/lib/pkgconfig:${mingw_LIBDIR}/theora/lib/pkgconfig:${mingw_LIBDIR}/openjpeg/lib/pkgconfig:${mingw_LIBDIR}/opus/lib/pkgconfig:)
|
||||||
endif()
|
|
||||||
|
|
||||||
set(FFMPEG_CFLAGS "\
|
|
||||||
-I${temp_LIBDIR}/lame/include \
|
|
||||||
-I${temp_LIBDIR}/openjpeg/include/ \
|
|
||||||
-I${temp_LIBDIR}/ogg/include \
|
|
||||||
-I${temp_LIBDIR}/vorbis/include \
|
|
||||||
-I${temp_LIBDIR}/theora/include \
|
|
||||||
-I${temp_LIBDIR}/opus/include \
|
|
||||||
-I${temp_LIBDIR}/vpx/include \
|
|
||||||
-I${temp_LIBDIR}/x264/include \
|
|
||||||
-I${temp_LIBDIR}/xvidcore/include \
|
|
||||||
-I${temp_LIBDIR}/zlib/include \
|
|
||||||
-I${temp_LIBDIR}/aom/include"
|
|
||||||
)
|
|
||||||
set(FFMPEG_LDFLAGS "\
|
|
||||||
-L${temp_LIBDIR}/lame/lib \
|
|
||||||
-L${temp_LIBDIR}/openjpeg/lib \
|
|
||||||
-L${temp_LIBDIR}/ogg/lib \
|
|
||||||
-L${temp_LIBDIR}/vorbis/lib \
|
|
||||||
-L${temp_LIBDIR}/theora/lib \
|
|
||||||
-L${temp_LIBDIR}/opus/lib \
|
|
||||||
-L${temp_LIBDIR}/vpx/lib \
|
|
||||||
-L${temp_LIBDIR}/x264/lib \
|
|
||||||
-L${temp_LIBDIR}/xvidcore/lib \
|
|
||||||
-L${temp_LIBDIR}/zlib/lib \
|
|
||||||
-L${temp_LIBDIR}/aom/lib"
|
|
||||||
)
|
|
||||||
set(FFMPEG_EXTRA_FLAGS
|
|
||||||
--pkg-config-flags=--static
|
|
||||||
--extra-cflags=${FFMPEG_CFLAGS}
|
|
||||||
--extra-ldflags=${FFMPEG_LDFLAGS}
|
|
||||||
)
|
|
||||||
set(FFMPEG_ENV "PKG_CONFIG_PATH=\
|
|
||||||
${temp_LIBDIR}/openjpeg/lib/pkgconfig:\
|
|
||||||
${temp_LIBDIR}/x264/lib/pkgconfig:\
|
|
||||||
${temp_LIBDIR}/vorbis/lib/pkgconfig:\
|
|
||||||
${temp_LIBDIR}/ogg/lib/pkgconfig:\
|
|
||||||
${temp_LIBDIR}/vpx/lib/pkgconfig:\
|
|
||||||
${temp_LIBDIR}/theora/lib/pkgconfig:\
|
|
||||||
${temp_LIBDIR}/openjpeg/lib/pkgconfig:\
|
|
||||||
${temp_LIBDIR}/opus/lib/pkgconfig:\
|
|
||||||
${temp_LIBDIR}/aom/lib/pkgconfig"
|
|
||||||
)
|
|
||||||
|
|
||||||
unset(temp_LIBDIR)
|
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(FFMPEG_ENV set ${FFMPEG_ENV} &&)
|
set(FFMPEG_ENV set ${FFMPEG_ENV} &&)
|
||||||
@@ -62,6 +32,12 @@ if(WIN32)
|
|||||||
--enable-libopenjpeg
|
--enable-libopenjpeg
|
||||||
--disable-mediafoundation
|
--disable-mediafoundation
|
||||||
)
|
)
|
||||||
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
|
||||||
|
set(FFMPEG_EXTRA_FLAGS
|
||||||
|
${FFMPEG_EXTRA_FLAGS}
|
||||||
|
--x86asmexe=yasm
|
||||||
|
)
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
set(FFMPEG_EXTRA_FLAGS
|
set(FFMPEG_EXTRA_FLAGS
|
||||||
${FFMPEG_EXTRA_FLAGS}
|
${FFMPEG_EXTRA_FLAGS}
|
||||||
@@ -119,7 +95,6 @@ ExternalProject_Add(external_ffmpeg
|
|||||||
--disable-librtmp
|
--disable-librtmp
|
||||||
--enable-libx264
|
--enable-libx264
|
||||||
--enable-libxvid
|
--enable-libxvid
|
||||||
--enable-libaom
|
|
||||||
--disable-libopencore-amrnb
|
--disable-libopencore-amrnb
|
||||||
--disable-libopencore-amrwb
|
--disable-libopencore-amrwb
|
||||||
--disable-libdc1394
|
--disable-libdc1394
|
||||||
@@ -166,7 +141,6 @@ add_dependencies(
|
|||||||
external_vorbis
|
external_vorbis
|
||||||
external_ogg
|
external_ogg
|
||||||
external_lame
|
external_lame
|
||||||
external_aom
|
|
||||||
)
|
)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
add_dependencies(
|
add_dependencies(
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(FFTW_EXTRA_ARGS)
|
set(FFTW_EXTRA_ARGS)
|
||||||
|
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
ExternalProject_Add(external_flac
|
ExternalProject_Add(external_flac
|
||||||
URL file://${PACKAGE_DIR}/${FLAC_FILE}
|
URL file://${PACKAGE_DIR}/${FLAC_FILE}
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
ExternalProject_Add(external_flex
|
ExternalProject_Add(external_flex
|
||||||
URL file://${PACKAGE_DIR}/${FLEX_FILE}
|
URL file://${PACKAGE_DIR}/${FLEX_FILE}
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(FLEXBISON_EXTRA_ARGS)
|
set(FLEXBISON_EXTRA_ARGS)
|
||||||
|
|
||||||
|
@@ -1,15 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(FMT_EXTRA_ARGS
|
|
||||||
-DFMT_TEST=OFF
|
|
||||||
-DFMT_DOC=OFF
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_fmt
|
|
||||||
URL file://${PACKAGE_DIR}/${FMT_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${FMT_HASH_TYPE}=${FMT_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/fmt
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/fmt ${DEFAULT_CMAKE_FLAGS} ${FMT_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/fmt
|
|
||||||
)
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
|
@@ -1,18 +1,31 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(FREETYPE_EXTRA_ARGS
|
set(FREETYPE_EXTRA_ARGS
|
||||||
-DCMAKE_RELEASE_POSTFIX:STRING=2ST
|
-DCMAKE_RELEASE_POSTFIX:STRING=2ST
|
||||||
-DCMAKE_DEBUG_POSTFIX:STRING=2ST_d
|
-DCMAKE_DEBUG_POSTFIX:STRING=2ST_d
|
||||||
-DFT_DISABLE_BZIP2=ON
|
-DWITH_BZip2=OFF
|
||||||
-DFT_DISABLE_HARFBUZZ=ON
|
-DWITH_HarfBuzz=OFF
|
||||||
-DFT_DISABLE_PNG=ON
|
-DFT_WITH_HARFBUZZ=OFF
|
||||||
-DFT_REQUIRE_BROTLI=ON
|
-DFT_WITH_BZIP2=OFF
|
||||||
-DFT_REQUIRE_ZLIB=ON
|
-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE
|
||||||
-DPC_BROTLIDEC_INCLUDEDIR=${LIBDIR}/brotli/include
|
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE
|
||||||
-DPC_BROTLIDEC_LIBDIR=${LIBDIR}/brotli/lib
|
-DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE)
|
||||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
|
||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_freetype
|
ExternalProject_Add(external_freetype
|
||||||
URL file://${PACKAGE_DIR}/${FREETYPE_FILE}
|
URL file://${PACKAGE_DIR}/${FREETYPE_FILE}
|
||||||
@@ -23,19 +36,9 @@ ExternalProject_Add(external_freetype
|
|||||||
INSTALL_DIR ${LIBDIR}/freetype
|
INSTALL_DIR ${LIBDIR}/freetype
|
||||||
)
|
)
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_freetype
|
|
||||||
external_brotli
|
|
||||||
external_zlib
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||||
ExternalProject_Add_Step(external_freetype after_install
|
ExternalProject_Add_Step(external_freetype after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freetype ${HARVEST_TARGET}/freetype
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freetype ${HARVEST_TARGET}/freetype
|
||||||
# harfbuzz *NEEDS* to find freetype.lib and will not be conviced to take alternative names so just give it
|
|
||||||
# what it wants.
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/freetype/lib/freetype2st.lib ${LIBDIR}/freetype/lib/freetype.lib
|
|
||||||
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,31 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
set(CONFIGURE_ENV ${CONFIGURE_ENV_MSVC})
|
|
||||||
endif()
|
|
||||||
|
|
||||||
ExternalProject_Add(external_fribidi
|
|
||||||
URL file://${PACKAGE_DIR}/${FRIBIDI_FILE}
|
|
||||||
URL_HASH ${FRIBIDI_HASH_TYPE}=${FRIBIDI_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/fribidi
|
|
||||||
CONFIGURE_COMMAND ${MESON} setup --prefix ${LIBDIR}/fribidi -Ddocs=false --default-library static --libdir lib ${BUILD_DIR}/fribidi/src/external_fribidi-build ${BUILD_DIR}/fribidi/src/external_fribidi
|
|
||||||
BUILD_COMMAND ninja
|
|
||||||
INSTALL_COMMAND ninja install
|
|
||||||
INSTALL_DIR ${LIBDIR}/fribidi
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_fribidi
|
|
||||||
external_python
|
|
||||||
# Needed for `MESON`.
|
|
||||||
external_python_site_packages
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_fribidi after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/fribidi/include ${HARVEST_TARGET}/fribidi/include
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/fribidi/lib/libfribidi.a ${HARVEST_TARGET}/fribidi/lib/libfribidi.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
32
build_files/build_environment/cmake/glew.cmake
Normal file
32
build_files/build_environment/cmake/glew.cmake
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
|
set(GLEW_EXTRA_ARGS
|
||||||
|
-DBUILD_UTILS=Off
|
||||||
|
-DBUILD_SHARED_LIBS=Off
|
||||||
|
)
|
||||||
|
|
||||||
|
ExternalProject_Add(external_glew
|
||||||
|
URL file://${PACKAGE_DIR}/${GLEW_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${GLEW_HASH_TYPE}=${GLEW_HASH}
|
||||||
|
PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_glew.txt ${BUILD_DIR}/glew/src/external_glew/CMakeLists.txt
|
||||||
|
PREFIX ${BUILD_DIR}/glew
|
||||||
|
CMAKE_ARGS -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glew ${DEFAULT_CMAKE_FLAGS} ${GLEW_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/glew
|
||||||
|
)
|
28
build_files/build_environment/cmake/glfw.cmake
Normal file
28
build_files/build_environment/cmake/glfw.cmake
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
|
set(GLFW_EXTRA_ARGS)
|
||||||
|
|
||||||
|
ExternalProject_Add(external_glfw
|
||||||
|
URL file://${PACKAGE_DIR}/${GLFW_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${GLFW_HASH_TYPE}=${GLFW_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/glfw
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/glfw -Wno-dev ${DEFAULT_CMAKE_FLAGS} ${GLFW_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/glfw
|
||||||
|
)
|
@@ -1,13 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(GMMLIB_EXTRA_ARGS
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_gmmlib
|
|
||||||
URL file://${PACKAGE_DIR}/${GMMLIB_FILE}
|
|
||||||
URL_HASH ${GMMLIB_HASH_TYPE}=${GMMLIB_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/gmmlib
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/gmmlib ${DEFAULT_CMAKE_FLAGS} ${GMMLIB_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/gmmlib
|
|
||||||
)
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(GMP_EXTRA_ARGS -enable-cxx)
|
set(GMP_EXTRA_ARGS -enable-cxx)
|
||||||
|
|
||||||
@@ -22,7 +38,6 @@ elseif(UNIX AND NOT APPLE)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Boolean crashes with Arm assembly, see T103423.
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
if(BLENDER_PLATFORM_ARM)
|
||||||
set(GMP_OPTIONS
|
set(GMP_OPTIONS
|
||||||
${GMP_OPTIONS}
|
${GMP_OPTIONS}
|
||||||
@@ -35,7 +50,6 @@ ExternalProject_Add(external_gmp
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${GMP_HASH_TYPE}=${GMP_HASH}
|
URL_HASH ${GMP_HASH_TYPE}=${GMP_HASH}
|
||||||
PREFIX ${BUILD_DIR}/gmp
|
PREFIX ${BUILD_DIR}/gmp
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/gmp/src/external_gmp < ${PATCH_DIR}/gmp.diff
|
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/gmp ${GMP_OPTIONS} ${GMP_EXTRA_ARGS}
|
CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/gmp ${GMP_OPTIONS} ${GMP_EXTRA_ARGS}
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make install
|
||||||
@@ -48,21 +62,19 @@ endif()
|
|||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||||
ExternalProject_Add_Step(external_gmp after_install
|
ExternalProject_Add_Step(external_gmp after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
||||||
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/gmp/bin/libgmp-10.dll ${HARVEST_TARGET}/gmp/lib/libgmp-10.dll
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/gmp/bin/libgmp-10.dll ${HARVEST_TARGET}/gmp/lib/libgmp-10.dll
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib ${HARVEST_TARGET}/gmp/lib/libgmp-10.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib ${HARVEST_TARGET}/gmp/lib/libgmp-10.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/gmp/include ${HARVEST_TARGET}/gmp/include
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/gmp/include ${HARVEST_TARGET}/gmp/include
|
||||||
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Debug AND WIN32)
|
if(BUILD_MODE STREQUAL Debug AND WIN32)
|
||||||
ExternalProject_Add_Step(external_gmp after_install
|
ExternalProject_Add_Step(external_gmp after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
||||||
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
||||||
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,61 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
set(HARFBUZZ_CONFIGURE_ENV ${CONFIGURE_ENV_MSVC})
|
|
||||||
set(HARFBUZZ_PKG_ENV FREETYPE_DIR=${LIBDIR}/freetype)
|
|
||||||
else()
|
|
||||||
set(HARFBUZZ_CONFIGURE_ENV ${CONFIGURE_ENV})
|
|
||||||
set(HARFBUZZ_PKG_ENV "PKG_CONFIG_PATH=\
|
|
||||||
${LIBDIR}/freetype/lib/pkgconfig:\
|
|
||||||
${LIBDIR}/brotli/lib/pkgconfig:\
|
|
||||||
${LIBDIR}/lib/python3.10/pkgconfig:\
|
|
||||||
$PKG_CONFIG_PATH"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(HARFBUZZ_EXTRA_OPTIONS
|
|
||||||
-Dtests=disabled
|
|
||||||
-Dfreetype=enabled
|
|
||||||
-Dglib=disabled
|
|
||||||
-Dgobject=disabled
|
|
||||||
# Only used for command line utilities,
|
|
||||||
# disable as this would add an addition & unnecessary build-dependency.
|
|
||||||
-Dcairo=disabled
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_harfbuzz
|
|
||||||
URL file://${PACKAGE_DIR}/${HARFBUZZ_FILE}
|
|
||||||
URL_HASH ${HARFBUZZ_HASH_TYPE}=${HARFBUZZ_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/harfbuzz
|
|
||||||
|
|
||||||
CONFIGURE_COMMAND ${HARFBUZZ_CONFIGURE_ENV} &&
|
|
||||||
${CMAKE_COMMAND} -E env ${HARFBUZZ_PKG_ENV}
|
|
||||||
${MESON} setup
|
|
||||||
--prefix ${LIBDIR}/harfbuzz ${HARFBUZZ_EXTRA_OPTIONS}
|
|
||||||
--default-library static
|
|
||||||
--libdir lib
|
|
||||||
${BUILD_DIR}/harfbuzz/src/external_harfbuzz-build
|
|
||||||
${BUILD_DIR}/harfbuzz/src/external_harfbuzz
|
|
||||||
|
|
||||||
BUILD_COMMAND ninja
|
|
||||||
INSTALL_COMMAND ninja install
|
|
||||||
INSTALL_DIR ${LIBDIR}/harfbuzz
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_harfbuzz
|
|
||||||
external_python
|
|
||||||
external_freetype
|
|
||||||
# Needed for `MESON`.
|
|
||||||
external_python_site_packages
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_harfbuzz after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/harfbuzz/include ${HARVEST_TARGET}/harfbuzz/include
|
|
||||||
# We do not use the subset API currently, so copying only the main library will suffice for now
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/harfbuzz/lib/libharfbuzz.a ${HARVEST_TARGET}/harfbuzz/lib/libharfbuzz.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(HARU_EXTRA_ARGS
|
set(HARU_EXTRA_ARGS
|
||||||
-DLIBHPDF_SHARED=OFF
|
-DLIBHPDF_SHARED=OFF
|
||||||
|
@@ -1,7 +1,23 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# Copy all generated files to the proper structure as blender prefers
|
# Copy all generated files to the proper strucure as blender prefers
|
||||||
########################################################################
|
########################################################################
|
||||||
|
|
||||||
if(NOT DEFINED HARVEST_TARGET)
|
if(NOT DEFINED HARVEST_TARGET)
|
||||||
@@ -11,301 +27,178 @@ message("HARVEST_TARGET = ${HARVEST_TARGET}")
|
|||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
add_custom_target(Harvest_Release_Results
|
add_custom_target(Harvest_Release_Results
|
||||||
COMMAND # JPEG rename lib-file + copy include.
|
COMMAND # jpeg rename libfile + copy include
|
||||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
|
${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpeg-static.lib ${HARVEST_TARGET}/jpeg/lib/libjpeg.lib &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpeg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/jpg/include/ ${HARVEST_TARGET}/jpeg/include/ &&
|
||||||
# PNG.
|
# png
|
||||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
|
${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static.lib ${HARVEST_TARGET}/png/lib/libpng.lib &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/ &&
|
||||||
# FREEGLUT -> OPENGL.
|
# freeglut-> opengl
|
||||||
${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib &&
|
${CMAKE_COMMAND} -E copy ${LIBDIR}/freeglut/lib/freeglut_static.lib ${HARVEST_TARGET}/opengl/lib/freeglut_static.lib &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/freeglut/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
||||||
|
# glew-> opengl
|
||||||
DEPENDS
|
${CMAKE_COMMAND} -E copy ${LIBDIR}/glew/lib/libglew32.lib ${HARVEST_TARGET}/opengl/lib/glew.lib &&
|
||||||
)
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/glew/include/ ${HARVEST_TARGET}/opengl/include/ &&
|
||||||
endif()
|
# tiff
|
||||||
|
${CMAKE_COMMAND} -E copy ${LIBDIR}/tiff/lib/tiff.lib ${HARVEST_TARGET}/tiff/lib/libtiff.lib &&
|
||||||
else()
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/tiff/include/ ${HARVEST_TARGET}/tiff/include/
|
||||||
|
DEPENDS
|
||||||
function(harvest from to)
|
|
||||||
set(pattern "")
|
|
||||||
foreach(f ${ARGN})
|
|
||||||
set(pattern ${f})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if(pattern STREQUAL "")
|
|
||||||
get_filename_component(dirpath ${to} DIRECTORY)
|
|
||||||
get_filename_component(filename ${to} NAME)
|
|
||||||
install(
|
|
||||||
FILES ${LIBDIR}/${from}
|
|
||||||
DESTINATION ${HARVEST_TARGET}/${dirpath}
|
|
||||||
RENAME ${filename}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
install(
|
|
||||||
DIRECTORY ${LIBDIR}/${from}/
|
|
||||||
DESTINATION ${HARVEST_TARGET}/${to}
|
|
||||||
USE_SOURCE_PERMISSIONS
|
|
||||||
FILES_MATCHING PATTERN ${pattern}
|
|
||||||
PATTERN "pkgconfig" EXCLUDE
|
|
||||||
PATTERN "cmake" EXCLUDE
|
|
||||||
PATTERN "__pycache__" EXCLUDE
|
|
||||||
PATTERN "tests" EXCLUDE
|
|
||||||
PATTERN "meson*" EXCLUDE
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Set rpath on shared libraries to $ORIGIN since all will be installed in the same
|
|
||||||
# lib folder, and remove any absolute paths.
|
|
||||||
#
|
|
||||||
# Ideally this would be done as part of the Blender build since it makes assumptions
|
|
||||||
# about where the files will be installed. However it would add patchelf as a new
|
|
||||||
# dependency for building.
|
|
||||||
#
|
|
||||||
# Also removes versioned symlinks, which give errors with macOS notarization.
|
|
||||||
if(APPLE)
|
|
||||||
set(set_rpath_cmd python3 ${CMAKE_CURRENT_SOURCE_DIR}/darwin/set_rpath.py @loader_path)
|
|
||||||
else()
|
|
||||||
set(set_rpath_cmd patchelf --set-rpath $ORIGIN)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
function(harvest_rpath_lib from to pattern)
|
|
||||||
harvest(${from} ${to} ${pattern})
|
|
||||||
|
|
||||||
install(CODE "\
|
|
||||||
cmake_policy(SET CMP0009 NEW)\n
|
|
||||||
file(GLOB_RECURSE shared_libs ${HARVEST_TARGET}/${to}/${pattern}) \n
|
|
||||||
foreach(f \${shared_libs}) \n
|
|
||||||
if(IS_SYMLINK \${f})\n
|
|
||||||
if(APPLE)\n
|
|
||||||
file(REMOVE_RECURSE \${f})
|
|
||||||
endif()\n
|
|
||||||
else()\n
|
|
||||||
execute_process(COMMAND ${set_rpath_cmd} \${f}) \n
|
|
||||||
endif()\n
|
|
||||||
endforeach()")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Set rpath on utility binaries assuming they are run from their install location.
|
|
||||||
function(harvest_rpath_bin from to pattern)
|
|
||||||
harvest(${from} ${to} ${pattern})
|
|
||||||
|
|
||||||
install(CODE "\
|
|
||||||
file(GLOB_RECURSE shared_libs ${HARVEST_TARGET}/${to}/${pattern}) \n
|
|
||||||
foreach(f \${shared_libs}) \n
|
|
||||||
execute_process(COMMAND ${set_rpath_cmd}/../lib; \${f}) \n
|
|
||||||
endforeach()")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
# Set rpath on Python module to point to the shared libraries folder in the Blender
|
|
||||||
# installation.
|
|
||||||
function(harvest_rpath_python from to pattern)
|
|
||||||
harvest(${from} ${to} ${pattern})
|
|
||||||
|
|
||||||
install(CODE "\
|
|
||||||
file(GLOB_RECURSE shared_libs ${HARVEST_TARGET}/${to}/${pattern}\.so*) \n
|
|
||||||
foreach(f \${shared_libs}) \n
|
|
||||||
if(IS_SYMLINK \${f})\n
|
|
||||||
if(APPLE)\n
|
|
||||||
file(REMOVE_RECURSE \${f})
|
|
||||||
endif()\n
|
|
||||||
else()\n
|
|
||||||
get_filename_component(f_dir \${f} DIRECTORY) \n
|
|
||||||
file(RELATIVE_PATH relative_dir \${f_dir} ${HARVEST_TARGET}) \n
|
|
||||||
execute_process(COMMAND ${set_rpath_cmd}/\${relative_dir}../lib \${f}) \n
|
|
||||||
endif()\n
|
|
||||||
endforeach()")
|
|
||||||
endfunction()
|
|
||||||
|
|
||||||
harvest(alembic/include alembic/include "*.h")
|
|
||||||
harvest(alembic/lib/libAlembic.a alembic/lib/libAlembic.a)
|
|
||||||
harvest_rpath_bin(alembic/bin alembic/bin "*")
|
|
||||||
harvest(brotli/include brotli/include "*.h")
|
|
||||||
harvest(brotli/lib brotli/lib "*.a")
|
|
||||||
harvest(boost/include boost/include "*")
|
|
||||||
harvest_rpath_lib(boost/lib boost/lib "*${SHAREDLIBEXT}*")
|
|
||||||
harvest(imath/include imath/include "*.h")
|
|
||||||
harvest_rpath_lib(imath/lib imath/lib "*${SHAREDLIBEXT}*")
|
|
||||||
harvest(ffmpeg/include ffmpeg/include "*.h")
|
|
||||||
harvest(ffmpeg/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(fftw3/include fftw3/include "*.h")
|
|
||||||
harvest(fftw3/lib fftw3/lib "*.a")
|
|
||||||
harvest(flac/lib sndfile/lib "libFLAC.a")
|
|
||||||
harvest(freetype/include freetype/include "*.h")
|
|
||||||
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
|
||||||
harvest(fribidi/include fribidi/include "*.h")
|
|
||||||
harvest(fribidi/lib fribidi/lib "*.a")
|
|
||||||
harvest(epoxy/include epoxy/include "*.h")
|
|
||||||
harvest(epoxy/lib epoxy/lib "*.a")
|
|
||||||
harvest(gmp/include gmp/include "*.h")
|
|
||||||
harvest(gmp/lib gmp/lib "*.a")
|
|
||||||
harvest(harfbuzz/include harfbuzz/include "*.h")
|
|
||||||
harvest(harfbuzz/lib harfbuzz/lib "*.a")
|
|
||||||
harvest(jemalloc/include jemalloc/include "*.h")
|
|
||||||
harvest(jemalloc/lib jemalloc/lib "*.a")
|
|
||||||
harvest(jpeg/include jpeg/include "*.h")
|
|
||||||
harvest(jpeg/lib jpeg/lib "libjpeg.a")
|
|
||||||
harvest(lame/lib ffmpeg/lib "*.a")
|
|
||||||
if(NOT APPLE)
|
|
||||||
harvest(level-zero/include/level_zero level-zero/include/level_zero "*.h")
|
|
||||||
harvest(level-zero/lib level-zero/lib "*${SHAREDLIBEXT}*")
|
|
||||||
endif()
|
|
||||||
harvest(llvm/bin llvm/bin "clang-format")
|
|
||||||
if(BUILD_CLANG_TOOLS)
|
|
||||||
harvest(llvm/bin llvm/bin "clang-tidy")
|
|
||||||
harvest(llvm/share/clang llvm/share "run-clang-tidy.py")
|
|
||||||
endif()
|
|
||||||
harvest(llvm/include llvm/include "*")
|
|
||||||
harvest(llvm/bin llvm/bin "llvm-config")
|
|
||||||
harvest(llvm/lib llvm/lib "libLLVM*.a")
|
|
||||||
harvest(llvm/lib llvm/lib "libclang*.a")
|
|
||||||
harvest(llvm/lib/clang llvm/lib/clang "*.h")
|
|
||||||
if(APPLE)
|
|
||||||
harvest(openmp/lib openmp/lib "libomp.dylib")
|
|
||||||
harvest(openmp/include openmp/include "*.h")
|
|
||||||
endif()
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
|
||||||
harvest(sse2neon sse2neon "*.h")
|
|
||||||
endif()
|
|
||||||
harvest(ogg/lib ffmpeg/lib "*.a")
|
|
||||||
harvest(openal/include openal/include "*.h")
|
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
harvest(openal/lib openal/lib "*.a")
|
|
||||||
|
|
||||||
harvest(zlib/include zlib/include "*.h")
|
|
||||||
harvest(zlib/lib zlib/lib "*.a")
|
|
||||||
|
|
||||||
harvest(xml2/include xml2/include "*.h")
|
|
||||||
harvest(xml2/lib xml2/lib "*.a")
|
|
||||||
|
|
||||||
harvest(
|
|
||||||
wayland-protocols/share/wayland-protocols
|
|
||||||
wayland-protocols/share/wayland-protocols/
|
|
||||||
"*.xml"
|
|
||||||
)
|
|
||||||
harvest(wayland/bin wayland/bin "wayland-scanner")
|
|
||||||
harvest(wayland/include wayland/include "*.h")
|
|
||||||
harvest(wayland_libdecor/include wayland_libdecor/include "*.h")
|
|
||||||
else()
|
|
||||||
harvest(blosc/lib openvdb/lib "*.a")
|
|
||||||
harvest(xml2/lib opencollada/lib "*.a")
|
|
||||||
endif()
|
|
||||||
harvest(opencollada/include/opencollada opencollada/include "*.h")
|
|
||||||
harvest(opencollada/lib/opencollada opencollada/lib "*.a")
|
|
||||||
harvest(opencolorio/include opencolorio/include "*.h")
|
|
||||||
harvest_rpath_lib(opencolorio/lib opencolorio/lib "*${SHAREDLIBEXT}*")
|
|
||||||
harvest_rpath_python(
|
|
||||||
opencolorio/lib/python${PYTHON_SHORT_VERSION}
|
|
||||||
python/lib/python${PYTHON_SHORT_VERSION}
|
|
||||||
"*"
|
|
||||||
)
|
)
|
||||||
harvest(openexr/include openexr/include "*.h")
|
endif()
|
||||||
harvest_rpath_lib(openexr/lib openexr/lib "*${SHAREDLIBEXT}*")
|
|
||||||
harvest_rpath_bin(openimageio/bin openimageio/bin "idiff")
|
else(WIN32)
|
||||||
harvest_rpath_bin(openimageio/bin openimageio/bin "maketx")
|
|
||||||
harvest_rpath_bin(openimageio/bin openimageio/bin "oiiotool")
|
function(harvest from to)
|
||||||
harvest(openimageio/include openimageio/include "*")
|
set(pattern "")
|
||||||
harvest_rpath_lib(openimageio/lib openimageio/lib "*${SHAREDLIBEXT}*")
|
foreach(f ${ARGN})
|
||||||
harvest_rpath_python(
|
set(pattern ${f})
|
||||||
openimageio/lib/python${PYTHON_SHORT_VERSION}
|
endforeach()
|
||||||
python/lib/python${PYTHON_SHORT_VERSION}
|
|
||||||
"*"
|
if(pattern STREQUAL "")
|
||||||
)
|
get_filename_component(dirpath ${to} DIRECTORY)
|
||||||
harvest(openimagedenoise/include openimagedenoise/include "*")
|
get_filename_component(filename ${to} NAME)
|
||||||
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
install(
|
||||||
harvest(embree/include embree/include "*.h")
|
FILES ${LIBDIR}/${from}
|
||||||
harvest(embree/lib embree/lib "*.a")
|
DESTINATION ${HARVEST_TARGET}/${dirpath}
|
||||||
harvest(openpgl/include openpgl/include "*.h")
|
RENAME ${filename})
|
||||||
harvest(openpgl/lib openpgl/lib "*.a")
|
else()
|
||||||
harvest(openpgl/lib/cmake/openpgl-${OPENPGL_SHORT_VERSION} openpgl/lib/cmake/openpgl "*.cmake")
|
install(
|
||||||
harvest(openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION} openjpeg/include "*.h")
|
DIRECTORY ${LIBDIR}/${from}/
|
||||||
harvest(openjpeg/lib openjpeg/lib "*.a")
|
DESTINATION ${HARVEST_TARGET}/${to}
|
||||||
harvest(opensubdiv/include opensubdiv/include "*.h")
|
USE_SOURCE_PERMISSIONS
|
||||||
harvest_rpath_lib(opensubdiv/lib opensubdiv/lib "*${SHAREDLIBEXT}*")
|
FILES_MATCHING PATTERN ${pattern}
|
||||||
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
PATTERN "pkgconfig" EXCLUDE
|
||||||
harvest(openvdb/include/nanovdb openvdb/include/nanovdb "*.h")
|
PATTERN "cmake" EXCLUDE
|
||||||
harvest_rpath_lib(openvdb/lib openvdb/lib "*${SHAREDLIBEXT}*")
|
PATTERN "__pycache__" EXCLUDE
|
||||||
harvest_rpath_python(
|
PATTERN "tests" EXCLUDE)
|
||||||
openvdb/lib/python${PYTHON_SHORT_VERSION}
|
endif()
|
||||||
python/lib/python${PYTHON_SHORT_VERSION}
|
endfunction()
|
||||||
"*pyopenvdb*"
|
|
||||||
)
|
harvest(alembic/include alembic/include "*.h")
|
||||||
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
harvest(alembic/lib/libAlembic.a alembic/lib/libAlembic.a)
|
||||||
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
harvest(alembic/bin alembic/bin "*")
|
||||||
harvest_rpath_bin(osl/bin osl/bin "oslc")
|
harvest(boost/include boost/include "*")
|
||||||
harvest(osl/include osl/include "*.h")
|
harvest(boost/lib boost/lib "*.a")
|
||||||
harvest(osl/lib osl/lib "*.a")
|
harvest(ffmpeg/include ffmpeg/include "*.h")
|
||||||
harvest(osl/share/OSL/shaders osl/share/OSL/shaders "*.h")
|
harvest(ffmpeg/lib ffmpeg/lib "*.a")
|
||||||
harvest(png/include png/include "*.h")
|
harvest(fftw3/include fftw3/include "*.h")
|
||||||
harvest(png/lib png/lib "*.a")
|
harvest(fftw3/lib fftw3/lib "*.a")
|
||||||
harvest(pugixml/include pugixml/include "*.hpp")
|
harvest(flac/lib sndfile/lib "libFLAC.a")
|
||||||
harvest(pugixml/lib pugixml/lib "*.a")
|
harvest(freetype/include freetype/include "*.h")
|
||||||
harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}")
|
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
||||||
harvest(python/include python/include "*h")
|
harvest(glew/include glew/include "*.h")
|
||||||
harvest(python/lib python/lib "*")
|
harvest(glew/lib glew/lib "*.a")
|
||||||
harvest(sdl/include/SDL2 sdl/include "*.h")
|
harvest(gmp/include gmp/include "*.h")
|
||||||
harvest(sdl/lib sdl/lib "libSDL2.a")
|
harvest(gmp/lib gmp/lib "*.a")
|
||||||
harvest(sndfile/include sndfile/include "*.h")
|
harvest(jemalloc/include jemalloc/include "*.h")
|
||||||
harvest(sndfile/lib sndfile/lib "*.a")
|
harvest(jemalloc/lib jemalloc/lib "*.a")
|
||||||
harvest(spnav/include spnav/include "*.h")
|
harvest(jpg/include jpeg/include "*.h")
|
||||||
harvest(spnav/lib spnav/lib "*.a")
|
harvest(jpg/lib jpeg/lib "libjpeg.a")
|
||||||
harvest(tbb/include tbb/include "*.h")
|
harvest(lame/lib ffmpeg/lib "*.a")
|
||||||
harvest_rpath_lib(tbb/lib tbb/lib "libtbb${SHAREDLIBEXT}")
|
harvest(llvm/bin llvm/bin "clang-format")
|
||||||
harvest(theora/lib ffmpeg/lib "*.a")
|
if(BUILD_CLANG_TOOLS)
|
||||||
harvest(tiff/include tiff/include "*.h")
|
harvest(llvm/bin llvm/bin "clang-tidy")
|
||||||
harvest(tiff/lib tiff/lib "*.a")
|
harvest(llvm/share/clang llvm/share "run-clang-tidy.py")
|
||||||
harvest(vorbis/lib ffmpeg/lib "*.a")
|
endif()
|
||||||
harvest(opus/lib ffmpeg/lib "*.a")
|
harvest(llvm/include llvm/include "*")
|
||||||
harvest(vpx/lib ffmpeg/lib "*.a")
|
harvest(llvm/bin llvm/bin "llvm-config")
|
||||||
harvest(x264/lib ffmpeg/lib "*.a")
|
harvest(llvm/lib llvm/lib "libLLVM*.a")
|
||||||
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
harvest(llvm/lib llvm/lib "libclang*.a")
|
||||||
harvest(aom/lib ffmpeg/lib "*.a")
|
harvest(llvm/lib/clang llvm/lib/clang "*.h")
|
||||||
harvest(webp/lib webp/lib "*.a")
|
if(APPLE)
|
||||||
harvest(webp/include webp/include "*.h")
|
harvest(openmp/lib openmp/lib "*")
|
||||||
harvest(usd/include usd/include "*.h")
|
harvest(openmp/include openmp/include "*.h")
|
||||||
harvest_rpath_lib(usd/lib usd/lib "libusd_ms${SHAREDLIBEXT}")
|
endif()
|
||||||
harvest(usd/lib/usd usd/lib/usd "*")
|
if(BLENDER_PLATFORM_ARM)
|
||||||
harvest_rpath_python(
|
harvest(sse2neon sse2neon "*.h")
|
||||||
usd/lib/python/pxr
|
endif()
|
||||||
python/lib/python${PYTHON_SHORT_VERSION}/site-packages/pxr
|
harvest(ogg/lib ffmpeg/lib "*.a")
|
||||||
"*"
|
harvest(openal/include openal/include "*.h")
|
||||||
)
|
if(UNIX AND NOT APPLE)
|
||||||
harvest(usd/plugin usd/plugin "*")
|
harvest(openal/lib openal/lib "*.a")
|
||||||
harvest(materialx/include materialx/include "*.h")
|
|
||||||
harvest_rpath_lib(materialx/lib materialx/lib "*${SHAREDLIBEXT}*")
|
harvest(blosc/include blosc/include "*.h")
|
||||||
harvest(materialx/libraries materialx/libraries "*")
|
harvest(blosc/lib blosc/lib "*.a")
|
||||||
harvest(materialx/lib/cmake/MaterialX materialx/lib/cmake/MaterialX "*.cmake")
|
|
||||||
harvest_rpath_python(
|
harvest(zlib/include zlib/include "*.h")
|
||||||
materialx/python/MaterialX
|
harvest(zlib/lib zlib/lib "*.a")
|
||||||
python/lib/python${PYTHON_SHORT_VERSION}/site-packages/MaterialX
|
|
||||||
"*"
|
harvest(xml2/include xml2/include "*.h")
|
||||||
)
|
harvest(xml2/lib xml2/lib "*.a")
|
||||||
# We do not need anything from the resources folder, but the MaterialX config
|
|
||||||
# file will complain if the folder does not exist, so just copy the readme.md
|
harvest(wayland-protocols/share/wayland-protocols wayland-protocols/share/wayland-protocols/ "*.xml")
|
||||||
# files to ensure the folder will exist.
|
else()
|
||||||
harvest(materialx/resources materialx/resources "README.md")
|
harvest(blosc/lib openvdb/lib "*.a")
|
||||||
harvest(potrace/include potrace/include "*.h")
|
harvest(xml2/lib opencollada/lib "*.a")
|
||||||
harvest(potrace/lib potrace/lib "*.a")
|
endif()
|
||||||
harvest(haru/include haru/include "*.h")
|
harvest(opencollada/include/opencollada opencollada/include "*.h")
|
||||||
harvest(haru/lib haru/lib "*.a")
|
harvest(opencollada/lib/opencollada opencollada/lib "*.a")
|
||||||
harvest(zstd/include zstd/include "*.h")
|
harvest(opencolorio/include opencolorio/include "*.h")
|
||||||
harvest(zstd/lib zstd/lib "*.a")
|
harvest(opencolorio/lib opencolorio/lib "*.a")
|
||||||
harvest(shaderc shaderc "*")
|
harvest(opencolorio/lib/static opencolorio/lib "*.a")
|
||||||
harvest(vulkan_headers vulkan "*")
|
harvest(openexr/include openexr/include "*.h")
|
||||||
harvest_rpath_lib(vulkan_loader/lib vulkan/lib "*${SHAREDLIBEXT}*")
|
harvest(openexr/lib openexr/lib "*.a")
|
||||||
if(APPLE)
|
harvest(openimageio/bin openimageio/bin "idiff")
|
||||||
harvest(vulkan_loader/loader vulkan/loader "*")
|
harvest(openimageio/bin openimageio/bin "maketx")
|
||||||
endif()
|
harvest(openimageio/bin openimageio/bin "oiiotool")
|
||||||
|
harvest(openimageio/include openimageio/include "*")
|
||||||
if(UNIX AND NOT APPLE)
|
harvest(openimageio/lib openimageio/lib "*.a")
|
||||||
harvest(libglu/lib mesa/lib "*${SHAREDLIBEXT}*")
|
harvest(openimagedenoise/include openimagedenoise/include "*")
|
||||||
harvest(mesa/lib64 mesa/lib "*${SHAREDLIBEXT}*")
|
harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
|
||||||
|
harvest(embree/include embree/include "*.h")
|
||||||
harvest(dpcpp dpcpp "*")
|
harvest(embree/lib embree/lib "*.a")
|
||||||
harvest(igc dpcpp/lib/igc "*")
|
harvest(openjpeg/include/openjpeg-2.3 openjpeg/include "*.h")
|
||||||
harvest(ocloc dpcpp/lib/ocloc "*")
|
harvest(openjpeg/lib openjpeg/lib "*.a")
|
||||||
endif()
|
harvest(opensubdiv/include opensubdiv/include "*.h")
|
||||||
|
harvest(opensubdiv/lib opensubdiv/lib "*.a")
|
||||||
|
harvest(openvdb/include/openvdb openvdb/include/openvdb "*.h")
|
||||||
|
harvest(openvdb/lib openvdb/lib "*.a")
|
||||||
|
harvest(nanovdb/nanovdb nanovdb/include/nanovdb "*.h")
|
||||||
|
harvest(xr_openxr_sdk/include/openxr xr_openxr_sdk/include/openxr "*.h")
|
||||||
|
harvest(xr_openxr_sdk/lib xr_openxr_sdk/lib "*.a")
|
||||||
|
harvest(osl/bin osl/bin "oslc")
|
||||||
|
harvest(osl/include osl/include "*.h")
|
||||||
|
harvest(osl/lib osl/lib "*.a")
|
||||||
|
harvest(osl/share/OSL/shaders osl/share/OSL/shaders "*.h")
|
||||||
|
harvest(png/include png/include "*.h")
|
||||||
|
harvest(png/lib png/lib "*.a")
|
||||||
|
harvest(pugixml/include pugixml/include "*.hpp")
|
||||||
|
harvest(pugixml/lib pugixml/lib "*.a")
|
||||||
|
harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}")
|
||||||
|
harvest(python/include python/include "*h")
|
||||||
|
harvest(python/lib python/lib "*")
|
||||||
|
harvest(sdl/include/SDL2 sdl/include "*.h")
|
||||||
|
harvest(sdl/lib sdl/lib "libSDL2.a")
|
||||||
|
harvest(sndfile/include sndfile/include "*.h")
|
||||||
|
harvest(sndfile/lib sndfile/lib "*.a")
|
||||||
|
harvest(spnav/include spnav/include "*.h")
|
||||||
|
harvest(spnav/lib spnav/lib "*.a")
|
||||||
|
harvest(tbb/include tbb/include "*.h")
|
||||||
|
harvest(tbb/lib/libtbb_static.a tbb/lib/libtbb.a)
|
||||||
|
harvest(theora/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(tiff/include tiff/include "*.h")
|
||||||
|
harvest(tiff/lib tiff/lib "*.a")
|
||||||
|
harvest(vorbis/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(opus/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(vpx/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(webp/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(x264/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(xvidcore/lib ffmpeg/lib "*.a")
|
||||||
|
harvest(usd/include usd/include "*.h")
|
||||||
|
harvest(usd/lib/usd usd/lib/usd "*")
|
||||||
|
harvest(usd/plugin usd/plugin "*")
|
||||||
|
harvest(potrace/include potrace/include "*.h")
|
||||||
|
harvest(potrace/lib potrace/lib "*.a")
|
||||||
|
harvest(haru/include haru/include "*.h")
|
||||||
|
harvest(haru/lib haru/lib "*.a")
|
||||||
|
harvest(zstd/include zstd/include "*.h")
|
||||||
|
harvest(zstd/lib zstd/lib "*.a")
|
||||||
|
|
||||||
|
if(UNIX AND NOT APPLE)
|
||||||
|
harvest(libglu/lib mesa/lib "*.so*")
|
||||||
|
harvest(mesa/lib64 mesa/lib "*.so*")
|
||||||
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(ICONV_EXTRA_ARGS)
|
set(ICONV_EXTRA_ARGS)
|
||||||
|
|
||||||
|
@@ -1,126 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
unpack_only(igc_vcintrinsics)
|
|
||||||
unpack_only(igc_spirv_headers)
|
|
||||||
unpack_only(igc_spirv_tools)
|
|
||||||
|
|
||||||
#
|
|
||||||
# igc_opencl_clang contains patches that need to be applied
|
|
||||||
# to external_igc_llvm and igc_spirv_translator, we unpack
|
|
||||||
# igc_opencl_clang first, then have the patch stages of
|
|
||||||
# external_igc_llvm and igc_spirv_translator apply them.
|
|
||||||
#
|
|
||||||
|
|
||||||
ExternalProject_Add(external_igc_opencl_clang
|
|
||||||
URL file://${PACKAGE_DIR}/${IGC_OPENCL_CLANG_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${IGC_OPENCL_CLANG_HASH_TYPE}=${IGC_OPENCL_CLANG_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/igc_opencl_clang
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/igc_opencl_clang/src/external_igc_opencl_clang/ < ${PATCH_DIR}/igc_opencl_clang.diff
|
|
||||||
)
|
|
||||||
|
|
||||||
set(IGC_OPENCL_CLANG_PATCH_DIR ${BUILD_DIR}/igc_opencl_clang/src/external_igc_opencl_clang/patches)
|
|
||||||
set(IGC_LLVM_SOURCE_DIR ${BUILD_DIR}/igc_llvm/src/external_igc_llvm)
|
|
||||||
set(IGC_SPIRV_TRANSLATOR_SOURCE_DIR ${BUILD_DIR}/igc_spirv_translator/src/external_igc_spirv_translator)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_igc_llvm
|
|
||||||
URL file://${PACKAGE_DIR}/${IGC_LLVM_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${IGC_LLVM_HASH_TYPE}=${IGC_LLVM_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/igc_llvm
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0001-OpenCL-3.0-support.patch &&
|
|
||||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0002-Remove-__IMAGE_SUPPORT__-macro-for-SPIR.patch &&
|
|
||||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0003-Avoid-calling-ParseCommandLineOptions-in-BackendUtil.patch &&
|
|
||||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0004-OpenCL-support-cl_ext_float_atomics.patch &&
|
|
||||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/clang/0005-OpenCL-Add-cl_khr_integer_dot_product.patch &&
|
|
||||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/llvm/0001-Memory-leak-fix-for-Managed-Static-Mutex.patch &&
|
|
||||||
${PATCH_CMD} -p 1 -d ${IGC_LLVM_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/llvm/0002-Remove-repo-name-in-LLVM-IR.patch
|
|
||||||
)
|
|
||||||
add_dependencies(
|
|
||||||
external_igc_llvm
|
|
||||||
external_igc_opencl_clang
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_igc_spirv_translator
|
|
||||||
URL file://${PACKAGE_DIR}/${IGC_SPIRV_TRANSLATOR_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${IGC_SPIRV_TRANSLATOR_HASH_TYPE}=${IGC_SPIRV_TRANSLATOR_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/igc_spirv_translator
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${IGC_SPIRV_TRANSLATOR_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/spirv/0001-update-SPIR-V-headers-for-SPV_INTEL_split_barrier.patch &&
|
|
||||||
${PATCH_CMD} -p 1 -d ${IGC_SPIRV_TRANSLATOR_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/spirv/0002-Add-support-for-split-barriers-extension-SPV_INTEL_s.patch &&
|
|
||||||
${PATCH_CMD} -p 1 -d ${IGC_SPIRV_TRANSLATOR_SOURCE_DIR} < ${IGC_OPENCL_CLANG_PATCH_DIR}/spirv/0003-Support-cl_bf16_conversions.patch
|
|
||||||
)
|
|
||||||
add_dependencies(
|
|
||||||
external_igc_spirv_translator
|
|
||||||
external_igc_opencl_clang
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
set(IGC_GENERATOR "Ninja")
|
|
||||||
set(IGC_TARGET Windows64)
|
|
||||||
else()
|
|
||||||
set(IGC_GENERATOR "Unix Makefiles")
|
|
||||||
set(IGC_TARGET Linux64)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(IGC_EXTRA_ARGS
|
|
||||||
-DIGC_OPTION__ARCHITECTURE_TARGET=${IGC_TARGET}
|
|
||||||
-DIGC_OPTION__ARCHITECTURE_HOST=${IGC_TARGET}
|
|
||||||
)
|
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
list(APPEND IGC_EXTRA_ARGS
|
|
||||||
-DFLEX_EXECUTABLE=${LIBDIR}/flex/bin/flex
|
|
||||||
-DFLEX_INCLUDE_DIR=${LIBDIR}/flex/include
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
ExternalProject_Add(external_igc
|
|
||||||
URL file://${PACKAGE_DIR}/${IGC_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${IGC_HASH_TYPE}=${IGC_HASH}
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/igc ${DEFAULT_CMAKE_FLAGS} ${IGC_EXTRA_ARGS}
|
|
||||||
|
|
||||||
# IGC is pretty set in its way where sub projects ought to live, for some it offers
|
|
||||||
# hooks to supply alternatives folders, other are just hardocded with no way to configure
|
|
||||||
# we symlink everything here, since it's less work than trying to convince the cmake
|
|
||||||
# scripts to accept alternative locations.
|
|
||||||
#
|
|
||||||
PATCH_COMMAND ${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_llvm/src/external_igc_llvm/ ${BUILD_DIR}/igc/src/llvm-project &&
|
|
||||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_opencl_clang/src/external_igc_opencl_clang/ ${BUILD_DIR}/igc/src/llvm-project/llvm/projects/opencl-clang &&
|
|
||||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_spirv_translator/src/external_igc_spirv_translator/ ${BUILD_DIR}/igc/src/llvm-project/llvm/projects/llvm-spirv &&
|
|
||||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_spirv_tools/src/external_igc_spirv_tools/ ${BUILD_DIR}/igc/src/SPIRV-Tools &&
|
|
||||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_spirv_headers/src/external_igc_spirv_headers/ ${BUILD_DIR}/igc/src/SPIRV-Headers &&
|
|
||||||
${CMAKE_COMMAND} -E create_symlink ${BUILD_DIR}/igc_vcintrinsics/src/external_igc_vcintrinsics/ ${BUILD_DIR}/igc/src/vc-intrinsics
|
|
||||||
PREFIX ${BUILD_DIR}/igc
|
|
||||||
INSTALL_DIR ${LIBDIR}/igc
|
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} --install . --strip
|
|
||||||
CMAKE_GENERATOR ${IGC_GENERATOR}
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_igc
|
|
||||||
external_igc_vcintrinsics
|
|
||||||
external_igc_llvm
|
|
||||||
external_igc_opencl_clang
|
|
||||||
external_igc_vcintrinsics
|
|
||||||
external_igc_spirv_headers
|
|
||||||
external_igc_spirv_tools
|
|
||||||
external_igc_spirv_translator
|
|
||||||
)
|
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
|
||||||
add_dependencies(
|
|
||||||
external_igc
|
|
||||||
external_flex
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -1,26 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(IMATH_EXTRA_ARGS
|
|
||||||
-DBUILD_SHARED_LIBS=ON
|
|
||||||
-DBUILD_TESTING=OFF
|
|
||||||
-DIMATH_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_imath
|
|
||||||
URL file://${PACKAGE_DIR}/${IMATH_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${IMATH_HASH_TYPE}=${IMATH_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/imath
|
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/imath ${DEFAULT_CMAKE_FLAGS} ${IMATH_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/imath
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
ExternalProject_Add_Step(external_imath after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/imath/lib ${HARVEST_TARGET}/imath/lib
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/imath/include ${HARVEST_TARGET}/imath/include
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/imath/bin/imath${OPENEXR_VERSION_POSTFIX}.dll ${HARVEST_TARGET}/imath/bin/imath${OPENEXR_VERSION_POSTFIX}.dll
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(ISPC_EXTRA_ARGS_WIN
|
set(ISPC_EXTRA_ARGS_WIN
|
||||||
@@ -6,7 +22,6 @@ if(WIN32)
|
|||||||
-DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe
|
-DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe
|
||||||
-DM4_EXECUTABLE=${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/m4.exe
|
-DM4_EXECUTABLE=${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/m4.exe
|
||||||
-DARM_ENABLED=Off
|
-DARM_ENABLED=Off
|
||||||
-DPython3_FIND_REGISTRY=NEVER
|
|
||||||
)
|
)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
# Use bison and flex installed via Homebrew.
|
# Use bison and flex installed via Homebrew.
|
||||||
@@ -28,27 +43,25 @@ elseif(UNIX)
|
|||||||
set(ISPC_EXTRA_ARGS_UNIX
|
set(ISPC_EXTRA_ARGS_UNIX
|
||||||
-DCMAKE_C_COMPILER=${LIBDIR}/llvm/bin/clang
|
-DCMAKE_C_COMPILER=${LIBDIR}/llvm/bin/clang
|
||||||
-DCMAKE_CXX_COMPILER=${LIBDIR}/llvm/bin/clang++
|
-DCMAKE_CXX_COMPILER=${LIBDIR}/llvm/bin/clang++
|
||||||
-DARM_ENABLED=${BLENDER_PLATFORM_ARM}
|
-DARM_ENABLED=Off
|
||||||
-DFLEX_EXECUTABLE=${LIBDIR}/flex/bin/flex
|
-DFLEX_EXECUTABLE=${LIBDIR}/flex/bin/flex
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(ISPC_EXTRA_ARGS
|
set(ISPC_EXTRA_ARGS
|
||||||
-DISPC_NO_DUMPS=On
|
-DISPC_NO_DUMPS=On
|
||||||
-DISPC_INCLUDE_EXAMPLES=Off
|
-DISPC_INCLUDE_EXAMPLES=Off
|
||||||
-DISPC_INCLUDE_TESTS=Off
|
-DISPC_INCLUDE_TESTS=Off
|
||||||
-DLLVM_ROOT=${LIBDIR}/llvm/lib/cmake/llvm
|
-DLLVM_ROOT=${LIBDIR}/llvm/lib/cmake/llvm
|
||||||
-DLLVM_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
-DLLVM_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
||||||
-DCLANG_EXECUTABLE=${LIBDIR}/llvm/bin/clang
|
-DCLANG_EXECUTABLE=${LIBDIR}/llvm/bin/clang
|
||||||
-DCLANGPP_EXECUTABLE=${LIBDIR}/llvm/bin/clang++
|
-DCLANGPP_EXECUTABLE=${LIBDIR}/llvm/bin/clang++
|
||||||
-DISPC_INCLUDE_TESTS=Off
|
-DISPC_INCLUDE_TESTS=Off
|
||||||
-DCLANG_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
-DCLANG_LIBRARY_DIR=${LIBDIR}/llvm/lib
|
||||||
-DCLANG_INCLUDE_DIRS=${LIBDIR}/llvm/include
|
-DCLANG_INCLUDE_DIRS=${LIBDIR}/llvm/include
|
||||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
${ISPC_EXTRA_ARGS_WIN}
|
||||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
${ISPC_EXTRA_ARGS_APPLE}
|
||||||
${ISPC_EXTRA_ARGS_WIN}
|
${ISPC_EXTRA_ARGS_UNIX}
|
||||||
${ISPC_EXTRA_ARGS_APPLE}
|
|
||||||
${ISPC_EXTRA_ARGS_UNIX}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_ispc
|
ExternalProject_Add(external_ispc
|
||||||
@@ -64,7 +77,6 @@ ExternalProject_Add(external_ispc
|
|||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_ispc
|
external_ispc
|
||||||
ll
|
ll
|
||||||
external_python
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
ExternalProject_Add(external_jemalloc
|
ExternalProject_Add(external_jemalloc
|
||||||
URL file://${PACKAGE_DIR}/${JEMALLOC_FILE}
|
URL file://${PACKAGE_DIR}/${JEMALLOC_FILE}
|
||||||
|
@@ -1,53 +1,61 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
# CMAKE for MS-Windows.
|
# cmake for windows
|
||||||
set(JPEG_EXTRA_ARGS
|
set(JPEG_EXTRA_ARGS -DNASM=${NASM_PATH} -DWITH_JPEG8=ON -DCMAKE_DEBUG_POSTFIX=d -DWITH_CRT_DLL=On)
|
||||||
-DNASM=${NASM_PATH}
|
|
||||||
-DWITH_JPEG8=ON
|
|
||||||
-DCMAKE_DEBUG_POSTFIX=d
|
|
||||||
-DWITH_CRT_DLL=On
|
|
||||||
-DENABLE_SHARED=OFF
|
|
||||||
-DENABLE_STATIC=ON
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_jpeg
|
ExternalProject_Add(external_jpeg
|
||||||
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
||||||
PREFIX ${BUILD_DIR}/jpeg
|
PREFIX ${BUILD_DIR}/jpg
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/jpeg
|
INSTALL_DIR ${LIBDIR}/jpg
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
|
ExternalProject_Add_Step(external_jpeg after_install
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpg/lib/jpegd${LIBEXT} ${LIBDIR}/jpg/lib/jpeg${LIBEXT}
|
||||||
|
DEPENDEES install
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
set(JPEG_LIBRARY jpeg-static${LIBEXT})
|
set(JPEG_LIBRARY jpeg-static${LIBEXT})
|
||||||
else()
|
else()
|
||||||
set(JPEG_LIBRARY jpeg-staticd${LIBEXT})
|
set(JPEG_LIBRARY jpeg-staticd${LIBEXT})
|
||||||
endif()
|
endif()
|
||||||
|
else(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
# cmake for unix
|
||||||
ExternalProject_Add_Step(external_jpeg after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/jpeg/lib/${JPEG_LIBRARY} ${LIBDIR}/jpeg/lib/jpeg${LIBEXT}
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
else()
|
|
||||||
# CMAKE for UNIX.
|
|
||||||
set(JPEG_EXTRA_ARGS
|
set(JPEG_EXTRA_ARGS
|
||||||
-DWITH_JPEG8=ON
|
-DWITH_JPEG8=ON
|
||||||
-DENABLE_STATIC=ON
|
-DENABLE_STATIC=ON
|
||||||
-DENABLE_SHARED=OFF
|
-DENABLE_SHARED=OFF
|
||||||
-DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpeg/lib)
|
-DCMAKE_INSTALL_LIBDIR=${LIBDIR}/jpg/lib)
|
||||||
|
|
||||||
ExternalProject_Add(external_jpeg
|
ExternalProject_Add(external_jpeg
|
||||||
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
URL file://${PACKAGE_DIR}/${JPEG_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
URL_HASH ${JPEG_HASH_TYPE}=${JPEG_HASH}
|
||||||
PREFIX ${BUILD_DIR}/jpeg
|
PREFIX ${BUILD_DIR}/jpg
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpeg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/jpg ${DEFAULT_CMAKE_FLAGS} ${JPEG_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/jpeg
|
INSTALL_DIR ${LIBDIR}/jpg
|
||||||
)
|
)
|
||||||
|
|
||||||
set(JPEG_LIBRARY libjpeg${LIBEXT})
|
set(JPEG_LIBRARY libjpeg${LIBEXT})
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(LAME_EXTRA_ARGS)
|
set(LAME_EXTRA_ARGS)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
|
@@ -1,21 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(LEVEL_ZERO_EXTRA_ARGS
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_level-zero
|
|
||||||
URL file://${PACKAGE_DIR}/${LEVEL_ZERO_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${LEVEL_ZERO_HASH_TYPE}=${LEVEL_ZERO_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/level-zero
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/level-zero/src/external_level-zero < ${PATCH_DIR}/level-zero.diff
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/level-zero ${DEFAULT_CMAKE_FLAGS} ${LEVEL_ZERO_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/level-zero
|
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
|
||||||
ExternalProject_Add_Step(external_level-zero after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/level-zero ${HARVEST_TARGET}/level-zero
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(LIBGLU_CFLAGS "-static-libgcc")
|
set(LIBGLU_CFLAGS "-static-libgcc")
|
||||||
set(LIBGLU_CXXFLAGS "-static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -l:libstdc++.a")
|
set(LIBGLU_CXXFLAGS "-static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -l:libstdc++.a")
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
if(BLENDER_PLATFORM_ARM)
|
||||||
set(LLVM_TARGETS AArch64$<SEMICOLON>ARM)
|
set(LLVM_TARGETS AArch64$<SEMICOLON>ARM)
|
||||||
@@ -9,15 +25,12 @@ endif()
|
|||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(LLVM_XML2_ARGS
|
set(LLVM_XML2_ARGS
|
||||||
-DLIBXML2_LIBRARY=${LIBDIR}/xml2/lib/libxml2.a
|
-DLIBXML2_LIBRARY=${LIBDIR}/xml2/lib/libxml2.a
|
||||||
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
|
|
||||||
)
|
)
|
||||||
set(LLVM_BUILD_CLANG_TOOLS_EXTRA ^^clang-tools-extra)
|
set(LLVM_BUILD_CLANG_TOOLS_EXTRA ^^clang-tools-extra)
|
||||||
set(BUILD_CLANG_TOOLS ON)
|
set(BUILD_CLANG_TOOLS ON)
|
||||||
else()
|
|
||||||
# NVIDIA PTX for OSL on Windows and Linux.
|
|
||||||
set(LLVM_TARGETS ${LLVM_TARGETS}$<SEMICOLON>NVPTX)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
set(LLVM_EXTRA_ARGS
|
set(LLVM_EXTRA_ARGS
|
||||||
-DLLVM_USE_CRT_RELEASE=MD
|
-DLLVM_USE_CRT_RELEASE=MD
|
||||||
-DLLVM_USE_CRT_DEBUG=MDd
|
-DLLVM_USE_CRT_DEBUG=MDd
|
||||||
@@ -28,23 +41,15 @@ set(LLVM_EXTRA_ARGS
|
|||||||
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
|
||||||
-DLLVM_ENABLE_UNWIND_TABLES=OFF
|
-DLLVM_ENABLE_UNWIND_TABLES=OFF
|
||||||
-DLLVM_ENABLE_PROJECTS=clang${LLVM_BUILD_CLANG_TOOLS_EXTRA}
|
-DLLVM_ENABLE_PROJECTS=clang${LLVM_BUILD_CLANG_TOOLS_EXTRA}
|
||||||
-DPython3_ROOT_DIR=${LIBDIR}/python/
|
|
||||||
-DPython3_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
${LLVM_XML2_ARGS}
|
${LLVM_XML2_ARGS}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(LLVM_GENERATOR "Ninja")
|
set(LLVM_GENERATOR "Ninja")
|
||||||
list(APPEND LLVM_EXTRA_ARGS -DPython3_FIND_REGISTRY=NEVER)
|
|
||||||
else()
|
else()
|
||||||
set(LLVM_GENERATOR "Unix Makefiles")
|
set(LLVM_GENERATOR "Unix Makefiles")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# LLVM does not switch over to cpp17 until llvm 16 and building ealier versions with
|
|
||||||
# MSVC is leading to some crashes in ISPC. Switch back to their default on all platforms
|
|
||||||
# for now.
|
|
||||||
string(REPLACE "-DCMAKE_CXX_STANDARD=17" " " LLVM_CMAKE_FLAGS "${DEFAULT_CMAKE_FLAGS}")
|
|
||||||
|
|
||||||
# short project name due to long filename issues on windows
|
# short project name due to long filename issues on windows
|
||||||
ExternalProject_Add(ll
|
ExternalProject_Add(ll
|
||||||
URL file://${PACKAGE_DIR}/${LLVM_FILE}
|
URL file://${PACKAGE_DIR}/${LLVM_FILE}
|
||||||
@@ -55,7 +60,7 @@ ExternalProject_Add(ll
|
|||||||
PREFIX ${BUILD_DIR}/ll
|
PREFIX ${BUILD_DIR}/ll
|
||||||
SOURCE_SUBDIR llvm
|
SOURCE_SUBDIR llvm
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/ll/src/ll < ${PATCH_DIR}/llvm.diff
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/ll/src/ll < ${PATCH_DIR}/llvm.diff
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/llvm ${LLVM_CMAKE_FLAGS} ${LLVM_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/llvm ${DEFAULT_CMAKE_FLAGS} ${LLVM_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/llvm
|
INSTALL_DIR ${LIBDIR}/llvm
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -85,8 +90,3 @@ if(APPLE)
|
|||||||
external_xml2
|
external_xml2
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
ll
|
|
||||||
external_python
|
|
||||||
)
|
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(LZMA_PATCH_CMD echo .)
|
set(LZMA_PATCH_CMD echo .)
|
||||||
|
|
||||||
|
@@ -1,18 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# shorthand to only unpack a certain dependency
|
|
||||||
macro(unpack_only name)
|
|
||||||
string(TOUPPER ${name} UPPER_NAME)
|
|
||||||
set(TARGET_FILE ${${UPPER_NAME}_FILE})
|
|
||||||
set(TARGET_HASH_TYPE ${${UPPER_NAME}_HASH_TYPE})
|
|
||||||
set(TARGET_HASH ${${UPPER_NAME}_HASH})
|
|
||||||
ExternalProject_Add(external_${name}
|
|
||||||
URL file://${PACKAGE_DIR}/${TARGET_FILE}
|
|
||||||
URL_HASH ${TARGET_HASH_TYPE}=${TARGET_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/${name}
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
)
|
|
||||||
endmacro()
|
|
@@ -1,57 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(MATERIALX_EXTRA_ARGS
|
|
||||||
-DMATERIALX_BUILD_PYTHON=ON
|
|
||||||
-DMATERIALX_BUILD_RENDER=OFF
|
|
||||||
-DMATERIALX_INSTALL_PYTHON=OFF
|
|
||||||
-DMATERIALX_PYTHON_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
-DMATERIALX_PYTHON_VERSION=${PYTHON_SHORT_VERSION}
|
|
||||||
-DMATERIALX_BUILD_SHARED_LIBS=ON
|
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
|
||||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_materialx
|
|
||||||
URL file://${PACKAGE_DIR}/${MATERIALX_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${MATERIALX_HASH_TYPE}=${MATERIALX_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/materialx
|
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/materialx/src/external_materialx < ${PATCH_DIR}/materialx.diff
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/materialx ${DEFAULT_CMAKE_FLAGS} ${MATERIALX_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/materialx
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
set(MATERIALX_PYTHON_TARGET ${HARVEST_TARGET}/materialx/python/${BUILD_MODE})
|
|
||||||
string(REPLACE "/" "\\" MATERIALX_PYTHON_TARGET_DOS "${MATERIALX_PYTHON_TARGET}")
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
|
||||||
ExternalProject_Add_Step(external_materialx after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/include ${HARVEST_TARGET}/materialx/include
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/libraries ${HARVEST_TARGET}/materialx/libraries
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/lib/ ${HARVEST_TARGET}/materialx/lib/
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/bin/ ${HARVEST_TARGET}/materialx/bin/
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/python/ ${MATERIALX_PYTHON_TARGET}
|
|
||||||
COMMAND del ${MATERIALX_PYTHON_TARGET_DOS}\\MaterialX\\*.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
|
||||||
ExternalProject_Add_Step(external_materialx after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/lib/ ${HARVEST_TARGET}/materialx/lib/
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/bin/ ${HARVEST_TARGET}/materialx/bin/
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/python/ ${MATERIALX_PYTHON_TARGET}
|
|
||||||
COMMAND del ${MATERIALX_PYTHON_TARGET_DOS}\\MaterialX\\*.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
unset(MATERIALX_PYTHON_TARGET)
|
|
||||||
unset(MATERIALX_PYTHON_TARGET_DOS)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_materialx
|
|
||||||
external_python
|
|
||||||
external_pybind11
|
|
||||||
)
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(MESA_CFLAGS "-static-libgcc")
|
set(MESA_CFLAGS "-static-libgcc")
|
||||||
set(MESA_CXXFLAGS "-static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -l:libstdc++.a")
|
set(MESA_CXXFLAGS "-static-libgcc -static-libstdc++ -Bstatic -lstdc++ -Bdynamic -l:libstdc++.a")
|
||||||
@@ -33,8 +49,6 @@ set(MESA_EXTRA_FLAGS
|
|||||||
# At some point we will likely want to support Wayland.
|
# At some point we will likely want to support Wayland.
|
||||||
# Disable for now since it's not officially supported.
|
# Disable for now since it's not officially supported.
|
||||||
-Dplatforms=x11
|
-Dplatforms=x11
|
||||||
# Needed to find the local expat.
|
|
||||||
--pkg-config-path=${LIBDIR}/expat/lib/pkgconfig
|
|
||||||
--native-file ${BUILD_DIR}/mesa/tmp/native-file.ini
|
--native-file ${BUILD_DIR}/mesa/tmp/native-file.ini
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -45,7 +59,7 @@ ExternalProject_Add(external_mesa
|
|||||||
PREFIX ${BUILD_DIR}/mesa
|
PREFIX ${BUILD_DIR}/mesa
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} &&
|
||||||
cd ${BUILD_DIR}/mesa/src/external_mesa/ &&
|
cd ${BUILD_DIR}/mesa/src/external_mesa/ &&
|
||||||
${MESON} ${BUILD_DIR}/mesa/src/external_mesa-build --prefix=${LIBDIR}/mesa ${MESA_EXTRA_FLAGS}
|
meson ${BUILD_DIR}/mesa/src/external_mesa-build --prefix=${LIBDIR}/mesa ${MESA_EXTRA_FLAGS}
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/mesa/src/external_mesa-build && ninja -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/mesa/src/external_mesa-build && ninja -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/mesa/src/external_mesa-build && ninja install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/mesa/src/external_mesa-build && ninja install
|
||||||
INSTALL_DIR ${LIBDIR}/mesa
|
INSTALL_DIR ${LIBDIR}/mesa
|
||||||
@@ -54,9 +68,4 @@ ExternalProject_Add(external_mesa
|
|||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_mesa
|
external_mesa
|
||||||
ll
|
ll
|
||||||
external_zlib
|
|
||||||
# Run-time dependency.
|
|
||||||
external_expat
|
|
||||||
# Needed for `MESON`.
|
|
||||||
external_python_site_packages
|
|
||||||
)
|
)
|
||||||
|
@@ -1,33 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(MINIZIPNG_EXTRA_ARGS
|
|
||||||
-DMZ_FETCH_LIBS=OFF
|
|
||||||
-DMZ_LIBCOMP=OFF
|
|
||||||
-DMZ_PKCRYPT=OFF
|
|
||||||
-DMZ_WZAES=OFF
|
|
||||||
-DMZ_OPENSSL=OFF
|
|
||||||
-DMZ_SIGNING=OFF
|
|
||||||
-DMZ_LZMA=OFF
|
|
||||||
-DMZ_ZSTD=OFF
|
|
||||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
|
||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
|
||||||
-DBZIP2_LIBRARY=${LIBDIR}/bzip2/lib/${LIBPREFIX}bz2${LIBEXT}
|
|
||||||
-DBZIP2_INCLUDE_DIR=${LIBDIR}/bzip2/include/
|
|
||||||
# Because OCIO hardcodes a non standard include path
|
|
||||||
-DCMAKE_INSTALL_INCLUDEDIR=${LIBDIR}/minizipng/include/minizip-ng
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_minizipng
|
|
||||||
URL file://${PACKAGE_DIR}/${MINIZIPNG_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${MINIZIPNG_HASH_TYPE}=${MINIZIPNG_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/minizipng
|
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/minizipng ${DEFAULT_CMAKE_FLAGS} ${MINIZIPNG_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/minizipng
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_minizipng
|
|
||||||
external_zlib
|
|
||||||
)
|
|
54
build_files/build_environment/cmake/nanovdb.cmake
Normal file
54
build_files/build_environment/cmake/nanovdb.cmake
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
|
set(NANOVDB_EXTRA_ARGS
|
||||||
|
# NanoVDB is header-only, so only need the install target
|
||||||
|
-DNANOVDB_BUILD_UNITTESTS=OFF
|
||||||
|
-DNANOVDB_BUILD_EXAMPLES=OFF
|
||||||
|
-DNANOVDB_BUILD_BENCHMARK=OFF
|
||||||
|
-DNANOVDB_BUILD_DOCS=OFF
|
||||||
|
-DNANOVDB_BUILD_TOOLS=OFF
|
||||||
|
-DNANOVDB_CUDA_KEEP_PTX=OFF
|
||||||
|
# Do not need to include any of the dependencies because of this
|
||||||
|
-DNANOVDB_USE_OPENVDB=OFF
|
||||||
|
-DNANOVDB_USE_OPENGL=OFF
|
||||||
|
-DNANOVDB_USE_OPENCL=OFF
|
||||||
|
-DNANOVDB_USE_CUDA=OFF
|
||||||
|
-DNANOVDB_USE_TBB=OFF
|
||||||
|
-DNANOVDB_USE_BLOSC=OFF
|
||||||
|
-DNANOVDB_USE_ZLIB=OFF
|
||||||
|
-DNANOVDB_USE_OPTIX=OFF
|
||||||
|
-DNANOVDB_ALLOW_FETCHCONTENT=OFF
|
||||||
|
)
|
||||||
|
|
||||||
|
ExternalProject_Add(nanovdb
|
||||||
|
URL file://${PACKAGE_DIR}/${NANOVDB_FILE}
|
||||||
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
|
URL_HASH ${NANOVDB_HASH_TYPE}=${NANOVDB_HASH}
|
||||||
|
PREFIX ${BUILD_DIR}/nanovdb
|
||||||
|
SOURCE_SUBDIR nanovdb
|
||||||
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/nanovdb ${DEFAULT_CMAKE_FLAGS} ${NANOVDB_EXTRA_ARGS}
|
||||||
|
INSTALL_DIR ${LIBDIR}/nanovdb
|
||||||
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
ExternalProject_Add_Step(nanovdb after_install
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/nanovdb/nanovdb ${HARVEST_TARGET}/nanovdb/include/nanovdb
|
||||||
|
DEPENDEES install
|
||||||
|
)
|
||||||
|
endif()
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
ExternalProject_Add(external_nasm
|
ExternalProject_Add(external_nasm
|
||||||
URL file://${PACKAGE_DIR}/${NASM_FILE}
|
URL file://${PACKAGE_DIR}/${NASM_FILE}
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
message("BIN >${PYTHON_BINARY}<")
|
message("BIN >${PYTHON_BINARY}<")
|
||||||
|
@@ -1,24 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(OCLOC_EXTRA_ARGS
|
|
||||||
-DNEO_SKIP_UNIT_TESTS=1
|
|
||||||
-DNEO_BUILD_WITH_OCL=0
|
|
||||||
-DBUILD_WITH_L0=0
|
|
||||||
-DIGC_DIR=${LIBDIR}/igc
|
|
||||||
-DGMM_DIR=${LIBDIR}/gmmlib
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_ocloc
|
|
||||||
URL file://${PACKAGE_DIR}/${OCLOC_FILE}
|
|
||||||
URL_HASH ${OCLOC_HASH_TYPE}=${OCLOC_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/ocloc
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/ocloc ${DEFAULT_CMAKE_FLAGS} ${OCLOC_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/ocloc
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_ocloc
|
|
||||||
external_igc
|
|
||||||
external_gmmlib
|
|
||||||
)
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
ExternalProject_Add(external_ogg
|
ExternalProject_Add(external_ogg
|
||||||
URL file://${PACKAGE_DIR}/${OGG_FILE}
|
URL file://${PACKAGE_DIR}/${OGG_FILE}
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
set(OPENAL_EXTRA_ARGS
|
set(OPENAL_EXTRA_ARGS
|
||||||
|
@@ -1,36 +1,25 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
set(OPENCOLLADA_EXTRA_ARGS
|
set(OPENCOLLADA_EXTRA_ARGS
|
||||||
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
|
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
|
||||||
-DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2.a)
|
-DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2.a)
|
||||||
|
|
||||||
# WARNING: the patch contains mixed UNIX and DOS line endings
|
|
||||||
# as does the OPENCOLLADA package, if this can be corrected upstream that would be better.
|
|
||||||
# For now use `sed` to force UNIX line endings so the patch applies.
|
|
||||||
# Needed as neither ignoring white-space or applying as a binary resolve this problem.
|
|
||||||
if(APPLE)
|
|
||||||
set(_dos2unix dos2unix)
|
|
||||||
else()
|
|
||||||
set(_dos2unix sed -i "s/\\r//")
|
|
||||||
endif()
|
|
||||||
set(PATCH_MAYBE_DOS2UNIX_CMD
|
|
||||||
${_dos2unix}
|
|
||||||
${PATCH_DIR}/opencollada.diff
|
|
||||||
${BUILD_DIR}/opencollada/src/external_opencollada/CMakeLists.txt
|
|
||||||
${BUILD_DIR}/opencollada/src/external_opencollada/Externals/LibXML/CMakeLists.txt &&
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set(OPENCOLLADA_EXTRA_ARGS
|
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
-DLIBXML2_INCLUDE_DIR=${LIBDIR}/xml2/include/libxml2
|
|
||||||
)
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
|
||||||
list(APPEND OPENCOLLADA_EXTRA_ARGS -DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2s.lib)
|
|
||||||
else()
|
|
||||||
list(APPEND OPENCOLLADA_EXTRA_ARGS -DLIBXML2_LIBRARIES=${LIBDIR}/xml2/lib/libxml2sd.lib)
|
|
||||||
endif()
|
|
||||||
set(PATCH_MAYBE_DOS2UNIX_CMD)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_opencollada
|
ExternalProject_Add(external_opencollada
|
||||||
@@ -38,19 +27,17 @@ ExternalProject_Add(external_opencollada
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${OPENCOLLADA_HASH_TYPE}=${OPENCOLLADA_HASH}
|
URL_HASH ${OPENCOLLADA_HASH_TYPE}=${OPENCOLLADA_HASH}
|
||||||
PREFIX ${BUILD_DIR}/opencollada
|
PREFIX ${BUILD_DIR}/opencollada
|
||||||
PATCH_COMMAND
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencollada/src/external_opencollada < ${PATCH_DIR}/opencollada.diff
|
||||||
${PATCH_MAYBE_DOS2UNIX_CMD}
|
|
||||||
${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencollada/src/external_opencollada < ${PATCH_DIR}/opencollada.diff
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencollada ${DEFAULT_CMAKE_FLAGS} ${OPENCOLLADA_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencollada ${DEFAULT_CMAKE_FLAGS} ${OPENCOLLADA_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/opencollada
|
INSTALL_DIR ${LIBDIR}/opencollada
|
||||||
)
|
)
|
||||||
|
|
||||||
unset(PATCH_MAYBE_DOS2UNIX_CMD)
|
if(UNIX)
|
||||||
|
add_dependencies(
|
||||||
add_dependencies(
|
external_opencollada
|
||||||
external_opencollada
|
external_xml2
|
||||||
external_xml2
|
)
|
||||||
)
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
@@ -61,7 +48,17 @@ if(WIN32)
|
|||||||
endif()
|
endif()
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(external_opencollada after_install
|
ExternalProject_Add_Step(external_opencollada after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencollada/lib ${HARVEST_TARGET}/opencollada/lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/buffer.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/buffer_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/ftoa.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/ftoa_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/GeneratedSaxParser.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/GeneratedSaxParser_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/MathMLSolver.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/MathMLSolver_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADABaseUtils.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADABaseUtils_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAFramework.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAFramework_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADASaxFrameworkLoader_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/OpenCOLLADAStreamWriter_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/pcre.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/pcre_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/UTF.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/UTF_d.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencollada/lib/opencollada/xml.lib ${HARVEST_TARGET}/opencollada/lib/opencollada/xml_d.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,44 +1,41 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
set(OPENCOLORIO_EXTRA_ARGS
|
||||||
-DOCIO_BUILD_APPS=OFF
|
-DOCIO_BUILD_APPS=OFF
|
||||||
-DOCIO_BUILD_PYTHON=ON
|
-DOCIO_BUILD_PYTHON=OFF
|
||||||
-DOCIO_BUILD_NUKE=OFF
|
-DOCIO_BUILD_NUKE=OFF
|
||||||
-DOCIO_BUILD_JAVA=OFF
|
-DOCIO_BUILD_JAVA=OFF
|
||||||
-DBUILD_SHARED_LIBS=ON
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
-DOCIO_BUILD_DOCS=OFF
|
-DOCIO_BUILD_DOCS=OFF
|
||||||
-DOCIO_BUILD_TESTS=OFF
|
-DOCIO_BUILD_TESTS=OFF
|
||||||
-DOCIO_BUILD_GPU_TESTS=OFF
|
-DOCIO_BUILD_GPU_TESTS=OFF
|
||||||
-DOCIO_USE_SSE=ON
|
-DOCIO_USE_SSE=ON
|
||||||
|
|
||||||
-DOCIO_INSTALL_EXT_PACKAGES=NONE
|
# Manually build ext packages except for pystring, which does not have
|
||||||
|
# a CMake or autotools build system that we can easily use.
|
||||||
|
-DOCIO_INSTALL_EXT_PACKAGES=MISSING
|
||||||
|
-DHalf_ROOT=${LIBDIR}/openexr
|
||||||
|
-DHalf_STATIC_LIBRARY=ON
|
||||||
-Dexpat_ROOT=${LIBDIR}/expat
|
-Dexpat_ROOT=${LIBDIR}/expat
|
||||||
-Dyaml-cpp_ROOT=${LIBDIR}/yamlcpp
|
-Dyaml-cpp_ROOT=${LIBDIR}/yamlcpp
|
||||||
-Dyaml-cpp_VERSION=${YAMLCPP_VERSION}
|
|
||||||
-Dpystring_ROOT=${LIBDIR}/pystring
|
|
||||||
-DImath_ROOT=${LIBDIR}/imath
|
|
||||||
-Dminizip-ng_ROOT=${LIBDIR}/minizipng
|
|
||||||
-Dminizip-ng_INCLUDE_DIR=${LIBDIR}/minizipng/include
|
|
||||||
-Dminizip-ng_LIBRARY=${LIBDIR}/minizipng/lib/libminizip${LIBEXT}
|
|
||||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
|
||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
|
||||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
|
||||||
${OPENCOLORIO_EXTRA_ARGS}
|
|
||||||
"-DCMAKE_SHARED_LINKER_FLAGS=-liconv ${LIBDIR}/bzip2/lib/${LIBPREFIX}bz2${LIBEXT}"
|
|
||||||
)
|
|
||||||
elseif(UNIX)
|
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
|
||||||
${OPENCOLORIO_EXTRA_ARGS}
|
|
||||||
"-DCMAKE_SHARED_LINKER_FLAGS=${LIBDIR}/bzip2/lib/${LIBPREFIX}bz2${LIBEXT}"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BLENDER_PLATFORM_ARM)
|
if(BLENDER_PLATFORM_ARM)
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
set(OPENCOLORIO_EXTRA_ARGS
|
||||||
${OPENCOLORIO_EXTRA_ARGS}
|
${OPENCOLORIO_EXTRA_ARGS}
|
||||||
@@ -47,16 +44,9 @@ if(BLENDER_PLATFORM_ARM)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(OPENCOLORIO_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DIMATH_DLL")
|
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
|
||||||
set(OPENCOLORIO_CXX_FLAGS "${OPENCOLORIO_CXX_FLAGS} -DPy_DEBUG")
|
|
||||||
endif()
|
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
set(OPENCOLORIO_EXTRA_ARGS
|
||||||
${OPENCOLORIO_EXTRA_ARGS}
|
${OPENCOLORIO_EXTRA_ARGS}
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
-DOCIO_INLINES_HIDDEN=OFF
|
||||||
-Dexpat_LIBRARY=${LIBDIR}/expat/lib/libexpat$<$<STREQUAL:${BUILD_MODE},Debug>:d>MD${LIBEXT}
|
|
||||||
-DImath_LIBRARY=${LIBDIR}/imath/lib/imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
|
||||||
-DCMAKE_CXX_FLAGS=${OPENCOLORIO_CXX_FLAGS}
|
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(OPENCOLORIO_EXTRA_ARGS
|
set(OPENCOLORIO_EXTRA_ARGS
|
||||||
@@ -68,7 +58,6 @@ ExternalProject_Add(external_opencolorio
|
|||||||
URL file://${PACKAGE_DIR}/${OPENCOLORIO_FILE}
|
URL file://${PACKAGE_DIR}/${OPENCOLORIO_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${OPENCOLORIO_HASH_TYPE}=${OPENCOLORIO_HASH}
|
URL_HASH ${OPENCOLORIO_HASH_TYPE}=${OPENCOLORIO_HASH}
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
PREFIX ${BUILD_DIR}/opencolorio
|
PREFIX ${BUILD_DIR}/opencolorio
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencolorio/src/external_opencolorio < ${PATCH_DIR}/opencolorio.diff
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/opencolorio/src/external_opencolorio < ${PATCH_DIR}/opencolorio.diff
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencolorio ${DEFAULT_CMAKE_FLAGS} ${OPENCOLORIO_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/opencolorio ${DEFAULT_CMAKE_FLAGS} ${OPENCOLORIO_EXTRA_ARGS}
|
||||||
@@ -79,36 +68,34 @@ add_dependencies(
|
|||||||
external_opencolorio
|
external_opencolorio
|
||||||
external_yamlcpp
|
external_yamlcpp
|
||||||
external_expat
|
external_expat
|
||||||
external_imath
|
external_openexr
|
||||||
external_pystring
|
|
||||||
external_zlib
|
|
||||||
external_minizipng
|
|
||||||
external_python
|
|
||||||
external_pybind11
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
ExternalProject_Add_Step(external_opencolorio after_install
|
ExternalProject_Add_Step(external_opencolorio after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/include ${HARVEST_TARGET}/opencolorio/include
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/include ${HARVEST_TARGET}/opencolorio/include
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/bin/OpenColorIO_2_2.dll ${HARVEST_TARGET}/opencolorio/bin/OpenColorIO_2_2.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib ${HARVEST_TARGET}/opencolorio/lib
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib ${HARVEST_TARGET}/opencolorio/lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatMD.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(external_opencolorio after_install
|
ExternalProject_Add_Step(external_opencolorio after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/bin/OpenColorIO_d_2_2.dll ${HARVEST_TARGET}/opencolorio/bin/OpenColorIO_d_2_2.dll
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/Opencolorio.lib ${HARVEST_TARGET}/opencolorio/lib/OpencolorIO_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/opencolorio/lib/Opencolorio_d.lib ${HARVEST_TARGET}/opencolorio/lib/OpenColorIO_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/yamlcpp/lib/libyaml-cppmdd.lib ${HARVEST_TARGET}/opencolorio/lib/libyaml-cpp_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/opencolorio/lib/site-packages ${HARVEST_TARGET}/opencolorio/lib/site-packages-debug
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/expat/lib/libexpatdMD.lib ${HARVEST_TARGET}/opencolorio/lib/libexpatdMD.lib
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/pystring.lib ${HARVEST_TARGET}/opencolorio/lib/pystring_d.lib
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
ExternalProject_Add_Step(external_opencolorio after_install
|
ExternalProject_Add_Step(external_opencolorio after_install
|
||||||
COMMAND cp ${LIBDIR}/yamlcpp/lib/libyaml-cpp.a ${LIBDIR}/opencolorio/lib/
|
COMMAND cp ${LIBDIR}/yamlcpp/lib/libyaml-cpp.a ${LIBDIR}/opencolorio/lib/
|
||||||
COMMAND cp ${LIBDIR}/expat/lib/libexpat.a ${LIBDIR}/opencolorio/lib/
|
COMMAND cp ${LIBDIR}/expat/lib/libexpat.a ${LIBDIR}/opencolorio/lib/
|
||||||
COMMAND cp ${LIBDIR}/pystring/lib/libpystring.a ${LIBDIR}/opencolorio/lib/
|
COMMAND cp ${BUILD_DIR}/opencolorio/src/external_opencolorio-build/ext/dist/lib/libpystring.a ${LIBDIR}/opencolorio/lib/
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
|
set(OPENEXR_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
|
||||||
@@ -16,10 +32,12 @@ set(OPENEXR_EXTRA_ARGS
|
|||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||||
-DBUILD_TESTING=OFF
|
-DBUILD_TESTING=OFF
|
||||||
-DOPENEXR_BUILD_BOTH_STATIC_SHARED=OFF
|
-DOPENEXR_BUILD_BOTH_STATIC_SHARED=OFF
|
||||||
-DBUILD_SHARED_LIBS=ON
|
-DILMBASE_BUILD_BOTH_STATIC_SHARED=OFF
|
||||||
-DOPENEXR_INSTALL_TOOLS=OFF
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
-DOPENEXR_INSTALL_EXAMPLES=OFF
|
-DOPENEXR_BUILD_UTILS=OFF
|
||||||
-DImath_DIR=${LIBDIR}/imath/lib/cmake/Imath
|
-DPYILMBASE_ENABLE=OFF
|
||||||
|
-DOPENEXR_VIEWERS_ENABLE=OFF
|
||||||
|
-DILMBASE_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||||
-DOPENEXR_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
-DOPENEXR_LIB_SUFFIX=${OPENEXR_VERSION_BUILD_POSTFIX}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -27,7 +45,6 @@ ExternalProject_Add(external_openexr
|
|||||||
URL file://${PACKAGE_DIR}/${OPENEXR_FILE}
|
URL file://${PACKAGE_DIR}/${OPENEXR_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${OPENEXR_HASH_TYPE}=${OPENEXR_HASH}
|
URL_HASH ${OPENEXR_HASH_TYPE}=${OPENEXR_HASH}
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
PREFIX ${BUILD_DIR}/openexr
|
PREFIX ${BUILD_DIR}/openexr
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr ${DEFAULT_CMAKE_FLAGS} ${OPENEXR_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openexr ${DEFAULT_CMAKE_FLAGS} ${OPENEXR_EXTRA_ARGS}
|
||||||
INSTALL_DIR ${LIBDIR}/openexr
|
INSTALL_DIR ${LIBDIR}/openexr
|
||||||
@@ -37,11 +54,6 @@ if(WIN32)
|
|||||||
ExternalProject_Add_Step(external_openexr after_install
|
ExternalProject_Add_Step(external_openexr after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${HARVEST_TARGET}/openexr/lib
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/lib ${HARVEST_TARGET}/openexr/lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/include ${HARVEST_TARGET}/openexr/include
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openexr/include ${HARVEST_TARGET}/openexr/include
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openexr/bin/Iex${OPENEXR_VERSION_POSTFIX}.dll ${HARVEST_TARGET}/openexr/bin/Iex${OPENEXR_VERSION_POSTFIX}.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openexr/bin/IlmThread${OPENEXR_VERSION_POSTFIX}.dll ${HARVEST_TARGET}/openexr/bin/IlmThread${OPENEXR_VERSION_POSTFIX}.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openexr/bin/OpenEXRCore${OPENEXR_VERSION_POSTFIX}.dll ${HARVEST_TARGET}/openexr/bin/OpenEXRCore${OPENEXR_VERSION_POSTFIX}.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openexr/bin/OpenEXRUtil${OPENEXR_VERSION_POSTFIX}.dll ${HARVEST_TARGET}/openexr/bin/OpenEXRUtil${OPENEXR_VERSION_POSTFIX}.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openexr/bin/OpenEXR${OPENEXR_VERSION_POSTFIX}.dll ${HARVEST_TARGET}/openexr/bin/OpenEXR${OPENEXR_VERSION_POSTFIX}.dll
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
@@ -49,5 +61,4 @@ endif()
|
|||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_openexr
|
external_openexr
|
||||||
external_zlib
|
external_zlib
|
||||||
external_imath
|
|
||||||
)
|
)
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
|
|
||||||
set(OIDN_EXTRA_ARGS
|
set(OIDN_EXTRA_ARGS
|
||||||
@@ -8,8 +24,6 @@ set(OIDN_EXTRA_ARGS
|
|||||||
-DOIDN_STATIC_LIB=ON
|
-DOIDN_STATIC_LIB=ON
|
||||||
-DOIDN_STATIC_RUNTIME=OFF
|
-DOIDN_STATIC_RUNTIME=OFF
|
||||||
-DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc
|
-DISPC_EXECUTABLE=${LIBDIR}/ispc/bin/ispc
|
||||||
-DOIDN_FILTER_RTLIGHTMAP=OFF
|
|
||||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -39,7 +53,6 @@ add_dependencies(
|
|||||||
external_openimagedenoise
|
external_openimagedenoise
|
||||||
external_tbb
|
external_tbb
|
||||||
external_ispc
|
external_ispc
|
||||||
external_python
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
set(OIIO_TOOLS ON)
|
set(OIIO_TOOLS ON)
|
||||||
@@ -15,36 +31,43 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
set(PNG_LIBNAME libpng16_static${LIBEXT})
|
||||||
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse2)
|
set(OIIO_SIMD_FLAGS -DUSE_SIMD=sse2)
|
||||||
set(OPENJPEG_POSTFIX _msvc)
|
set(OPENJPEG_POSTFIX _msvc)
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
|
||||||
set(TIFF_POSTFIX d)
|
|
||||||
set(PNG_POSTFIX d)
|
|
||||||
else()
|
|
||||||
set(TIFF_POSTFIX)
|
|
||||||
set(PNG_POSTFIX)
|
|
||||||
endif()
|
|
||||||
set(PNG_LIBNAME libpng16_static${PNG_POSTFIX}${LIBEXT})
|
|
||||||
else()
|
else()
|
||||||
set(PNG_LIBNAME libpng${LIBEXT})
|
set(PNG_LIBNAME libpng${LIBEXT})
|
||||||
set(OIIO_SIMD_FLAGS)
|
set(OIIO_SIMD_FLAGS)
|
||||||
set(TIFF_POSTFIX)
|
endif()
|
||||||
|
|
||||||
|
if(WITH_WEBP)
|
||||||
|
set(WEBP_ARGS
|
||||||
|
-DWEBP_INCLUDE_DIR=${LIBDIR}/webp/include
|
||||||
|
-DWEBP_LIBRARY=${LIBDIR}/webp/lib/${LIBPREFIX}webp${LIBEXT}
|
||||||
|
)
|
||||||
|
set(WEBP_DEP external_webp)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(OPENJPEG_FLAGS
|
set(OPENJPEG_FLAGS
|
||||||
-DOpenJPEG_ROOT=${LIBDIR}/openjpeg_msvc
|
-DOpenJpeg_ROOT=${LIBDIR}/openjpeg_msvc
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(OPENJPEG_FLAGS
|
set(OPENJPEG_FLAGS
|
||||||
-DOpenJPEG_ROOT=${LIBDIR}/openjpeg
|
-DOpenJpeg_ROOT=${LIBDIR}/openjpeg
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OPENIMAGEIO_EXTRA_ARGS
|
set(OPENIMAGEIO_EXTRA_ARGS
|
||||||
-DBUILD_SHARED_LIBS=ON
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
${OPENIMAGEIO_LINKSTATIC}
|
${OPENIMAGEIO_LINKSTATIC}
|
||||||
${DEFAULT_BOOST_FLAGS}
|
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||||
|
-DBoost_USE_MULTITHREADED=ON
|
||||||
|
-DBoost_USE_STATIC_LIBS=ON
|
||||||
|
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||||
|
-DBOOST_ROOT=${LIBDIR}/boost
|
||||||
|
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
||||||
|
-DBoost_NO_SYSTEM_PATHS=ON
|
||||||
|
-DBoost_NO_BOOST_CMAKE=ON
|
||||||
-DUSE_LIBSQUISH=OFF
|
-DUSE_LIBSQUISH=OFF
|
||||||
-DUSE_QT5=OFF
|
-DUSE_QT5=OFF
|
||||||
-DUSE_NUKE=OFF
|
-DUSE_NUKE=OFF
|
||||||
@@ -55,8 +78,9 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
|||||||
-DUSE_LIBHEIF=OFF
|
-DUSE_LIBHEIF=OFF
|
||||||
-DUSE_OPENGL=OFF
|
-DUSE_OPENGL=OFF
|
||||||
-DUSE_TBB=OFF
|
-DUSE_TBB=OFF
|
||||||
|
-DUSE_FIELD3D=OFF
|
||||||
-DUSE_QT=OFF
|
-DUSE_QT=OFF
|
||||||
-DUSE_PYTHON=ON
|
-DUSE_PYTHON=OFF
|
||||||
-DUSE_GIF=OFF
|
-DUSE_GIF=OFF
|
||||||
-DUSE_OPENCV=OFF
|
-DUSE_OPENCV=OFF
|
||||||
-DUSE_OPENJPEG=ON
|
-DUSE_OPENJPEG=ON
|
||||||
@@ -65,7 +89,7 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
|||||||
-DUSE_FREETYPE=OFF
|
-DUSE_FREETYPE=OFF
|
||||||
-DUSE_LIBRAW=OFF
|
-DUSE_LIBRAW=OFF
|
||||||
-DUSE_OPENCOLORIO=OFF
|
-DUSE_OPENCOLORIO=OFF
|
||||||
-DUSE_WEBP=ON
|
-DUSE_WEBP=${WITH_WEBP}
|
||||||
-DOIIO_BUILD_TOOLS=${OIIO_TOOLS}
|
-DOIIO_BUILD_TOOLS=${OIIO_TOOLS}
|
||||||
-DOIIO_BUILD_TESTS=OFF
|
-DOIIO_BUILD_TESTS=OFF
|
||||||
-DBUILD_TESTING=OFF
|
-DBUILD_TESTING=OFF
|
||||||
@@ -73,36 +97,31 @@ set(OPENIMAGEIO_EXTRA_ARGS
|
|||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include
|
||||||
-DPNG_LIBRARY=${LIBDIR}/png/lib/${PNG_LIBNAME}
|
-DPNG_LIBRARY=${LIBDIR}/png/lib/${PNG_LIBNAME}
|
||||||
-DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include
|
-DPNG_PNG_INCLUDE_DIR=${LIBDIR}/png/include
|
||||||
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${TIFF_POSTFIX}${LIBEXT}
|
-DTIFF_LIBRARY=${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT}
|
||||||
-DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include
|
-DTIFF_INCLUDE_DIR=${LIBDIR}/tiff/include
|
||||||
-DJPEG_LIBRARY=${LIBDIR}/jpeg/lib/${JPEG_LIBRARY}
|
-DJPEG_LIBRARY=${LIBDIR}/jpg/lib/${JPEG_LIBRARY}
|
||||||
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpeg/include
|
-DJPEG_INCLUDE_DIR=${LIBDIR}/jpg/include
|
||||||
${OPENJPEG_FLAGS}
|
${OPENJPEG_FLAGS}
|
||||||
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}
|
-DOpenEXR_USE_STATIC_LIBS=On
|
||||||
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}
|
-DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||||
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}
|
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||||
|
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DSTOP_ON_WARNING=OFF
|
-DSTOP_ON_WARNING=OFF
|
||||||
-DUSE_EXTERNAL_PUGIXML=ON
|
-DUSE_EXTERNAL_PUGIXML=ON
|
||||||
-DPUGIXML_LIBRARY=${LIBDIR}/pugixml/lib/${LIBPREFIX}pugixml${LIBEXT}
|
-DPUGIXML_LIBRARY=${LIBDIR}/pugixml/lib/${LIBPREFIX}pugixml${LIBEXT}
|
||||||
-DPUGIXML_INCLUDE_DIR=${LIBDIR}/pugixml/include/
|
-DPUGIXML_INCLUDE_DIR=${LIBDIR}/pugixml/include/
|
||||||
-Dpugixml_DIR=${LIBDIR}/pugixml/lib/cmake/pugixml
|
${WEBP_FLAGS}
|
||||||
-DBUILD_MISSING_ROBINMAP=OFF
|
|
||||||
-DBUILD_MISSING_FMT=OFF
|
|
||||||
-DFMT_INCLUDE_DIR=${LIBDIR}/fmt/include/
|
|
||||||
-DRobinmap_ROOT=${LIBDIR}/robinmap
|
|
||||||
-DWebP_ROOT=${LIBDIR}/webp
|
|
||||||
${OIIO_SIMD_FLAGS}
|
${OIIO_SIMD_FLAGS}
|
||||||
-DOpenEXR_ROOT=${LIBDIR}/openexr
|
|
||||||
-DImath_ROOT=${LIBDIR}/imath
|
|
||||||
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
|
||||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_openimageio
|
ExternalProject_Add(external_openimageio
|
||||||
URL file://${PACKAGE_DIR}/${OPENIMAGEIO_FILE}
|
URL file://${PACKAGE_DIR}/${OPENIMAGEIO_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${OPENIMAGEIO_HASH_TYPE}=${OPENIMAGEIO_HASH}
|
URL_HASH ${OPENIMAGEIO_HASH_TYPE}=${OPENIMAGEIO_HASH}
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
PREFIX ${BUILD_DIR}/openimageio
|
PREFIX ${BUILD_DIR}/openimageio
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/openimageio.diff
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -N -d ${BUILD_DIR}/openimageio/src/external_openimageio/ < ${PATCH_DIR}/openimageio.diff
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio ${DEFAULT_CMAKE_FLAGS} ${OPENIMAGEIO_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openimageio ${DEFAULT_CMAKE_FLAGS} ${OPENIMAGEIO_EXTRA_ARGS}
|
||||||
@@ -114,17 +133,12 @@ add_dependencies(
|
|||||||
external_png
|
external_png
|
||||||
external_zlib
|
external_zlib
|
||||||
external_openexr
|
external_openexr
|
||||||
external_imath
|
|
||||||
external_jpeg
|
external_jpeg
|
||||||
external_boost
|
external_boost
|
||||||
external_tiff
|
external_tiff
|
||||||
external_pugixml
|
external_pugixml
|
||||||
external_fmt
|
|
||||||
external_robinmap
|
|
||||||
external_openjpeg${OPENJPEG_POSTFIX}
|
external_openjpeg${OPENJPEG_POSTFIX}
|
||||||
external_webp
|
${WEBP_DEP}
|
||||||
external_python
|
|
||||||
external_pybind11
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -133,18 +147,14 @@ if(WIN32)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/include ${HARVEST_TARGET}/OpenImageIO/include
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/include ${HARVEST_TARGET}/OpenImageIO/include
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/lib ${HARVEST_TARGET}/OpenImageIO/lib
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/lib ${HARVEST_TARGET}/OpenImageIO/lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/idiff.exe ${HARVEST_TARGET}/OpenImageIO/bin/idiff.exe
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/idiff.exe ${HARVEST_TARGET}/OpenImageIO/bin/idiff.exe
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/OpenImageIO.dll ${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/OpenImageIO_Util.dll ${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO_Util.dll
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(external_openimageio after_install
|
ExternalProject_Add_Step(external_openimageio after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_d.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util_d.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openimageio/lib/OpenImageIO_Util.lib ${HARVEST_TARGET}/openimageio/lib/OpenImageIO_Util_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/OpenImageIO_d.dll ${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO_d.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/OpenImageIO/bin/OpenImageIO_Util_d.dll ${HARVEST_TARGET}/OpenImageIO/bin/OpenImageIO_Util_d.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/OpenImageIO/lib/python${PYTHON_SHORT_VERSION}/ ${HARVEST_TARGET}/OpenImageIO/lib/python${PYTHON_SHORT_VERSION}_debug/
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,26 +1,38 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
# Note the encoder/decoder may use png/tiff/lcms system libraries, but the
|
# Note the encoder/decoder may use png/tiff/lcms system libraries, but the
|
||||||
# library itself does not depend on them, so should give no problems.
|
# library itself does not depend on them, so should give no problems.
|
||||||
|
|
||||||
|
set(OPENJPEG_EXTRA_ARGS -DBUILD_SHARED_LIBS=OFF)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles" -DBUILD_PKGCONFIG_FILES=On)
|
set(OPENJPEG_EXTRA_ARGS -G "MSYS Makefiles" -DBUILD_PKGCONFIG_FILES=On)
|
||||||
else()
|
else()
|
||||||
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
|
set(OPENJPEG_EXTRA_ARGS ${DEFAULT_CMAKE_FLAGS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OPENJPEG_EXTRA_ARGS
|
|
||||||
${OPENJPEG_EXTRA_ARGS}
|
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
|
||||||
-DBUILD_CODEC=OFF
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_openjpeg
|
ExternalProject_Add(external_openjpeg
|
||||||
URL file://${PACKAGE_DIR}/${OPENJPEG_FILE}
|
URL file://${PACKAGE_DIR}/${OPENJPEG_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH}
|
URL_HASH ${OPENJPEG_HASH_TYPE}=${OPENJPEG_HASH}
|
||||||
PREFIX ${BUILD_DIR}/openjpeg
|
PREFIX ${BUILD_DIR}/openjpeg
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg ${BUILD_DIR}/openjpeg/src/external_openjpeg
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build && ${CMAKE_COMMAND} ${OPENJPEG_EXTRA_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openjpeg -DBUILD_SHARED_LIBS=Off -DBUILD_THIRDPARTY=OFF ${BUILD_DIR}/openjpeg/src/external_openjpeg
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/openjpeg/src/external_openjpeg-build/ && make install
|
||||||
INSTALL_DIR ${LIBDIR}/openjpeg
|
INSTALL_DIR ${LIBDIR}/openjpeg
|
||||||
@@ -39,10 +51,8 @@ if(MSVC)
|
|||||||
)
|
)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
ExternalProject_Add_Step(external_openjpeg_msvc after_install
|
ExternalProject_Add_Step(external_openjpeg_msvc after_install
|
||||||
COMMAND
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openjpeg_msvc/lib ${HARVEST_TARGET}/openjpeg/lib &&
|
||||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openjpeg_msvc/lib ${HARVEST_TARGET}/openjpeg/lib &&
|
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openjpeg_msvc/include ${HARVEST_TARGET}/openjpeg/include
|
||||||
${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openjpeg_msvc/include ${HARVEST_TARGET}/openjpeg/include
|
|
||||||
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(OPENMP_PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openmp/src/external_openmp < ${PATCH_DIR}/openmp.diff)
|
set(OPENMP_PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openmp/src/external_openmp < ${PATCH_DIR}/openmp.diff)
|
||||||
|
@@ -1,47 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# Note the utility apps may use png/tiff/gif system libraries, but the
|
|
||||||
# library itself does not depend on them, so should give no problems.
|
|
||||||
|
|
||||||
set(OPENPGL_EXTRA_ARGS
|
|
||||||
-DOPENPGL_BUILD_STATIC=ON
|
|
||||||
-DOPENPGL_TBB_ROOT=${LIBDIR}/tbb
|
|
||||||
-DTBB_ROOT=${LIBDIR}/tbb
|
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
)
|
|
||||||
|
|
||||||
if(TBB_STATIC_LIBRARY)
|
|
||||||
set(OPENPGL_EXTRA_ARGS
|
|
||||||
${OPENPGL_EXTRA_ARGS}
|
|
||||||
-DOPENPGL_TBB_COMPONENT=tbb_static
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
ExternalProject_Add(external_openpgl
|
|
||||||
URL file://${PACKAGE_DIR}/${OPENPGL_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${OPENPGL_HASH_TYPE}=${OPENPGL_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/openpgl
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openpgl ${DEFAULT_CMAKE_FLAGS} ${OPENPGL_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/openpgl
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_openpgl
|
|
||||||
external_tbb
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
|
||||||
ExternalProject_Add_Step(external_openpgl after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openpgl ${HARVEST_TARGET}/openpgl
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
ExternalProject_Add_Step(external_openpgl after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openpgl/lib/openpgl_d.lib ${HARVEST_TARGET}/openpgl/lib/openpgl_d.lib
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openpgl/lib/cmake/openpgl-${OPENPGL_SHORT_VERSION}/openpgl_Exports-debug.cmake ${HARVEST_TARGET}/openpgl/lib/cmake/openpgl-${OPENPGL_SHORT_VERSION}/openpgl_Exports-debug.cmake
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
@@ -1,25 +1,35 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(OPENSUBDIV_EXTRA_ARGS
|
set(OPENSUBDIV_EXTRA_ARGS
|
||||||
-DNO_LIB=OFF
|
|
||||||
-DNO_EXAMPLES=ON
|
-DNO_EXAMPLES=ON
|
||||||
-DNO_TUTORIALS=ON
|
|
||||||
-DNO_REGRESSION=ON
|
-DNO_REGRESSION=ON
|
||||||
|
-DNO_PYTHON=ON
|
||||||
|
-DNO_MAYA=ON
|
||||||
-DNO_PTEX=ON
|
-DNO_PTEX=ON
|
||||||
-DNO_DOC=ON
|
-DNO_DOC=ON
|
||||||
-DNO_OMP=ON
|
-DNO_CLEW=OFF
|
||||||
-DNO_TBB=OFF
|
-DNO_OPENCL=OFF
|
||||||
-DNO_CUDA=ON
|
-DNO_TUTORIALS=ON
|
||||||
-DNO_OPENCL=ON
|
-DGLEW_INCLUDE_DIR=${LIBDIR}/glew/include
|
||||||
-DNO_CLEW=ON
|
-DGLEW_LIBRARY=${LIBDIR}/glew/lib/libGLEW${LIBEXT}
|
||||||
-DNO_OPENGL=OFF
|
-DGLFW_INCLUDE_DIR=${LIBDIR}/glfw/include
|
||||||
-DNO_METAL=OFF
|
-DGLFW_LIBRARIES=${LIBDIR}/glfw/lib/glfw3${LIBEXT}
|
||||||
-DNO_DX=ON
|
|
||||||
-DNO_TESTS=ON
|
|
||||||
-DNO_GLTESTS=ON
|
|
||||||
-DNO_GLEW=ON
|
|
||||||
-DNO_GLFW=ON
|
|
||||||
-DNO_GLFW_X11=ON
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@@ -27,12 +37,30 @@ if(WIN32)
|
|||||||
${OPENSUBDIV_EXTRA_ARGS}
|
${OPENSUBDIV_EXTRA_ARGS}
|
||||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
||||||
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb.lib
|
-DTBB_LIBRARIES=${LIBDIR}/tbb/lib/tbb.lib
|
||||||
|
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
|
||||||
|
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/clew${LIBEXT}
|
||||||
|
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
|
||||||
|
-DCUEW_LIBRARY=${LIBDIR}/cuew/lib/cuew${LIBEXT}
|
||||||
)
|
)
|
||||||
|
if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||||
|
set(OPENSUBDIV_EXTRA_ARGS
|
||||||
|
${OPENSUBDIV_EXTRA_ARGS}
|
||||||
|
-DNO_CUDA=OFF
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
set(OPENSUBDIV_EXTRA_ARGS
|
||||||
|
${OPENSUBDIV_EXTRA_ARGS}
|
||||||
|
-DNO_CUDA=ON
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
else()
|
else()
|
||||||
set(OPENSUBDIV_EXTRA_ARGS
|
set(OPENSUBDIV_EXTRA_ARGS
|
||||||
${OPENSUBDIV_EXTRA_ARGS}
|
${OPENSUBDIV_EXTRA_ARGS}
|
||||||
-DTBB_INCLUDE_DIR=${LIBDIR}/tbb/include
|
-DNO_CUDA=ON
|
||||||
-DTBB_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb${SHAREDLIBEXT}
|
-DCUEW_INCLUDE_DIR=${LIBDIR}/cuew/include
|
||||||
|
-DCLEW_INCLUDE_DIR=${LIBDIR}/clew/include/CL
|
||||||
|
-DCLEW_LIBRARY=${LIBDIR}/clew/lib/static/${LIBPREFIX}clew${LIBEXT}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -64,5 +92,9 @@ endif()
|
|||||||
|
|
||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_opensubdiv
|
external_opensubdiv
|
||||||
|
external_glew
|
||||||
|
external_glfw
|
||||||
|
external_clew
|
||||||
|
external_cuew
|
||||||
external_tbb
|
external_tbb
|
||||||
)
|
)
|
||||||
|
@@ -1,54 +1,85 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
set(BLOSC_POST _d)
|
set(BLOSC_POST _d)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
set(OPENVDB_SHARED ON)
|
||||||
|
set(OPENVDB_STATIC OFF)
|
||||||
|
else()
|
||||||
|
set(OPENVDB_SHARED OFF)
|
||||||
|
set(OPENVDB_STATIC ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(OPENVDB_EXTRA_ARGS
|
set(OPENVDB_EXTRA_ARGS
|
||||||
${DEFAULT_BOOST_FLAGS}
|
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||||
-DUSE_STATIC_DEPENDENCIES=OFF # This is the global toggle for static libs
|
-DBoost_USE_MULTITHREADED=ON
|
||||||
# Once the above switch is off, you can set it
|
-DBoost_USE_STATIC_LIBS=ON
|
||||||
# for each individual library below.
|
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||||
-DBLOSC_USE_STATIC_LIBS=ON
|
-DBOOST_ROOT=${LIBDIR}/boost
|
||||||
-DTBB_USE_STATIC_LIBS=OFF
|
-DBoost_NO_SYSTEM_PATHS=ON
|
||||||
-DBoost_USE_STATIC_LIBS=OFF
|
-DBoost_NO_BOOST_CMAKE=ON
|
||||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||||
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
-DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/
|
||||||
-DBlosc_INCLUDE_DIR=${LIBDIR}/blosc/include/
|
-DBlosc_INCLUDE_DIR=${LIBDIR}/blosc/include/
|
||||||
-DBlosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
-DBlosc_LIBRARY=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
||||||
-DBlosc_LIBRARY_RELEASE=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
-DOPENVDB_ENABLE_3_ABI_COMPATIBLE=OFF
|
||||||
-DBlosc_LIBRARY_DEBUG=${LIBDIR}/blosc/lib/libblosc${BLOSC_POST}${LIBEXT}
|
-DOPENVDB_BUILD_UNITTESTS=Off
|
||||||
-DOPENVDB_BUILD_UNITTESTS=OFF
|
-DOPENVDB_BUILD_PYTHON_MODULE=Off
|
||||||
-DOPENVDB_BUILD_NANOVDB=ON
|
|
||||||
-DNANOVDB_BUILD_TOOLS=OFF
|
|
||||||
-DBlosc_ROOT=${LIBDIR}/blosc/
|
-DBlosc_ROOT=${LIBDIR}/blosc/
|
||||||
-DTBB_ROOT=${LIBDIR}/tbb/
|
-DTBB_ROOT=${LIBDIR}/tbb/
|
||||||
-DTbb_INCLUDE_DIR=${LIBDIR}/tbb/include
|
-DOpenEXR_ROOT=${LIBDIR}/openexr
|
||||||
-DTbb_LEGACY_INCLUDE_DIR=${LIBDIR}/tbb/include
|
-DIlmBase_ROOT=${LIBDIR}/openexr
|
||||||
-DOPENVDB_CORE_SHARED=ON
|
-DOPENEXR_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||||
-DOPENVDB_CORE_STATIC=OFF
|
# All libs live in openexr, even the ilmbase ones
|
||||||
-DOPENVDB_BUILD_BINARIES=OFF
|
-DILMBASE_LIBRARYDIR=${LIBDIR}/openexr/lib
|
||||||
|
-DOPENVDB_CORE_SHARED=${OPENVDB_SHARED}
|
||||||
|
-DOPENVDB_CORE_STATIC=${OPENVDB_STATIC}
|
||||||
|
-DOPENVDB_BUILD_BINARIES=Off
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
-DCMAKE_DEBUG_POSTFIX=_d
|
||||||
-DBLOSC_USE_STATIC_LIBS=ON
|
-DILMBASE_USE_STATIC_LIBS=On
|
||||||
-DUSE_NANOVDB=ON
|
-DOPENEXR_USE_STATIC_LIBS=On
|
||||||
-DOPENVDB_BUILD_PYTHON_MODULE=ON
|
|
||||||
-DOPENVDB_PYTHON_WRAP_ALL_GRID_TYPES=ON
|
|
||||||
-DUSE_NUMPY=ON
|
|
||||||
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
|
|
||||||
# OPENVDB_AX Disabled for now as it adds ~25MB distribution wise
|
|
||||||
# with no blender code depending on it, seems wasteful.
|
|
||||||
# -DOPENVDB_BUILD_AX=ON
|
|
||||||
# -DOPENVDB_AX_SHARED=ON
|
|
||||||
# -DOPENVDB_AX_STATIC=OFF
|
|
||||||
# -DLLVM_DIR=${LIBDIR}/llvm/lib/cmake/llvm
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
# Namespaces seem to be buggy and cause linker errors due to things not
|
||||||
|
# being in the correct namespace
|
||||||
|
# needs to link pthreads due to it being a blosc dependency
|
||||||
|
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
|
||||||
|
-DCMAKE_CXX_STANDARD_LIBRARIES="${LIBDIR}/pthreads/lib/pthreadVC3.lib"
|
||||||
|
-DUSE_EXR=On
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
# OpenVDB can't find the _static libraries automatically.
|
||||||
|
set(OPENVDB_EXTRA_ARGS ${OPENVDB_EXTRA_ARGS}
|
||||||
|
-DTbb_LIBRARIES=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||||
|
-DTbb_tbb_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbb_static${LIBEXT}
|
||||||
|
-DTbb_tbbmalloc_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_static${LIBEXT}
|
||||||
|
-DTbb_tbbmalloc_proxy_LIBRARY=${LIBDIR}/tbb/lib/${LIBPREFIX}tbbmalloc_proxy_static${LIBEXT}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(openvdb
|
ExternalProject_Add(openvdb
|
||||||
URL file://${PACKAGE_DIR}/${OPENVDB_FILE}
|
URL file://${PACKAGE_DIR}/${OPENVDB_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${OPENVDB_HASH_TYPE}=${OPENVDB_HASH}
|
URL_HASH ${OPENVDB_HASH_TYPE}=${OPENVDB_HASH}
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
PREFIX ${BUILD_DIR}/openvdb
|
PREFIX ${BUILD_DIR}/openvdb
|
||||||
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb.diff
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/openvdb/src/openvdb < ${PATCH_DIR}/openvdb.diff
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openvdb ${DEFAULT_CMAKE_FLAGS} ${OPENVDB_EXTRA_ARGS}
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openvdb ${DEFAULT_CMAKE_FLAGS} ${OPENVDB_EXTRA_ARGS}
|
||||||
@@ -59,19 +90,17 @@ add_dependencies(
|
|||||||
openvdb
|
openvdb
|
||||||
external_tbb
|
external_tbb
|
||||||
external_boost
|
external_boost
|
||||||
|
external_openexr
|
||||||
external_zlib
|
external_zlib
|
||||||
external_blosc
|
external_blosc
|
||||||
external_python
|
|
||||||
external_numpy
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
if(BUILD_MODE STREQUAL Release)
|
if(BUILD_MODE STREQUAL Release)
|
||||||
ExternalProject_Add_Step(openvdb after_install
|
ExternalProject_Add_Step(openvdb after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include ${HARVEST_TARGET}/openvdb/include
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openvdb/include/openvdb ${HARVEST_TARGET}/openvdb/include/openvdb
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb.lib ${HARVEST_TARGET}/openvdb/lib/openvdb.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb.dll ${HARVEST_TARGET}/openvdb/bin/openvdb.dll
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/python${PYTHON_SHORT_VERSION}/site-packages/pyopenvdb.pyd ${HARVEST_TARGET}openvdb/python/pyopenvdb.pyd
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
@@ -79,7 +108,6 @@ if(WIN32)
|
|||||||
ExternalProject_Add_Step(openvdb after_install
|
ExternalProject_Add_Step(openvdb after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb_d.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/openvdb_d.lib ${HARVEST_TARGET}/openvdb/lib/openvdb_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb_d.dll ${HARVEST_TARGET}/openvdb/bin/openvdb_d.dll
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/bin/openvdb_d.dll ${HARVEST_TARGET}/openvdb/bin/openvdb_d.dll
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openvdb/lib/python${PYTHON_SHORT_VERSION}/site-packages/pyopenvdb_d.pyd ${HARVEST_TARGET}openvdb/python/pyopenvdb_d.pyd
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,10 +1,26 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/fftw3 by installing mingw64" ON)
|
option(ENABLE_MINGW64 "Enable building of ffmpeg/iconv/libsndfile/fftw3 by installing mingw64" ON)
|
||||||
endif()
|
endif()
|
||||||
option(FORCE_CHECK_HASH "Force a check of all hashses during CMake the configure phase" OFF)
|
option(WITH_WEBP "Enable building of oiio with webp support" OFF)
|
||||||
|
option(WITH_BOOST_PYTHON "Enable building of boost with python support" OFF)
|
||||||
cmake_host_system_information(RESULT NUM_CORES QUERY NUMBER_OF_LOGICAL_CORES)
|
cmake_host_system_information(RESULT NUM_CORES QUERY NUMBER_OF_LOGICAL_CORES)
|
||||||
set(MAKE_THREADS ${NUM_CORES} CACHE STRING "Number of threads to run make with")
|
set(MAKE_THREADS ${NUM_CORES} CACHE STRING "Number of threads to run make with")
|
||||||
|
|
||||||
@@ -16,14 +32,14 @@ message("BuildMode = ${BUILD_MODE}")
|
|||||||
|
|
||||||
if(BUILD_MODE STREQUAL "Debug")
|
if(BUILD_MODE STREQUAL "Debug")
|
||||||
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Debug)
|
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Debug)
|
||||||
else()
|
else(BUILD_MODE STREQUAL "Debug")
|
||||||
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Release)
|
set(LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/Release)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(DOWNLOAD_DIR "${CMAKE_CURRENT_BINARY_DIR}/downloads" CACHE STRING "Path for downloaded files")
|
set(DOWNLOAD_DIR "${CMAKE_CURRENT_BINARY_DIR}/downloads" CACHE STRING "Path for downloaded files")
|
||||||
|
# This path must be hard-coded like this, so that the GNUmakefile knows where it is and can pass it to make_source_archive.py:
|
||||||
set(PACKAGE_DIR "${CMAKE_CURRENT_BINARY_DIR}/packages" CACHE PATH "default path for downloaded packages")
|
set(PACKAGE_DIR "${CMAKE_CURRENT_BINARY_DIR}/packages")
|
||||||
option(PACKAGE_USE_UPSTREAM_SOURCES "Use sources upstream to download the package sources, when OFF the blender mirror will be used" ON)
|
option(PACKAGE_USE_UPSTREAM_SOURCES "Use soures upstream to download the package sources, when OFF the blender mirror will be used" ON)
|
||||||
|
|
||||||
file(TO_CMAKE_PATH ${DOWNLOAD_DIR} DOWNLOAD_DIR)
|
file(TO_CMAKE_PATH ${DOWNLOAD_DIR} DOWNLOAD_DIR)
|
||||||
file(TO_CMAKE_PATH ${PACKAGE_DIR} PACKAGE_DIR)
|
file(TO_CMAKE_PATH ${PACKAGE_DIR} PACKAGE_DIR)
|
||||||
@@ -39,38 +55,32 @@ message("BUILD_DIR = ${BUILD_DIR}")
|
|||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/patch.exe)
|
set(PATCH_CMD ${DOWNLOAD_DIR}/mingw/mingw64/msys/1.0/bin/patch.exe)
|
||||||
set(LIBEXT ".lib")
|
set(LIBEXT ".lib")
|
||||||
set(SHAREDLIBEXT ".lib")
|
|
||||||
set(LIBPREFIX "")
|
set(LIBPREFIX "")
|
||||||
set(MESON ${LIBDIR}/python/Scripts/meson)
|
|
||||||
# For OIIO and OSL
|
# For OIIO and OSL
|
||||||
set(COMMON_DEFINES /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
|
set(COMMON_DEFINES /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS)
|
||||||
|
|
||||||
if(MSVC_VERSION GREATER 1909)
|
if(MSVC_VERSION GREATER 1909)
|
||||||
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
|
set(COMMON_MSVC_FLAGS "/Wv:18") #some deps with warnings as error aren't quite ready for dealing with the new 2017 warnings.
|
||||||
endif()
|
endif()
|
||||||
string(APPEND COMMON_MSVC_FLAGS " /bigobj")
|
string(APPEND COMMON_MSVC_FLAGS " /bigobj")
|
||||||
# To keep MSVC from oversubscribing the CPU, force it to single threaded mode
|
if(WITH_OPTIMIZED_DEBUG)
|
||||||
# msbuild/ninja will queue as many compile units as there are cores, no need for
|
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
# msvc to be internally threading as well.
|
else()
|
||||||
string(APPEND COMMON_MSVC_FLAGS " /cgthreads1 ")
|
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
|
endif()
|
||||||
|
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
|
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
|
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
|
|
||||||
if(WITH_OPTIMIZED_DEBUG)
|
if(WITH_OPTIMIZED_DEBUG)
|
||||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D_DEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
else()
|
else()
|
||||||
set(BLENDER_CMAKE_C_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /D_DEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
endif()
|
endif()
|
||||||
set(BLENDER_CMAKE_C_FLAGS_MINSIZEREL "/MD ${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MD /${COMMON_MSVC_FLAGS} /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
set(BLENDER_CMAKE_C_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /DNDEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
set(BLENDER_CMAKE_C_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=1 /DOIIO_STATIC_BUILD /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
||||||
|
|
||||||
if(WITH_OPTIMIZED_DEBUG)
|
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/MDd ${COMMON_MSVC_FLAGS} /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /O2 /Ob2 /D_DEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS /DBOOST_DEBUG_PYTHON /DBOOST_ALL_NO_LIB")
|
|
||||||
else()
|
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /D PLATFORM_WINDOWS /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /MTd ${COMMON_MSVC_FLAGS} /Zi /Ob0 /Od /RTC1 /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS /DBOOST_DEBUG_PYTHON /DBOOST_ALL_NO_LIB")
|
|
||||||
endif()
|
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL "/MD /${COMMON_MSVC_FLAGS} /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /O1 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_RELEASE "/MD ${COMMON_MSVC_FLAGS} /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /O2 /Ob2 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
|
||||||
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MD ${COMMON_MSVC_FLAGS} /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS /Zi /O2 /Ob1 /D NDEBUG /D PLATFORM_WINDOWS /DPSAPI_VERSION=2 /DTINYFORMAT_ALLOW_WCHAR_STRINGS")
|
|
||||||
|
|
||||||
set(PLATFORM_FLAGS)
|
set(PLATFORM_FLAGS)
|
||||||
set(PLATFORM_CXX_FLAGS)
|
set(PLATFORM_CXX_FLAGS)
|
||||||
@@ -81,18 +91,6 @@ if(WIN32)
|
|||||||
set(PERL_SHELL ${DOWNLOAD_DIR}/perl/portableshell.bat)
|
set(PERL_SHELL ${DOWNLOAD_DIR}/perl/portableshell.bat)
|
||||||
set(MINGW_HOST x86_64-w64-mingw32)
|
set(MINGW_HOST x86_64-w64-mingw32)
|
||||||
|
|
||||||
# some build systems like meson will respect the *nix like environment vars
|
|
||||||
# like CFLAGS and LDFlags but will still build with the MSVC compiler, so for
|
|
||||||
# those we need to empty out the gcc style flags that are normally in there.
|
|
||||||
set(CONFIGURE_ENV_MSVC
|
|
||||||
cd ${MINGW_PATH} &&
|
|
||||||
call ${PERL_SHELL} &&
|
|
||||||
call ${MINGW_SHELL} &&
|
|
||||||
set path &&
|
|
||||||
set CFLAGS= &&
|
|
||||||
set LDFLAGS=
|
|
||||||
)
|
|
||||||
|
|
||||||
set(CONFIGURE_ENV
|
set(CONFIGURE_ENV
|
||||||
cd ${MINGW_PATH} &&
|
cd ${MINGW_PATH} &&
|
||||||
call ${PERL_SHELL} &&
|
call ${PERL_SHELL} &&
|
||||||
@@ -116,20 +114,36 @@ else()
|
|||||||
set(PATCH_CMD patch)
|
set(PATCH_CMD patch)
|
||||||
set(LIBEXT ".a")
|
set(LIBEXT ".a")
|
||||||
set(LIBPREFIX "lib")
|
set(LIBPREFIX "lib")
|
||||||
set(MESON ${LIBDIR}/python/bin/meson)
|
|
||||||
if(APPLE)
|
|
||||||
set(SHAREDLIBEXT ".dylib")
|
|
||||||
|
|
||||||
# Use same Xcode detection as Blender itself.
|
if(APPLE)
|
||||||
include(../cmake/platform/platform_apple_xcode.cmake)
|
# Let's get the current Xcode dir, to support xcode-select
|
||||||
|
execute_process(
|
||||||
|
COMMAND xcode-select --print-path
|
||||||
|
OUTPUT_VARIABLE XCODE_DEV_PATH OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
execute_process(
|
||||||
|
COMMAND xcodebuild -version -sdk macosx SDKVersion
|
||||||
|
OUTPUT_VARIABLE MACOSX_SDK_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
if(NOT CMAKE_OSX_ARCHITECTURES)
|
||||||
|
execute_process(COMMAND uname -m OUTPUT_VARIABLE ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
message(STATUS "Detected native architecture ${ARCHITECTURE}.")
|
||||||
|
set(CMAKE_OSX_ARCHITECTURES "${ARCHITECTURE}")
|
||||||
|
endif()
|
||||||
|
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||||
|
set(OSX_DEPLOYMENT_TARGET 10.13)
|
||||||
|
else()
|
||||||
|
set(OSX_DEPLOYMENT_TARGET 11.00)
|
||||||
|
endif()
|
||||||
|
set(OSX_SYSROOT ${XCODE_DEV_PATH}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk)
|
||||||
|
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")
|
||||||
set(BLENDER_PLATFORM_ARM ON)
|
set(BLENDER_PLATFORM_ARM ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PLATFORM_CFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
set(PLATFORM_CFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||||
set(PLATFORM_CXXFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -std=c++17 -stdlib=libc++ -arch ${CMAKE_OSX_ARCHITECTURES}")
|
set(PLATFORM_CXXFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -std=c++11 -stdlib=libc++ -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||||
set(PLATFORM_LDFLAGS "-isysroot ${CMAKE_OSX_SYSROOT} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
set(PLATFORM_LDFLAGS "-isysroot ${OSX_SYSROOT} -mmacosx-version-min=${OSX_DEPLOYMENT_TARGET} -arch ${CMAKE_OSX_ARCHITECTURES}")
|
||||||
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
if("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64")
|
||||||
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin17.0.0) # OS X 10.13
|
set(PLATFORM_BUILD_TARGET --build=x86_64-apple-darwin17.0.0) # OS X 10.13
|
||||||
else()
|
else()
|
||||||
@@ -137,18 +151,16 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
set(PLATFORM_CMAKE_FLAGS
|
set(PLATFORM_CMAKE_FLAGS
|
||||||
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}
|
||||||
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
|
-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${OSX_DEPLOYMENT_TARGET}
|
||||||
-DCMAKE_OSX_SYSROOT:PATH=${CMAKE_OSX_SYSROOT}
|
-DCMAKE_OSX_SYSROOT:PATH=${OSX_SYSROOT}
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(SHAREDLIBEXT ".so")
|
|
||||||
|
|
||||||
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64")
|
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64")
|
||||||
set(BLENDER_PLATFORM_ARM ON)
|
set(BLENDER_PLATFORM_ARM ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PLATFORM_CFLAGS "-fPIC")
|
set(PLATFORM_CFLAGS "-fPIC")
|
||||||
set(PLATFORM_CXXFLAGS "-std=c++17 -fPIC")
|
set(PLATFORM_CXXFLAGS "-std=c++11 -fPIC")
|
||||||
set(PLATFORM_LDFLAGS)
|
set(PLATFORM_LDFLAGS)
|
||||||
set(PLATFORM_BUILD_TARGET)
|
set(PLATFORM_BUILD_TARGET)
|
||||||
set(PLATFORM_CMAKE_FLAGS -DCMAKE_INSTALL_LIBDIR=lib)
|
set(PLATFORM_CMAKE_FLAGS -DCMAKE_INSTALL_LIBDIR=lib)
|
||||||
@@ -174,8 +186,8 @@ else()
|
|||||||
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CXXFLAGS}")
|
set(BLENDER_CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${PLATFORM_CXXFLAGS}")
|
||||||
|
|
||||||
set(CONFIGURE_ENV
|
set(CONFIGURE_ENV
|
||||||
export MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} &&
|
export MACOSX_DEPLOYMENT_TARGET=${OSX_DEPLOYMENT_TARGET} &&
|
||||||
export MACOSX_SDK_VERSION=${CMAKE_OSX_DEPLOYMENT_TARGET} &&
|
export MACOSX_SDK_VERSION=${OSX_DEPLOYMENT_TARGET} &&
|
||||||
export CFLAGS=${PLATFORM_CFLAGS} &&
|
export CFLAGS=${PLATFORM_CFLAGS} &&
|
||||||
export CXXFLAGS=${PLATFORM_CXXFLAGS} &&
|
export CXXFLAGS=${PLATFORM_CXXFLAGS} &&
|
||||||
export LDFLAGS=${PLATFORM_LDFLAGS}
|
export LDFLAGS=${PLATFORM_LDFLAGS}
|
||||||
@@ -195,7 +207,6 @@ set(DEFAULT_CMAKE_FLAGS
|
|||||||
-DCMAKE_CXX_FLAGS_MINSIZEREL=${BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL}
|
-DCMAKE_CXX_FLAGS_MINSIZEREL=${BLENDER_CMAKE_CXX_FLAGS_MINSIZEREL}
|
||||||
-DCMAKE_CXX_FLAGS_RELEASE=${BLENDER_CMAKE_CXX_FLAGS_RELEASE}
|
-DCMAKE_CXX_FLAGS_RELEASE=${BLENDER_CMAKE_CXX_FLAGS_RELEASE}
|
||||||
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
|
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}
|
||||||
-DCMAKE_CXX_STANDARD=17
|
|
||||||
${PLATFORM_CMAKE_FLAGS}
|
${PLATFORM_CMAKE_FLAGS}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -214,11 +225,3 @@ if(MSVC)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_INSTALL_MESSAGE LAZY)
|
set(CMAKE_INSTALL_MESSAGE LAZY)
|
||||||
|
|
||||||
# On windows we sometimes want to build with ninja, but not all projects quite
|
|
||||||
# yet, so for select project we pass PLATFORM_ALT_GENERATOR as the generator
|
|
||||||
if(WIN32)
|
|
||||||
set(PLATFORM_ALT_GENERATOR "Ninja")
|
|
||||||
else()
|
|
||||||
set(PLATFORM_ALT_GENERATOR "Unix Makefiles")
|
|
||||||
endif()
|
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
ExternalProject_Add(external_opus
|
ExternalProject_Add(external_opus
|
||||||
URL file://${PACKAGE_DIR}/${OPUS_FILE}
|
URL file://${PACKAGE_DIR}/${OPUS_FILE}
|
||||||
@@ -9,7 +25,6 @@ ExternalProject_Add(external_opus
|
|||||||
--disable-shared
|
--disable-shared
|
||||||
--enable-static
|
--enable-static
|
||||||
--with-pic
|
--with-pic
|
||||||
--disable-maintainer-mode
|
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/opus/src/external_opus/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/opus/src/external_opus/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/opus/src/external_opus/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/opus/src/external_opus/ && make install
|
||||||
INSTALL_DIR ${LIBDIR}/opus
|
INSTALL_DIR ${LIBDIR}/opus
|
||||||
|
@@ -1,17 +1,51 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
|
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}")
|
||||||
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
|
set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe)
|
||||||
|
set(OSL_SIMD_FLAGS -DOIIO_NOSIMD=1 -DOIIO_SIMD=sse2)
|
||||||
else()
|
else()
|
||||||
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES)
|
set(OSL_CMAKE_CXX_STANDARD_LIBRARIES)
|
||||||
set(OSL_FLEX_BISON)
|
set(OSL_FLEX_BISON)
|
||||||
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/OpenImageIO${SHAREDLIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpeg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/IlmImf${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}")
|
set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(OSL_ILMBASE_CUSTOM_LIBRARIES "${LIBDIR}/openexr/lib/Imath${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Half{OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/IlmThread${OPENEXR_VERSION_POSTFIX}.lib^^${LIBDIR}/openexr/lib/Iex${OPENEXR_VERSION_POSTFIX}.lib")
|
||||||
|
|
||||||
set(OSL_EXTRA_ARGS
|
set(OSL_EXTRA_ARGS
|
||||||
${DEFAULT_BOOST_FLAGS}
|
-DBoost_COMPILER:STRING=${BOOST_COMPILER_STRING}
|
||||||
|
-DBoost_USE_MULTITHREADED=ON
|
||||||
|
-DBoost_USE_STATIC_LIBS=ON
|
||||||
|
-DBoost_USE_STATIC_RUNTIME=OFF
|
||||||
|
-DBOOST_ROOT=${LIBDIR}/boost
|
||||||
|
-DBOOST_LIBRARYDIR=${LIBDIR}/boost/lib/
|
||||||
|
-DBoost_NO_SYSTEM_PATHS=ON
|
||||||
|
-DBoost_NO_BOOST_CMAKE=ON
|
||||||
-DOpenEXR_ROOT=${LIBDIR}/openexr/
|
-DOpenEXR_ROOT=${LIBDIR}/openexr/
|
||||||
|
-DIlmBase_ROOT=${LIBDIR}/openexr/
|
||||||
|
-DILMBASE_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||||
|
-DOPENEXR_HALF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Half${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_IMATH_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Imath${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_ILMTHREAD_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmThread${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_IEX_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}Iex${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
|
-DOPENEXR_INCLUDE_DIR=${LIBDIR}/openexr/include/
|
||||||
|
-DOPENEXR_ILMIMF_LIBRARY=${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}
|
||||||
-DOpenImageIO_ROOT=${LIBDIR}/openimageio/
|
-DOpenImageIO_ROOT=${LIBDIR}/openimageio/
|
||||||
-DOSL_BUILD_TESTS=OFF
|
-DOSL_BUILD_TESTS=OFF
|
||||||
-DOSL_BUILD_MATERIALX=OFF
|
-DOSL_BUILD_MATERIALX=OFF
|
||||||
@@ -21,7 +55,7 @@ set(OSL_EXTRA_ARGS
|
|||||||
${OSL_FLEX_BISON}
|
${OSL_FLEX_BISON}
|
||||||
-DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES}
|
-DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES}
|
||||||
-DBUILD_SHARED_LIBS=OFF
|
-DBUILD_SHARED_LIBS=OFF
|
||||||
-DLINKSTATIC=OFF
|
-DLINKSTATIC=ON
|
||||||
-DOSL_BUILD_PLUGINS=OFF
|
-DOSL_BUILD_PLUGINS=OFF
|
||||||
-DSTOP_ON_WARNING=OFF
|
-DSTOP_ON_WARNING=OFF
|
||||||
-DUSE_LLVM_BITCODE=OFF
|
-DUSE_LLVM_BITCODE=OFF
|
||||||
@@ -31,18 +65,15 @@ set(OSL_EXTRA_ARGS
|
|||||||
-DUSE_QT=OFF
|
-DUSE_QT=OFF
|
||||||
-DUSE_Qt5=OFF
|
-DUSE_Qt5=OFF
|
||||||
-DINSTALL_DOCS=OFF
|
-DINSTALL_DOCS=OFF
|
||||||
|
${OSL_SIMD_FLAGS}
|
||||||
-Dpugixml_ROOT=${LIBDIR}/pugixml
|
-Dpugixml_ROOT=${LIBDIR}/pugixml
|
||||||
-DTIFF_ROOT=${LIBDIR}/tiff
|
|
||||||
-DJPEG_ROOT=${LIBDIR}/jpeg
|
|
||||||
-DUSE_PYTHON=OFF
|
-DUSE_PYTHON=OFF
|
||||||
-DImath_ROOT=${LIBDIR}/imath
|
-DCMAKE_CXX_STANDARD=14
|
||||||
-DUSE_OIIO_STATIC=OFF
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ExternalProject_Add(external_osl
|
ExternalProject_Add(external_osl
|
||||||
URL file://${PACKAGE_DIR}/${OSL_FILE}
|
URL file://${PACKAGE_DIR}/${OSL_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
LIST_SEPARATOR ^^
|
LIST_SEPARATOR ^^
|
||||||
URL_HASH ${OSL_HASH_TYPE}=${OSL_HASH}
|
URL_HASH ${OSL_HASH_TYPE}=${OSL_HASH}
|
||||||
PREFIX ${BUILD_DIR}/osl
|
PREFIX ${BUILD_DIR}/osl
|
||||||
@@ -84,7 +115,6 @@ if(WIN32)
|
|||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslnoise.lib ${HARVEST_TARGET}/osl/lib/oslnoise_d.lib
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
set(PYTARGET ${HARVEST_TARGET}/python/${PYTHON_SHORT_VERSION_NO_DOTS})
|
set(PYTARGET ${HARVEST_TARGET}/python/${PYTHON_SHORT_VERSION_NO_DOTS})
|
||||||
@@ -8,7 +24,7 @@ if(MSVC)
|
|||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
OUTPUT ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||||
COMMAND echo packaging python
|
COMMAND echo packaging python
|
||||||
COMMAND echo this should output at ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
COMMAND echo this should ouput at ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTARGET}/libs
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTARGET}/libs
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib ${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib ${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python.exe ${PYTARGET}/bin/python.exe
|
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python.exe ${PYTARGET}/bin/python.exe
|
||||||
@@ -27,7 +43,7 @@ if(MSVC)
|
|||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
OUTPUT ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||||
COMMAND echo packaging python
|
COMMAND echo packaging python
|
||||||
COMMAND echo this should output at ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
COMMAND echo this should ouput at ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTARGET}/libs
|
COMMAND ${CMAKE_COMMAND} -E make_directory ${PYTARGET}/libs
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib ${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib ${PYTARGET}/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python${PYTHON_POSTFIX}.exe ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
COMMAND ${CMAKE_COMMAND} -E copy ${PYSRC}/python${PYTHON_POSTFIX}.exe ${PYTARGET}/bin/python${PYTHON_POSTFIX}.exe
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(PNG_EXTRA_ARGS
|
set(PNG_EXTRA_ARGS
|
||||||
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
-DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY}
|
||||||
@@ -24,14 +40,6 @@ add_dependencies(
|
|||||||
external_zlib
|
external_zlib
|
||||||
)
|
)
|
||||||
|
|
||||||
if(WIN32 AND BUILD_MODE STREQUAL Release)
|
|
||||||
ExternalProject_Add_Step(external_png after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/png/include/ ${HARVEST_TARGET}/png/include/
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_static${LIBEXT} ${HARVEST_TARGET}/png/lib/libpng${LIBEXT}
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
||||||
ExternalProject_Add_Step(external_png after_install
|
ExternalProject_Add_Step(external_png after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_staticd${LIBEXT} ${LIBDIR}/png/lib/libpng16${LIBEXT}
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/png/lib/libpng16_staticd${LIBEXT} ${LIBDIR}/png/lib/libpng16${LIBEXT}
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(POTRACE_EXTRA_ARGS
|
set(POTRACE_EXTRA_ARGS
|
||||||
)
|
)
|
||||||
@@ -15,8 +31,8 @@ if((WIN32 AND BUILD_MODE STREQUAL Release) OR UNIX)
|
|||||||
)
|
)
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
ExternalProject_Add_Step(external_potrace after_install
|
ExternalProject_Add_Step(external_potrace after_install
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/potrace ${HARVEST_TARGET}/potrace
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/potrace ${HARVEST_TARGET}/potrace
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,37 +1,54 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
|
|
||||||
if(MSVC14) # vs2015 has timespec
|
if(MSVC14) # vs2015 has timespec
|
||||||
set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H /D_TIMESPEC_DEFINED ")
|
set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H /D_TIMESPEC_DEFINED ")
|
||||||
else() # everything before doesn't
|
else() # everything before doesn't
|
||||||
set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H ")
|
set(PTHREAD_CPPFLAGS "/I. /DHAVE_CONFIG_H ")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PTHREADS_BUILD cd ${BUILD_DIR}/pthreads/src/external_pthreads/ && cd && nmake VC-static /e CPPFLAGS=${PTHREAD_CPPFLAGS})
|
set(PTHREADS_BUILD cd ${BUILD_DIR}/pthreads/src/external_pthreads/ && cd && nmake VC-static /e CPPFLAGS=${PTHREAD_CPPFLAGS})
|
||||||
|
|
||||||
ExternalProject_Add(external_pthreads
|
ExternalProject_Add(external_pthreads
|
||||||
URL file://${PACKAGE_DIR}/${PTHREADS_FILE}
|
URL file://${PACKAGE_DIR}/${PTHREADS_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${PTHREADS_HASH_TYPE}=${PTHREADS_HASH}
|
URL_HASH ${PTHREADS_HASH_TYPE}=${PTHREADS_HASH}
|
||||||
PREFIX ${BUILD_DIR}/pthreads
|
PREFIX ${BUILD_DIR}/pthreads
|
||||||
CONFIGURE_COMMAND echo .
|
CONFIGURE_COMMAND echo .
|
||||||
PATCH_COMMAND COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/pthreads/src/external_pthreads < ${PATCH_DIR}/pthreads.diff
|
PATCH_COMMAND COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/pthreads/src/external_pthreads < ${PATCH_DIR}/pthreads.diff
|
||||||
BUILD_COMMAND ${PTHREADS_BUILD}
|
BUILD_COMMAND ${PTHREADS_BUILD}
|
||||||
INSTALL_COMMAND COMMAND
|
INSTALL_COMMAND COMMAND
|
||||||
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/libpthreadVC3${LIBEXT} ${LIBDIR}/pthreads/lib/pthreadVC3${LIBEXT} &&
|
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/libpthreadVC3${LIBEXT} ${LIBDIR}/pthreads/lib/pthreadVC3${LIBEXT} &&
|
||||||
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/pthread.h ${LIBDIR}/pthreads/inc/pthread.h &&
|
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/pthread.h ${LIBDIR}/pthreads/inc/pthread.h &&
|
||||||
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/sched.h ${LIBDIR}/pthreads/inc/sched.h &&
|
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/sched.h ${LIBDIR}/pthreads/inc/sched.h &&
|
||||||
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/semaphore.h ${LIBDIR}/pthreads/inc/semaphore.h &&
|
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/semaphore.h ${LIBDIR}/pthreads/inc/semaphore.h &&
|
||||||
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/_ptw32.h ${LIBDIR}/pthreads/inc/_ptw32.h
|
${CMAKE_COMMAND} -E copy ${BUILD_DIR}/pthreads/src/external_pthreads/_ptw32.h ${LIBDIR}/pthreads/inc/_ptw32.h
|
||||||
INSTALL_DIR ${LIBDIR}/pthreads
|
INSTALL_DIR ${LIBDIR}/pthreads
|
||||||
)
|
|
||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
|
||||||
ExternalProject_Add_Step(external_pthreads after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/inc/ ${HARVEST_TARGET}/pthreads/include/
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/lib/ ${HARVEST_TARGET}/pthreads/lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
if(BUILD_MODE STREQUAL Release)
|
||||||
|
ExternalProject_Add_Step(external_pthreads after_install
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/inc/ ${HARVEST_TARGET}/pthreads/include/
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pthreads/lib/ ${HARVEST_TARGET}/pthreads/lib
|
||||||
|
DEPENDEES install
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(PUGIXML_EXTRA_ARGS
|
set(PUGIXML_EXTRA_ARGS
|
||||||
)
|
)
|
||||||
|
@@ -1,21 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(PYBIND11_EXTRA_ARGS
|
|
||||||
-DPYBIND11_TEST=OFF
|
|
||||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_pybind11
|
|
||||||
URL file://${PACKAGE_DIR}/${PYBIND11_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${PYBIND11_HASH_TYPE}=${PYBIND11_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/pybind11
|
|
||||||
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/pybind11 ${DEFAULT_CMAKE_FLAGS} ${PYBIND11_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/pybind11
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_pybind11
|
|
||||||
external_python
|
|
||||||
)
|
|
@@ -1,22 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(PYSTRING_EXTRA_ARGS
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_pystring
|
|
||||||
URL file://${PACKAGE_DIR}/${PYSTRING_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${PYSTRING_HASH_TYPE}=${PYSTRING_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/pystring
|
|
||||||
PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_pystring.txt ${BUILD_DIR}/pystring/src/external_pystring/CMakeLists.txt
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/pystring ${DEFAULT_CMAKE_FLAGS} ${PYSTRING_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/pystring
|
|
||||||
)
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
ExternalProject_Add_Step(external_pystring after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pystring/lib ${HARVEST_TARGET}/pystring/lib
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/pystring/include ${HARVEST_TARGET}/pystring/include
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(PYTHON_POSTFIX)
|
set(PYTHON_POSTFIX)
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
if(BUILD_MODE STREQUAL Debug)
|
||||||
@@ -15,13 +31,9 @@ if(WIN32)
|
|||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals)
|
set(PYTHON_EXTERNALS_FOLDER ${BUILD_DIR}/python/src/external_python/externals)
|
||||||
set(ZLIB_SOURCE_FOLDER ${BUILD_DIR}/zlib/src/external_zlib)
|
|
||||||
set(SSL_SOURCE_FOLDER ${BUILD_DIR}/ssl/src/external_ssl)
|
|
||||||
set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals)
|
set(DOWNLOADS_EXTERNALS_FOLDER ${DOWNLOAD_DIR}/externals)
|
||||||
|
|
||||||
cmake_to_dos_path(${PYTHON_EXTERNALS_FOLDER} PYTHON_EXTERNALS_FOLDER_DOS)
|
cmake_to_dos_path(${PYTHON_EXTERNALS_FOLDER} PYTHON_EXTERNALS_FOLDER_DOS)
|
||||||
cmake_to_dos_path(${ZLIB_SOURCE_FOLDER} ZLIB_SOURCE_FOLDER_DOS)
|
|
||||||
cmake_to_dos_path(${SSL_SOURCE_FOLDER} SSL_SOURCE_FOLDER_DOS)
|
|
||||||
cmake_to_dos_path(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS)
|
cmake_to_dos_path(${DOWNLOADS_EXTERNALS_FOLDER} DOWNLOADS_EXTERNALS_FOLDER_DOS)
|
||||||
|
|
||||||
ExternalProject_Add(external_python
|
ExternalProject_Add(external_python
|
||||||
@@ -29,23 +41,11 @@ if(WIN32)
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${PYTHON_HASH_TYPE}=${PYTHON_HASH}
|
URL_HASH ${PYTHON_HASH_TYPE}=${PYTHON_HASH}
|
||||||
PREFIX ${BUILD_DIR}/python
|
PREFIX ${BUILD_DIR}/python
|
||||||
# Python will download its own deps and there's very little we can do about
|
CONFIGURE_COMMAND ""
|
||||||
# that beyond placing some code in their externals dir before it tries.
|
BUILD_COMMAND cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && call build.bat -e -p x64 -c ${BUILD_MODE}
|
||||||
# the foldernames *HAVE* to match the ones inside pythons get_externals.cmd.
|
|
||||||
# regardless of the version actually in there.
|
|
||||||
PATCH_COMMAND mkdir ${PYTHON_EXTERNALS_FOLDER_DOS} &&
|
|
||||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\zlib-1.2.13 ${ZLIB_SOURCE_FOLDER_DOS} &&
|
|
||||||
mklink /J ${PYTHON_EXTERNALS_FOLDER_DOS}\\openssl-1.1.1q ${SSL_SOURCE_FOLDER_DOS} &&
|
|
||||||
${CMAKE_COMMAND} -E copy ${ZLIB_SOURCE_FOLDER}/../external_zlib-build/zconf.h ${PYTHON_EXTERNALS_FOLDER}/zlib-1.2.13/zconf.h &&
|
|
||||||
${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_windows.diff
|
|
||||||
CONFIGURE_COMMAND echo "."
|
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV_MSVC} && cd ${BUILD_DIR}/python/src/external_python/pcbuild/ && set IncludeTkinter=false && set LDFLAGS=/DEBUG && call prepare_ssl.bat && call build.bat -e -p x64 -c ${BUILD_MODE}
|
|
||||||
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
|
INSTALL_COMMAND ${PYTHON_BINARY_INTERNAL} ${PYTHON_SRC}/PC/layout/main.py -b ${PYTHON_SRC}/PCbuild/amd64 -s ${PYTHON_SRC} -t ${PYTHON_SRC}/tmp/ --include-stable --include-pip --include-dev --include-launchers --include-venv --include-symbols ${PYTHON_EXTRA_INSTLAL_FLAGS} --copy ${LIBDIR}/python
|
||||||
)
|
)
|
||||||
add_dependencies(
|
|
||||||
external_python
|
|
||||||
external_zlib
|
|
||||||
)
|
|
||||||
else()
|
else()
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# Disable functions that can be in 10.13 sdk but aren't available on 10.9 target.
|
# Disable functions that can be in 10.13 sdk but aren't available on 10.9 target.
|
||||||
@@ -73,10 +73,11 @@ else()
|
|||||||
set(PYTHON_FUNC_CONFIGS ${PYTHON_FUNC_CONFIGS} && export PYTHON_DECIMAL_WITH_MACHINE=ansi64)
|
set(PYTHON_FUNC_CONFIGS ${PYTHON_FUNC_CONFIGS} && export PYTHON_DECIMAL_WITH_MACHINE=ansi64)
|
||||||
endif()
|
endif()
|
||||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS})
|
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV} && ${PYTHON_FUNC_CONFIGS})
|
||||||
|
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python.exe)
|
||||||
else()
|
else()
|
||||||
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
|
set(PYTHON_CONFIGURE_ENV ${CONFIGURE_ENV})
|
||||||
|
set(PYTHON_BINARY ${BUILD_DIR}/python/src/external_python/python)
|
||||||
endif()
|
endif()
|
||||||
set(PYTHON_BINARY ${LIBDIR}/python/bin/python${PYTHON_SHORT_VERSION})
|
|
||||||
# Link against zlib statically (Unix). Avoid rpath issues (macOS).
|
# Link against zlib statically (Unix). Avoid rpath issues (macOS).
|
||||||
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_unix.diff)
|
set(PYTHON_PATCH ${PATCH_CMD} --verbose -p1 -d ${BUILD_DIR}/python/src/external_python < ${PATCH_DIR}/python_unix.diff)
|
||||||
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
|
set(PYTHON_CONFIGURE_EXTRA_ARGS "--with-openssl=${LIBDIR}/ssl")
|
||||||
@@ -100,31 +101,14 @@ else()
|
|||||||
INSTALL_DIR ${LIBDIR}/python)
|
INSTALL_DIR ${LIBDIR}/python)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_python
|
|
||||||
external_ssl
|
|
||||||
external_zlib
|
|
||||||
)
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
add_dependencies(
|
add_dependencies(
|
||||||
external_python
|
external_python
|
||||||
external_bzip2
|
external_bzip2
|
||||||
external_ffi
|
external_ffi
|
||||||
external_lzma
|
external_lzma
|
||||||
|
external_ssl
|
||||||
external_sqlite
|
external_sqlite
|
||||||
|
external_zlib
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
|
||||||
ExternalProject_Add_Step(external_python after_install
|
|
||||||
# Boost can't keep it self from linking release python
|
|
||||||
# in a debug configuration even if all options are set
|
|
||||||
# correctly to instruct it to use the debug version
|
|
||||||
# of python. So just copy the debug imports file over
|
|
||||||
# and call it a day...
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}${PYTHON_POSTFIX}.lib ${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
@@ -1,15 +1,27 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
if(WIN32 AND BUILD_MODE STREQUAL Debug)
|
||||||
set(SITE_PACKAGES_EXTRA --global-option build --global-option --debug)
|
set(SITE_PACKAGES_EXTRA --global-option build --global-option --debug)
|
||||||
# zstandard is determined to build and link release mode libs in a debug
|
# zstandard is determined to build and link release mode libs in a debug
|
||||||
# configuration, the only way to make it happy is to bend to its will
|
# configuration, the only way to make it happy is to bend to its will
|
||||||
# and give it a library to link with.
|
# and give it a library to link with.
|
||||||
set(
|
set(PIP_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.lib ${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib)
|
||||||
PIP_CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
|
|
||||||
${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}_d.lib
|
|
||||||
${LIBDIR}/python/libs/python${PYTHON_SHORT_VERSION_NO_DOTS}.lib
|
|
||||||
)
|
|
||||||
else()
|
else()
|
||||||
set(PIP_CONFIGURE_COMMAND echo ".")
|
set(PIP_CONFIGURE_COMMAND echo ".")
|
||||||
endif()
|
endif()
|
||||||
@@ -19,23 +31,7 @@ ExternalProject_Add(external_python_site_packages
|
|||||||
CONFIGURE_COMMAND ${PIP_CONFIGURE_COMMAND}
|
CONFIGURE_COMMAND ${PIP_CONFIGURE_COMMAND}
|
||||||
BUILD_COMMAND ""
|
BUILD_COMMAND ""
|
||||||
PREFIX ${BUILD_DIR}/site_packages
|
PREFIX ${BUILD_DIR}/site_packages
|
||||||
|
INSTALL_COMMAND ${PYTHON_BINARY} -m pip install ${SITE_PACKAGES_EXTRA} cython==${CYTHON_VERSION} idna==${IDNA_VERSION} charset-normalizer==${CHARSET_NORMALIZER_VERSION} urllib3==${URLLIB3_VERSION} certifi==${CERTIFI_VERSION} requests==${REQUESTS_VERSION} zstandard==${ZSTANDARD_VERSION} --no-binary :all:
|
||||||
# setuptools is downgraded to 63.2.0 (same as python 3.10.8) since numpy 1.23.x seemingly has
|
|
||||||
# issues building on windows with the newer versions that ships with python 3.10.9+
|
|
||||||
INSTALL_COMMAND ${PYTHON_BINARY} -m pip install --no-cache-dir ${SITE_PACKAGES_EXTRA}
|
|
||||||
setuptools==63.2.0
|
|
||||||
cython==${CYTHON_VERSION}
|
|
||||||
idna==${IDNA_VERSION}
|
|
||||||
charset-normalizer==${CHARSET_NORMALIZER_VERSION}
|
|
||||||
urllib3==${URLLIB3_VERSION}
|
|
||||||
certifi==${CERTIFI_VERSION}
|
|
||||||
requests==${REQUESTS_VERSION}
|
|
||||||
zstandard==${ZSTANDARD_VERSION}
|
|
||||||
autopep8==${AUTOPEP8_VERSION}
|
|
||||||
pycodestyle==${PYCODESTYLE_VERSION}
|
|
||||||
toml==${TOML_VERSION}
|
|
||||||
meson==${MESON_VERSION}
|
|
||||||
--no-binary :all:
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(USE_PIP_NUMPY)
|
if(USE_PIP_NUMPY)
|
||||||
|
@@ -1,13 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(ROBINMAP_EXTRA_ARGS
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_robinmap
|
|
||||||
URL file://${PACKAGE_DIR}/${ROBINMAP_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${ROBINMAP_HASH_TYPE}=${ROBINMAP_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/robinmap
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/robinmap ${DEFAULT_CMAKE_FLAGS} ${ROBINMAP_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/robinmap
|
|
||||||
)
|
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(SDL_EXTRA_ARGS
|
set(SDL_EXTRA_ARGS
|
||||||
|
@@ -1,10 +1,26 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
##################################################################################################
|
####################################################################################################################
|
||||||
# Mingw64 Builds
|
# Mingw64 Builds
|
||||||
##################################################################################################
|
####################################################################################################################
|
||||||
# This installs mingw64+msys to compile ffmpeg/iconv/libsndfile/fftw3
|
# This installs mingw64+msys to compile ffmpeg/iconv/libsndfile/fftw3
|
||||||
##################################################################################################
|
####################################################################################################################
|
||||||
|
|
||||||
message("LIBDIR = ${LIBDIR}")
|
message("LIBDIR = ${LIBDIR}")
|
||||||
macro(cmake_to_msys_path MsysPath ResultingPath)
|
macro(cmake_to_msys_path MsysPath ResultingPath)
|
||||||
|
@@ -1,47 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
set(SHADERC_EXTRA_ARGS
|
|
||||||
-DSHADERC_SKIP_TESTS=On
|
|
||||||
-DSHADERC_SPIRV_TOOLS_DIR=${BUILD_DIR}/shaderc_spirv_tools/src/external_shaderc_spirv_tools
|
|
||||||
-DSHADERC_SPIRV_HEADERS_DIR=${BUILD_DIR}/shaderc_spirv_headers/src/external_shaderc_spirv_headers
|
|
||||||
-DSHADERC_GLSLANG_DIR=${BUILD_DIR}/shaderc_glslang/src/external_shaderc_glslang
|
|
||||||
-DCMAKE_DEBUG_POSTFIX=_d
|
|
||||||
-DPYTHON_EXECUTABLE=${PYTHON_BINARY}
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_shaderc
|
|
||||||
URL file://${PACKAGE_DIR}/${SHADERC_FILE}
|
|
||||||
URL_HASH ${SHADERC_HASH_TYPE}=${SHADERC_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/shaderc
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/shaderc ${DEFAULT_CMAKE_FLAGS} ${SHADERC_EXTRA_ARGS}
|
|
||||||
INSTALL_DIR ${LIBDIR}/shaderc
|
|
||||||
)
|
|
||||||
|
|
||||||
add_dependencies(
|
|
||||||
external_shaderc
|
|
||||||
external_shaderc_spirv_tools
|
|
||||||
external_shaderc_spirv_headers
|
|
||||||
external_shaderc_glslang
|
|
||||||
external_python
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
if(WIN32)
|
|
||||||
if(BUILD_MODE STREQUAL Release)
|
|
||||||
ExternalProject_Add_Step(external_shaderc after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/shaderc/include ${HARVEST_TARGET}/shaderc/include
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/shaderc/bin/shaderc_shared.dll ${HARVEST_TARGET}/shaderc/bin/shaderc_shared.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/shaderc/lib/shaderc_shared.lib ${HARVEST_TARGET}/shaderc/lib/shaderc_shared.lib
|
|
||||||
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
if(BUILD_MODE STREQUAL Debug)
|
|
||||||
ExternalProject_Add_Step(external_shaderc after_install
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/shaderc/bin/shaderc_shared_d.dll ${HARVEST_TARGET}/shaderc/bin/shaderc_shared_d.dll
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/shaderc/lib/shaderc_shared_d.lib ${HARVEST_TARGET}/shaderc/lib/shaderc_shared_d.lib
|
|
||||||
DEPENDEES install
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
@@ -1,34 +0,0 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
|
|
||||||
# These are build time requirements for shaderc. We only have to unpack these
|
|
||||||
# shaderc will build them.
|
|
||||||
|
|
||||||
ExternalProject_Add(external_shaderc_glslang
|
|
||||||
URL file://${PACKAGE_DIR}/${SHADERC_GLSLANG_FILE}
|
|
||||||
URL_HASH ${SHADERC_GLSLANG_HASH_TYPE}=${SHADERC_GLSLANG_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/shaderc_glslang
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_shaderc_spirv_headers
|
|
||||||
URL file://${PACKAGE_DIR}/${SHADERC_SPIRV_HEADERS_FILE}
|
|
||||||
URL_HASH ${SHADERC_SPIRV_HEADERS_HASH_TYPE}=${SHADERC_SPIRV_HEADERS_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/shaderc_spirv_headers
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add(external_shaderc_spirv_tools
|
|
||||||
URL file://${PACKAGE_DIR}/${SHADERC_SPIRV_TOOLS_FILE}
|
|
||||||
URL_HASH ${SHADERC_SPIRV_TOOLS_HASH_TYPE}=${SHADERC_SPIRV_TOOLS_HASH}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
PREFIX ${BUILD_DIR}/shaderc_spirv_tools
|
|
||||||
CONFIGURE_COMMAND echo .
|
|
||||||
BUILD_COMMAND echo .
|
|
||||||
INSTALL_COMMAND echo .
|
|
||||||
)
|
|
@@ -1,15 +1,25 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(SNDFILE_EXTRA_ARGS)
|
set(SNDFILE_EXTRA_ARGS)
|
||||||
set(SNDFILE_ENV)
|
set(SNDFILE_ENV PKG_CONFIG_PATH=${mingw_LIBDIR}/ogg/lib/pkgconfig:${mingw_LIBDIR}/vorbis/lib/pkgconfig:${mingw_LIBDIR}/flac/lib/pkgconfig:${mingw_LIBDIR})
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(SNDFILE_ENV "PKG_CONFIG_PATH=\
|
|
||||||
${mingw_LIBDIR}/ogg/lib/pkgconfig:\
|
|
||||||
${mingw_LIBDIR}/vorbis/lib/pkgconfig:\
|
|
||||||
${mingw_LIBDIR}/flac/lib/pkgconfig:\
|
|
||||||
${mingw_LIBDIR}/opus/lib/pkgconfig"
|
|
||||||
)
|
|
||||||
set(SNDFILE_ENV set ${SNDFILE_ENV} &&)
|
set(SNDFILE_ENV set ${SNDFILE_ENV} &&)
|
||||||
# Shared for windows because static libs will drag in a libgcc dependency.
|
# Shared for windows because static libs will drag in a libgcc dependency.
|
||||||
set(SNDFILE_OPTIONS --disable-static --enable-shared )
|
set(SNDFILE_OPTIONS --disable-static --enable-shared )
|
||||||
@@ -17,11 +27,18 @@ else()
|
|||||||
set(SNDFILE_OPTIONS --enable-static --disable-shared )
|
set(SNDFILE_OPTIONS --enable-static --disable-shared )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(UNIX)
|
||||||
|
set(SNDFILE_PATCH_CMD ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/sndfile/src/external_sndfile < ${PATCH_DIR}/sndfile.diff)
|
||||||
|
else()
|
||||||
|
set(SNDFILE_PATCH_CMD)
|
||||||
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_sndfile
|
ExternalProject_Add(external_sndfile
|
||||||
URL file://${PACKAGE_DIR}/${SNDFILE_FILE}
|
URL file://${PACKAGE_DIR}/${SNDFILE_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${SNDFILE_HASH_TYPE}=${SNDFILE_HASH}
|
URL_HASH ${SNDFILE_HASH_TYPE}=${SNDFILE_HASH}
|
||||||
PREFIX ${BUILD_DIR}/sndfile
|
PREFIX ${BUILD_DIR}/sndfile
|
||||||
|
PATCH_COMMAND ${SNDFILE_PATCH_CMD}
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && ${SNDFILE_ENV} ${CONFIGURE_COMMAND} ${SNDFILE_OPTIONS} --prefix=${mingw_LIBDIR}/sndfile
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && ${SNDFILE_ENV} ${CONFIGURE_COMMAND} ${SNDFILE_OPTIONS} --prefix=${mingw_LIBDIR}/sndfile
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sndfile/src/external_sndfile/ && make install
|
||||||
@@ -36,7 +53,6 @@ add_dependencies(
|
|||||||
external_sndfile
|
external_sndfile
|
||||||
external_ogg
|
external_ogg
|
||||||
external_vorbis
|
external_vorbis
|
||||||
external_opus
|
|
||||||
)
|
)
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
add_dependencies(
|
add_dependencies(
|
||||||
@@ -47,10 +63,10 @@ endif()
|
|||||||
|
|
||||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||||
ExternalProject_Add_Step(external_sndfile after_install
|
ExternalProject_Add_Step(external_sndfile after_install
|
||||||
COMMAND lib /def:${BUILD_DIR}/sndfile/src/external_sndfile/src/libsndfile-1.def /machine:x64 /out:${BUILD_DIR}/sndfile/src/external_sndfile/src/libsndfile-1.lib
|
COMMAND lib /def:${BUILD_DIR}/sndfile/src/external_sndfile/src/libsndfile-1.def /machine:x64 /out:${BUILD_DIR}/sndfile/src/external_sndfile/src/libsndfile-1.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/bin/libsndfile-1.dll ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.dll
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/bin/libsndfile-1.dll ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.dll
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/sndfile/src/external_sndfile/src/libsndfile-1.lib ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.lib
|
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/sndfile/src/external_sndfile/src/libsndfile-1.lib ${HARVEST_TARGET}/sndfile/lib/libsndfile-1.lib
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/include/sndfile.h ${HARVEST_TARGET}/sndfile/include/sndfile.h
|
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/sndfile/include/sndfile.h ${HARVEST_TARGET}/sndfile/include/sndfile.h
|
||||||
|
|
||||||
DEPENDEES install
|
DEPENDEES install
|
||||||
)
|
)
|
||||||
|
@@ -1,24 +1,27 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
ExternalProject_Add(external_spnav
|
ExternalProject_Add(external_spnav
|
||||||
URL file://${PACKAGE_DIR}/${SPNAV_FILE}
|
URL file://${PACKAGE_DIR}/${SPNAV_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${SPNAV_HASH_TYPE}=${SPNAV_HASH}
|
URL_HASH ${SPNAV_HASH_TYPE}=${SPNAV_HASH}
|
||||||
PREFIX ${BUILD_DIR}/spnav
|
PREFIX ${BUILD_DIR}/spnav
|
||||||
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/spnav --disable-shared --enable-static --with-pic
|
||||||
CONFIGURE_COMMAND
|
|
||||||
${CONFIGURE_ENV} &&
|
|
||||||
cd ${BUILD_DIR}/spnav/src/external_spnav/ &&
|
|
||||||
${CONFIGURE_COMMAND}
|
|
||||||
--prefix=${LIBDIR}/spnav
|
|
||||||
# X11 is not needed as Blender polls the device as part of the GHOST event loop.
|
|
||||||
# This is used to support `3dxserv`, however this is no longer supported by 3DCONNEXION.
|
|
||||||
# Disable so building without X11 is supported (WAYLAND only).
|
|
||||||
--disable-x11
|
|
||||||
--disable-shared
|
|
||||||
--enable-static
|
|
||||||
--with-pic
|
|
||||||
|
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/spnav/src/external_spnav/ && make install
|
||||||
INSTALL_DIR ${LIBDIR}/spnav
|
INSTALL_DIR ${LIBDIR}/spnav
|
||||||
|
@@ -1,4 +1,20 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(SQLITE_CONFIGURE_ENV echo .)
|
set(SQLITE_CONFIGURE_ENV echo .)
|
||||||
set(SQLITE_CONFIGURATION_ARGS)
|
set(SQLITE_CONFIGURATION_ARGS)
|
||||||
@@ -48,6 +64,7 @@ ExternalProject_Add(external_sqlite
|
|||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
|
URL_HASH ${SQLITE_HASH_TYPE}=${SQLITE_HASH}
|
||||||
PREFIX ${BUILD_DIR}/sqlite
|
PREFIX ${BUILD_DIR}/sqlite
|
||||||
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/sqlite/src/external_sqlite < ${PATCH_DIR}/sqlite.diff
|
||||||
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
|
CONFIGURE_COMMAND ${SQLITE_CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/sqlite ${SQLITE_CONFIGURATION_ARGS}
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/sqlite/src/external_sqlite/ && make install
|
||||||
|
@@ -1,9 +1,25 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
ExternalProject_Add(external_sse2neon
|
ExternalProject_Add(external_sse2neon
|
||||||
URL file://${PACKAGE_DIR}/${SSE2NEON_FILE}
|
GIT_REPOSITORY ${SSE2NEON_GIT}
|
||||||
|
GIT_TAG ${SSE2NEON_GIT_HASH}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${SSE2NEON_HASH_TYPE}=${SSE2NEON_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/sse2neon
|
PREFIX ${BUILD_DIR}/sse2neon
|
||||||
CONFIGURE_COMMAND echo sse2neon - Nothing to configure
|
CONFIGURE_COMMAND echo sse2neon - Nothing to configure
|
||||||
BUILD_COMMAND echo sse2neon - nothing to build
|
BUILD_COMMAND echo sse2neon - nothing to build
|
||||||
|
@@ -1,49 +1,50 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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,
|
||||||
|
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
#
|
||||||
|
# ***** END GPL LICENSE BLOCK *****
|
||||||
|
|
||||||
set(SSL_CONFIGURE_COMMAND ./Configure)
|
set(SSL_CONFIGURE_COMMAND ./Configure)
|
||||||
set(SSL_PATCH_CMD echo .)
|
set(SSL_PATCH_CMD echo .)
|
||||||
|
|
||||||
if(WIN32)
|
if(APPLE)
|
||||||
# Python will build this with its preferred build options and patches. We only need to unpack openssl
|
set(SSL_OS_COMPILER "blender-darwin-${CMAKE_OSX_ARCHITECTURES}")
|
||||||
ExternalProject_Add(external_ssl
|
|
||||||
URL file://${PACKAGE_DIR}/${SSL_FILE}
|
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
||||||
URL_HASH ${SSL_HASH_TYPE}=${SSL_HASH}
|
|
||||||
PREFIX ${BUILD_DIR}/ssl
|
|
||||||
CONFIGURE_COMMAND echo "."
|
|
||||||
BUILD_COMMAND echo "."
|
|
||||||
INSTALL_COMMAND echo "."
|
|
||||||
INSTALL_DIR ${LIBDIR}/ssl
|
|
||||||
)
|
|
||||||
else()
|
else()
|
||||||
if(APPLE)
|
if(BLENDER_PLATFORM_ARM)
|
||||||
set(SSL_OS_COMPILER "blender-darwin-${CMAKE_OSX_ARCHITECTURES}")
|
set(SSL_OS_COMPILER "blender-linux-aarch64")
|
||||||
set(SSL_PATCH_CMD ${PATCH_CMD} --verbose -p 0 -d ${BUILD_DIR}/ssl/src/external_ssl < ${PATCH_DIR}/ssl.diff)
|
elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||||
|
set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
|
||||||
|
set(SSL_OS_COMPILER "blender-linux-x86_64")
|
||||||
else()
|
else()
|
||||||
if(BLENDER_PLATFORM_ARM)
|
set(SSL_OS_COMPILER "blender-linux-x86")
|
||||||
set(SSL_OS_COMPILER "blender-linux-aarch64")
|
|
||||||
elseif("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
|
||||||
set(SSL_EXTRA_ARGS enable-ec_nistp_64_gcc_128)
|
|
||||||
set(SSL_OS_COMPILER "blender-linux-x86_64")
|
|
||||||
else()
|
|
||||||
set(SSL_OS_COMPILER "blender-linux-x86")
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(external_ssl
|
ExternalProject_Add(external_ssl
|
||||||
URL file://${PACKAGE_DIR}/${SSL_FILE}
|
URL file://${PACKAGE_DIR}/${SSL_FILE}
|
||||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||||
URL_HASH ${SSL_HASH_TYPE}=${SSL_HASH}
|
URL_HASH ${SSL_HASH_TYPE}=${SSL_HASH}
|
||||||
PREFIX ${BUILD_DIR}/ssl
|
PREFIX ${BUILD_DIR}/ssl
|
||||||
PATCH_COMMAND ${SSL_PATCH_CMD}
|
PATCH_COMMAND ${SSL_PATCH_CMD}
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && ${SSL_CONFIGURE_COMMAND} --prefix=${LIBDIR}/ssl
|
CONFIGURE_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && ${SSL_CONFIGURE_COMMAND} --prefix=${LIBDIR}/ssl
|
||||||
--openssldir=${LIBDIR}/ssl
|
--openssldir=${LIBDIR}/ssl
|
||||||
no-shared
|
no-shared
|
||||||
no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms
|
no-idea no-mdc2 no-rc5 no-zlib no-ssl3 enable-unit-test no-ssl3-method enable-rfc3779 enable-cms
|
||||||
--config=${CMAKE_CURRENT_SOURCE_DIR}/cmake/ssl.conf
|
--config=${CMAKE_CURRENT_SOURCE_DIR}/cmake/ssl.conf
|
||||||
${SSL_OS_COMPILER}
|
${SSL_OS_COMPILER}
|
||||||
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make -j${MAKE_THREADS}
|
BUILD_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make -j${MAKE_THREADS}
|
||||||
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make install
|
INSTALL_COMMAND ${CONFIGURE_ENV} && cd ${BUILD_DIR}/ssl/src/external_ssl/ && make install
|
||||||
INSTALL_DIR ${LIBDIR}/ssl
|
INSTALL_DIR ${LIBDIR}/ssl
|
||||||
)
|
)
|
||||||
endif()
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user