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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/cmake')
-rw-r--r--build_files/cmake/Modules/FindGLEW.cmake2
-rw-r--r--build_files/cmake/Modules/FindLLVM.cmake84
-rw-r--r--build_files/cmake/Modules/FindSndFile.cmake14
-rw-r--r--build_files/cmake/Modules/GTestTesting.cmake82
-rw-r--r--build_files/cmake/RpmBuild.cmake22
-rw-r--r--build_files/cmake/buildinfo.cmake292
-rw-r--r--build_files/cmake/config/blender_full.cmake10
-rw-r--r--build_files/cmake/config/blender_release.cmake10
-rw-r--r--build_files/cmake/config/bpy_module.cmake4
-rw-r--r--build_files/cmake/macros.cmake1956
-rw-r--r--build_files/cmake/packaging.cmake122
-rw-r--r--build_files/cmake/platform/platform_apple.cmake560
-rw-r--r--build_files/cmake/platform/platform_apple_xcode.cmake110
-rw-r--r--build_files/cmake/platform/platform_unix.cmake630
-rw-r--r--build_files/cmake/platform/platform_win32.cmake864
15 files changed, 2381 insertions, 2381 deletions
diff --git a/build_files/cmake/Modules/FindGLEW.cmake b/build_files/cmake/Modules/FindGLEW.cmake
index b36a3272e3d..593b1693fd0 100644
--- a/build_files/cmake/Modules/FindGLEW.cmake
+++ b/build_files/cmake/Modules/FindGLEW.cmake
@@ -23,7 +23,7 @@
# If GLEW_ROOT_DIR was defined in the environment, use it.
IF(NOT GLEW_ROOT_DIR AND NOT $ENV{GLEW_ROOT_DIR} STREQUAL "")
- SET(GLEW_ROOT_DIR $ENV{GLEW_ROOT_DIR})
+ SET(GLEW_ROOT_DIR $ENV{GLEW_ROOT_DIR})
ENDIF()
SET(_glew_SEARCH_DIRS
diff --git a/build_files/cmake/Modules/FindLLVM.cmake b/build_files/cmake/Modules/FindLLVM.cmake
index a40a71cb58e..141a91c0508 100644
--- a/build_files/cmake/Modules/FindLLVM.cmake
+++ b/build_files/cmake/Modules/FindLLVM.cmake
@@ -22,65 +22,65 @@
#=============================================================================
if(LLVM_ROOT_DIR)
- if(DEFINED LLVM_VERSION)
- find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION} HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH)
- endif()
- if(NOT LLVM_CONFIG)
- find_program(LLVM_CONFIG llvm-config HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH)
- endif()
+ if(DEFINED LLVM_VERSION)
+ find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION} HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH)
+ endif()
+ if(NOT LLVM_CONFIG)
+ find_program(LLVM_CONFIG llvm-config HINTS ${LLVM_ROOT_DIR}/bin NO_CMAKE_PATH)
+ endif()
else()
- if(DEFINED LLVM_VERSION)
+ if(DEFINED LLVM_VERSION)
message(running llvm-config-${LLVM_VERSION})
- find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION})
- endif()
- if(NOT LLVM_CONFIG)
- find_program(LLVM_CONFIG llvm-config)
- endif()
+ find_program(LLVM_CONFIG llvm-config-${LLVM_VERSION})
+ endif()
+ if(NOT LLVM_CONFIG)
+ find_program(LLVM_CONFIG llvm-config)
+ endif()
endif()
if(NOT DEFINED LLVM_VERSION)
- execute_process(COMMAND ${LLVM_CONFIG} --version
- OUTPUT_VARIABLE LLVM_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- set(LLVM_VERSION ${LLVM_VERSION} CACHE STRING "Version of LLVM to use")
+ execute_process(COMMAND ${LLVM_CONFIG} --version
+ OUTPUT_VARIABLE LLVM_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ set(LLVM_VERSION ${LLVM_VERSION} CACHE STRING "Version of LLVM to use")
endif()
if(NOT LLVM_ROOT_DIR)
- execute_process(COMMAND ${LLVM_CONFIG} --prefix
- OUTPUT_VARIABLE LLVM_ROOT_DIR
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- set(LLVM_ROOT_DIR ${LLVM_ROOT_DIR} CACHE PATH "Path to the LLVM installation")
+ execute_process(COMMAND ${LLVM_CONFIG} --prefix
+ OUTPUT_VARIABLE LLVM_ROOT_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ set(LLVM_ROOT_DIR ${LLVM_ROOT_DIR} CACHE PATH "Path to the LLVM installation")
endif()
if(NOT LLVM_LIBPATH)
- execute_process(COMMAND ${LLVM_CONFIG} --libdir
- OUTPUT_VARIABLE LLVM_LIBPATH
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- set(LLVM_LIBPATH ${LLVM_LIBPATH} CACHE PATH "Path to the LLVM library path")
- mark_as_advanced(LLVM_LIBPATH)
+ execute_process(COMMAND ${LLVM_CONFIG} --libdir
+ OUTPUT_VARIABLE LLVM_LIBPATH
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ set(LLVM_LIBPATH ${LLVM_LIBPATH} CACHE PATH "Path to the LLVM library path")
+ mark_as_advanced(LLVM_LIBPATH)
endif()
if(LLVM_STATIC)
- find_library(LLVM_LIBRARY
- NAMES LLVMAnalysis # first of a whole bunch of libs to get
- PATHS ${LLVM_LIBPATH})
+ find_library(LLVM_LIBRARY
+ NAMES LLVMAnalysis # first of a whole bunch of libs to get
+ PATHS ${LLVM_LIBPATH})
else()
- find_library(LLVM_LIBRARY
- NAMES
- LLVM-${LLVM_VERSION}
- LLVMAnalysis # check for the static library as a fall-back
- PATHS ${LLVM_LIBPATH})
+ find_library(LLVM_LIBRARY
+ NAMES
+ LLVM-${LLVM_VERSION}
+ LLVMAnalysis # check for the static library as a fall-back
+ PATHS ${LLVM_LIBPATH})
endif()
if(LLVM_LIBRARY AND LLVM_ROOT_DIR AND LLVM_LIBPATH)
- if(LLVM_STATIC)
- # if static LLVM libraries were requested, use llvm-config to generate
- # the list of what libraries we need, and substitute that in the right
- # way for LLVM_LIBRARY.
- execute_process(COMMAND ${LLVM_CONFIG} --libfiles
- OUTPUT_VARIABLE LLVM_LIBRARY
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REPLACE " " ";" LLVM_LIBRARY "${LLVM_LIBRARY}")
- endif()
+ if(LLVM_STATIC)
+ # if static LLVM libraries were requested, use llvm-config to generate
+ # the list of what libraries we need, and substitute that in the right
+ # way for LLVM_LIBRARY.
+ execute_process(COMMAND ${LLVM_CONFIG} --libfiles
+ OUTPUT_VARIABLE LLVM_LIBRARY
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE " " ";" LLVM_LIBRARY "${LLVM_LIBRARY}")
+ endif()
endif()
diff --git a/build_files/cmake/Modules/FindSndFile.cmake b/build_files/cmake/Modules/FindSndFile.cmake
index ef6fb73598f..eabc08b0645 100644
--- a/build_files/cmake/Modules/FindSndFile.cmake
+++ b/build_files/cmake/Modules/FindSndFile.cmake
@@ -24,11 +24,11 @@
# If LIBSNDFILE_ROOT_DIR was defined in the environment, use it.
IF(NOT LIBSNDFILE_ROOT_DIR AND NOT $ENV{LIBSNDFILE_ROOT_DIR} STREQUAL "")
- SET(LIBSNDFILE_ROOT_DIR $ENV{LIBSNDFILE_ROOT_DIR})
+ SET(LIBSNDFILE_ROOT_DIR $ENV{LIBSNDFILE_ROOT_DIR})
ENDIF()
SET(_sndfile_SEARCH_DIRS
- ${LIBSNDFILE_ROOT_DIR}
+ ${LIBSNDFILE_ROOT_DIR}
/usr/local
/sw # Fink
/opt/local # DarwinPorts
@@ -54,14 +54,14 @@ FIND_LIBRARY(LIBSNDFILE_LIBRARY
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SndFile DEFAULT_MSG
- LIBSNDFILE_LIBRARY LIBSNDFILE_INCLUDE_DIR)
+ LIBSNDFILE_LIBRARY LIBSNDFILE_INCLUDE_DIR)
IF(LIBSNDFILE_FOUND)
- SET(LIBSNDFILE_LIBRARIES ${LIBSNDFILE_LIBRARY})
- SET(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE_INCLUDE_DIR})
+ SET(LIBSNDFILE_LIBRARIES ${LIBSNDFILE_LIBRARY})
+ SET(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE_INCLUDE_DIR})
ENDIF(LIBSNDFILE_FOUND)
MARK_AS_ADVANCED(
- LIBSNDFILE_INCLUDE_DIR
- LIBSNDFILE_LIBRARY
+ LIBSNDFILE_INCLUDE_DIR
+ LIBSNDFILE_LIBRARY
)
diff --git a/build_files/cmake/Modules/GTestTesting.cmake b/build_files/cmake/Modules/GTestTesting.cmake
index dd80013cb91..eb06e00bf9e 100644
--- a/build_files/cmake/Modules/GTestTesting.cmake
+++ b/build_files/cmake/Modules/GTestTesting.cmake
@@ -13,55 +13,55 @@
#=============================================================================
macro(BLENDER_SRC_GTEST_EX NAME SRC EXTRA_LIBS DO_ADD_TEST)
- if(WITH_GTESTS)
- get_property(_current_include_directories
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
- PROPERTY INCLUDE_DIRECTORIES)
- set(TEST_INC
- ${_current_include_directories}
- ${CMAKE_SOURCE_DIR}/tests/gtests
- ${GLOG_INCLUDE_DIRS}
- ${GFLAGS_INCLUDE_DIRS}
- ${CMAKE_SOURCE_DIR}/extern/gtest/include
- ${CMAKE_SOURCE_DIR}/extern/gmock/include
- )
- unset(_current_include_directories)
+ if(WITH_GTESTS)
+ get_property(_current_include_directories
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ PROPERTY INCLUDE_DIRECTORIES)
+ set(TEST_INC
+ ${_current_include_directories}
+ ${CMAKE_SOURCE_DIR}/tests/gtests
+ ${GLOG_INCLUDE_DIRS}
+ ${GFLAGS_INCLUDE_DIRS}
+ ${CMAKE_SOURCE_DIR}/extern/gtest/include
+ ${CMAKE_SOURCE_DIR}/extern/gmock/include
+ )
+ unset(_current_include_directories)
- add_executable(${NAME}_test ${SRC})
- target_link_libraries(${NAME}_test
- ${EXTRA_LIBS}
- ${PLATFORM_LINKLIBS}
- bf_testing_main
- bf_intern_eigen
- bf_intern_guardedalloc
- extern_gtest
- extern_gmock
- # needed for glog
- ${PTHREADS_LIBRARIES}
- ${GLOG_LIBRARIES}
- ${GFLAGS_LIBRARIES})
- if(WITH_OPENMP_STATIC)
- target_link_libraries(${NAME}_test ${OpenMP_LIBRARIES})
- endif()
- set_target_properties(${NAME}_test PROPERTIES
- RUNTIME_OUTPUT_DIRECTORY "${TESTS_OUTPUT_DIR}"
- RUNTIME_OUTPUT_DIRECTORY_RELEASE "${TESTS_OUTPUT_DIR}"
- RUNTIME_OUTPUT_DIRECTORY_DEBUG "${TESTS_OUTPUT_DIR}"
- INCLUDE_DIRECTORIES "${TEST_INC}")
- if(${DO_ADD_TEST})
- add_test(NAME ${NAME}_test COMMAND ${TESTS_OUTPUT_DIR}/${NAME}_test WORKING_DIRECTORY $<TARGET_FILE_DIR:blender>)
- endif()
- endif()
+ add_executable(${NAME}_test ${SRC})
+ target_link_libraries(${NAME}_test
+ ${EXTRA_LIBS}
+ ${PLATFORM_LINKLIBS}
+ bf_testing_main
+ bf_intern_eigen
+ bf_intern_guardedalloc
+ extern_gtest
+ extern_gmock
+ # needed for glog
+ ${PTHREADS_LIBRARIES}
+ ${GLOG_LIBRARIES}
+ ${GFLAGS_LIBRARIES})
+ if(WITH_OPENMP_STATIC)
+ target_link_libraries(${NAME}_test ${OpenMP_LIBRARIES})
+ endif()
+ set_target_properties(${NAME}_test PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${TESTS_OUTPUT_DIR}"
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${TESTS_OUTPUT_DIR}"
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG "${TESTS_OUTPUT_DIR}"
+ INCLUDE_DIRECTORIES "${TEST_INC}")
+ if(${DO_ADD_TEST})
+ add_test(NAME ${NAME}_test COMMAND ${TESTS_OUTPUT_DIR}/${NAME}_test WORKING_DIRECTORY $<TARGET_FILE_DIR:blender>)
+ endif()
+ endif()
endmacro()
macro(BLENDER_SRC_GTEST NAME SRC EXTRA_LIBS)
- BLENDER_SRC_GTEST_EX("${NAME}" "${SRC}" "${EXTRA_LIBS}" "TRUE")
+ BLENDER_SRC_GTEST_EX("${NAME}" "${SRC}" "${EXTRA_LIBS}" "TRUE")
endmacro()
macro(BLENDER_TEST NAME EXTRA_LIBS)
- BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "TRUE")
+ BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "TRUE")
endmacro()
macro(BLENDER_TEST_PERFORMANCE NAME EXTRA_LIBS)
- BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "FALSE")
+ BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "FALSE")
endmacro()
diff --git a/build_files/cmake/RpmBuild.cmake b/build_files/cmake/RpmBuild.cmake
index 4e3047b4c6c..2ece06bcad3 100644
--- a/build_files/cmake/RpmBuild.cmake
+++ b/build_files/cmake/RpmBuild.cmake
@@ -4,22 +4,22 @@
if(NOT DEFINED RPMBUILD)
- find_program(RPMBUILD
- NAMES rpmbuild
- PATHS "/usr/bin")
+ find_program(RPMBUILD
+ NAMES rpmbuild
+ PATHS "/usr/bin")
- mark_as_advanced(RPMBUILD)
+ mark_as_advanced(RPMBUILD)
- if(RPMBUILD)
- message(STATUS "RPM Build Found: ${RPMBUILD}")
- else()
- message(STATUS "RPM Build Not Found (rpmbuild). RPM generation will not be available")
- endif()
+ if(RPMBUILD)
+ message(STATUS "RPM Build Found: ${RPMBUILD}")
+ else()
+ message(STATUS "RPM Build Not Found (rpmbuild). RPM generation will not be available")
+ endif()
endif()
if(RPMBUILD)
- set(RPMBUILD_FOUND TRUE)
+ set(RPMBUILD_FOUND TRUE)
else()
- set(RPMBUILD_FOUND FALSE)
+ set(RPMBUILD_FOUND FALSE)
endif()
diff --git a/build_files/cmake/buildinfo.cmake b/build_files/cmake/buildinfo.cmake
index 12bbf49b747..ec43534528a 100644
--- a/build_files/cmake/buildinfo.cmake
+++ b/build_files/cmake/buildinfo.cmake
@@ -14,162 +14,162 @@ set(MY_WC_COMMIT_TIMESTAMP 0)
# Guess if this is a git working copy and then look up the revision
if(EXISTS ${SOURCE_DIR}/.git)
- execute_process(COMMAND git rev-parse --abbrev-ref HEAD
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE MY_WC_BRANCH
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if(MY_WC_BRANCH STREQUAL "HEAD")
- # Detached HEAD, check whether commit hash is reachable
- # in the master branch
- execute_process(COMMAND git rev-parse --short=12 HEAD
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE MY_WC_HASH
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- execute_process(COMMAND git branch --list master blender-v* --contains ${MY_WC_HASH}
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE _git_contains_check
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if(NOT _git_contains_check STREQUAL "")
- set(MY_WC_BRANCH "master")
- else()
- execute_process(COMMAND git show-ref --tags -d
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE _git_tag_hashes
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- execute_process(COMMAND git rev-parse HEAD
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE _git_head_hash
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if(_git_tag_hashes MATCHES "${_git_head_hash}")
- set(MY_WC_BRANCH "master")
- else()
- execute_process(COMMAND git branch --contains ${MY_WC_HASH}
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE _git_contains_branches
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REGEX REPLACE "^\\*[ \t]+" "" _git_contains_branches "${_git_contains_branches}")
- string(REGEX REPLACE "[\r\n]+" ";" _git_contains_branches "${_git_contains_branches}")
- string(REGEX REPLACE ";[ \t]+" ";" _git_contains_branches "${_git_contains_branches}")
- foreach(_branch ${_git_contains_branches})
- if(NOT "${_branch}" MATCHES "\\(HEAD.*")
- set(MY_WC_BRANCH "${_branch}")
- break()
- endif()
- endforeach()
- unset(_branch)
- unset(_git_contains_branches)
- endif()
-
- unset(_git_tag_hashes)
- unset(_git_head_hashs)
- endif()
-
-
- unset(_git_contains_check)
- else()
- execute_process(COMMAND git log HEAD..@{u}
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE _git_below_check
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET)
- if(NOT _git_below_check STREQUAL "")
- # If there're commits between HEAD and upstream this means
- # that we're reset-ed to older revision. Use it's hash then.
- execute_process(COMMAND git rev-parse --short=12 HEAD
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE MY_WC_HASH
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- else()
- execute_process(COMMAND git rev-parse --short=12 @{u}
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE MY_WC_HASH
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET)
-
- if(MY_WC_HASH STREQUAL "")
- # Local branch, not set to upstream.
- # Well, let's use HEAD for now
- execute_process(COMMAND git rev-parse --short=12 HEAD
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE MY_WC_HASH
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- endif()
- endif()
-
- if(MY_WC_BRANCH MATCHES "^blender-v")
- set(MY_WC_BRANCH "master")
- endif()
-
- unset(_git_below_check)
- endif()
-
- execute_process(COMMAND git log -1 --format=%ct
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE MY_WC_COMMIT_TIMESTAMP
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- # May fail in rare cases
- if(MY_WC_COMMIT_TIMESTAMP STREQUAL "")
- set(MY_WC_COMMIT_TIMESTAMP 0)
- endif()
-
- # Update GIT index before getting dirty files
- execute_process(COMMAND git update-index -q --refresh
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- execute_process(COMMAND git diff-index --name-only HEAD --
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE _git_changed_files
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-
- if(NOT _git_changed_files STREQUAL "")
- set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)")
- else()
- # Unpushed commits are also considered local modifications
- execute_process(COMMAND git log @{u}..
- WORKING_DIRECTORY ${SOURCE_DIR}
- OUTPUT_VARIABLE _git_unpushed_log
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET)
- if(NOT _git_unpushed_log STREQUAL "")
- set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)")
- endif()
- unset(_git_unpushed_log)
- endif()
-
- unset(_git_changed_files)
+ execute_process(COMMAND git rev-parse --abbrev-ref HEAD
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE MY_WC_BRANCH
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if(MY_WC_BRANCH STREQUAL "HEAD")
+ # Detached HEAD, check whether commit hash is reachable
+ # in the master branch
+ execute_process(COMMAND git rev-parse --short=12 HEAD
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE MY_WC_HASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ execute_process(COMMAND git branch --list master blender-v* --contains ${MY_WC_HASH}
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE _git_contains_check
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if(NOT _git_contains_check STREQUAL "")
+ set(MY_WC_BRANCH "master")
+ else()
+ execute_process(COMMAND git show-ref --tags -d
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE _git_tag_hashes
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ execute_process(COMMAND git rev-parse HEAD
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE _git_head_hash
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if(_git_tag_hashes MATCHES "${_git_head_hash}")
+ set(MY_WC_BRANCH "master")
+ else()
+ execute_process(COMMAND git branch --contains ${MY_WC_HASH}
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE _git_contains_branches
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REGEX REPLACE "^\\*[ \t]+" "" _git_contains_branches "${_git_contains_branches}")
+ string(REGEX REPLACE "[\r\n]+" ";" _git_contains_branches "${_git_contains_branches}")
+ string(REGEX REPLACE ";[ \t]+" ";" _git_contains_branches "${_git_contains_branches}")
+ foreach(_branch ${_git_contains_branches})
+ if(NOT "${_branch}" MATCHES "\\(HEAD.*")
+ set(MY_WC_BRANCH "${_branch}")
+ break()
+ endif()
+ endforeach()
+ unset(_branch)
+ unset(_git_contains_branches)
+ endif()
+
+ unset(_git_tag_hashes)
+ unset(_git_head_hashs)
+ endif()
+
+
+ unset(_git_contains_check)
+ else()
+ execute_process(COMMAND git log HEAD..@{u}
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE _git_below_check
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET)
+ if(NOT _git_below_check STREQUAL "")
+ # If there're commits between HEAD and upstream this means
+ # that we're reset-ed to older revision. Use it's hash then.
+ execute_process(COMMAND git rev-parse --short=12 HEAD
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE MY_WC_HASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ else()
+ execute_process(COMMAND git rev-parse --short=12 @{u}
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE MY_WC_HASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET)
+
+ if(MY_WC_HASH STREQUAL "")
+ # Local branch, not set to upstream.
+ # Well, let's use HEAD for now
+ execute_process(COMMAND git rev-parse --short=12 HEAD
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE MY_WC_HASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
+ endif()
+
+ if(MY_WC_BRANCH MATCHES "^blender-v")
+ set(MY_WC_BRANCH "master")
+ endif()
+
+ unset(_git_below_check)
+ endif()
+
+ execute_process(COMMAND git log -1 --format=%ct
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE MY_WC_COMMIT_TIMESTAMP
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ # May fail in rare cases
+ if(MY_WC_COMMIT_TIMESTAMP STREQUAL "")
+ set(MY_WC_COMMIT_TIMESTAMP 0)
+ endif()
+
+ # Update GIT index before getting dirty files
+ execute_process(COMMAND git update-index -q --refresh
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ execute_process(COMMAND git diff-index --name-only HEAD --
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE _git_changed_files
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ if(NOT _git_changed_files STREQUAL "")
+ set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)")
+ else()
+ # Unpushed commits are also considered local modifications
+ execute_process(COMMAND git log @{u}..
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ OUTPUT_VARIABLE _git_unpushed_log
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET)
+ if(NOT _git_unpushed_log STREQUAL "")
+ set(MY_WC_BRANCH "${MY_WC_BRANCH} (modified)")
+ endif()
+ unset(_git_unpushed_log)
+ endif()
+
+ unset(_git_changed_files)
endif()
# BUILD_PLATFORM and BUILD_PLATFORM are taken from CMake
# but BUILD_DATE and BUILD_TIME are platform dependent
if(UNIX)
- if(NOT BUILD_DATE)
- execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
- endif()
- if(NOT BUILD_TIME)
- execute_process(COMMAND date "+%H:%M:%S" OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
- endif()
+ if(NOT BUILD_DATE)
+ execute_process(COMMAND date "+%Y-%m-%d" OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
+ if(NOT BUILD_TIME)
+ execute_process(COMMAND date "+%H:%M:%S" OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
elseif(WIN32)
- if(NOT BUILD_DATE)
- execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
- endif()
- if(NOT BUILD_TIME)
- execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
- endif()
+ if(NOT BUILD_DATE)
+ execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
+ if(NOT BUILD_TIME)
+ execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE)
+ endif()
endif()
# Write a file with the BUILD_HASH define
file(WRITE buildinfo.h.txt
- "#define BUILD_HASH \"${MY_WC_HASH}\"\n"
- "#define BUILD_COMMIT_TIMESTAMP ${MY_WC_COMMIT_TIMESTAMP}\n"
- "#define BUILD_BRANCH \"${MY_WC_BRANCH}\"\n"
- "#define BUILD_DATE \"${BUILD_DATE}\"\n"
- "#define BUILD_TIME \"${BUILD_TIME}\"\n"
+ "#define BUILD_HASH \"${MY_WC_HASH}\"\n"
+ "#define BUILD_COMMIT_TIMESTAMP ${MY_WC_COMMIT_TIMESTAMP}\n"
+ "#define BUILD_BRANCH \"${MY_WC_BRANCH}\"\n"
+ "#define BUILD_DATE \"${BUILD_DATE}\"\n"
+ "#define BUILD_TIME \"${BUILD_TIME}\"\n"
)
# cleanup
diff --git a/build_files/cmake/config/blender_full.cmake b/build_files/cmake/config/blender_full.cmake
index aed3381cbbe..6786cb5ce37 100644
--- a/build_files/cmake/config/blender_full.cmake
+++ b/build_files/cmake/config/blender_full.cmake
@@ -55,12 +55,12 @@ set(WITH_MEM_JEMALLOC ON CACHE BOOL "" FORCE)
# platform dependent options
if(UNIX AND NOT APPLE)
- set(WITH_JACK ON CACHE BOOL "" FORCE)
- set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
+ set(WITH_JACK ON CACHE BOOL "" FORCE)
+ set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
elseif(WIN32)
- set(WITH_JACK OFF CACHE BOOL "" FORCE)
+ set(WITH_JACK OFF CACHE BOOL "" FORCE)
elseif(APPLE)
- set(WITH_JACK ON CACHE BOOL "" FORCE)
+ set(WITH_JACK ON CACHE BOOL "" FORCE)
-# include("${CMAKE_CURRENT_SOURCE_DIR}/../platform/platform_apple_xcode.cmake")
+# include("${CMAKE_CURRENT_SOURCE_DIR}/../platform/platform_apple_xcode.cmake")
endif()
diff --git a/build_files/cmake/config/blender_release.cmake b/build_files/cmake/config/blender_release.cmake
index cf0be8d6b3f..24032b6aed6 100644
--- a/build_files/cmake/config/blender_release.cmake
+++ b/build_files/cmake/config/blender_release.cmake
@@ -58,12 +58,12 @@ set(CYCLES_CUDA_BINARIES_ARCH sm_30;sm_35;sm_37;sm_50;sm_52;sm_60;sm_61;sm_70;sm
# platform dependent options
if(UNIX AND NOT APPLE)
- set(WITH_JACK ON CACHE BOOL "" FORCE)
- set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
+ set(WITH_JACK ON CACHE BOOL "" FORCE)
+ set(WITH_DOC_MANPAGE ON CACHE BOOL "" FORCE)
elseif(WIN32)
- set(WITH_JACK OFF CACHE BOOL "" FORCE)
+ set(WITH_JACK OFF CACHE BOOL "" FORCE)
elseif(APPLE)
- set(WITH_JACK ON CACHE BOOL "" FORCE)
+ set(WITH_JACK ON CACHE BOOL "" FORCE)
-# include("${CMAKE_CURRENT_SOURCE_DIR}/../platform/platform_apple_xcode.cmake")
+# include("${CMAKE_CURRENT_SOURCE_DIR}/../platform/platform_apple_xcode.cmake")
endif()
diff --git a/build_files/cmake/config/bpy_module.cmake b/build_files/cmake/config/bpy_module.cmake
index 1637bbf9506..46aee50135c 100644
--- a/build_files/cmake/config/bpy_module.cmake
+++ b/build_files/cmake/config/bpy_module.cmake
@@ -32,6 +32,6 @@ set(WITH_OPENVDB OFF CACHE BOOL "" FORCE)
set(WITH_ALEMBIC OFF CACHE BOOL "" FORCE)
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
- # jemalloc causes linking error on import, disable.
- set(WITH_MEM_JEMALLOC OFF CACHE BOOL "" FORCE)
+ # jemalloc causes linking error on import, disable.
+ set(WITH_MEM_JEMALLOC OFF CACHE BOOL "" FORCE)
endif()
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 22e53fecf50..699f9cb1a99 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -19,175 +19,175 @@
# ***** END GPL LICENSE BLOCK *****
macro(list_insert_after
- list_id item_check item_add
- )
- set(_index)
- list(FIND "${list_id}" "${item_check}" _index)
- if("${_index}" MATCHES "-1")
- message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'")
- endif()
- math(EXPR _index "${_index} + 1")
- list(INSERT ${list_id} "${_index}" ${item_add})
- unset(_index)
+ list_id item_check item_add
+ )
+ set(_index)
+ list(FIND "${list_id}" "${item_check}" _index)
+ if("${_index}" MATCHES "-1")
+ message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'")
+ endif()
+ math(EXPR _index "${_index} + 1")
+ list(INSERT ${list_id} "${_index}" ${item_add})
+ unset(_index)
endmacro()
macro(list_insert_before
- list_id item_check item_add
- )
- set(_index)
- list(FIND "${list_id}" "${item_check}" _index)
- if("${_index}" MATCHES "-1")
- message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'")
- endif()
- list(INSERT ${list_id} "${_index}" ${item_add})
- unset(_index)
+ list_id item_check item_add
+ )
+ set(_index)
+ list(FIND "${list_id}" "${item_check}" _index)
+ if("${_index}" MATCHES "-1")
+ message(FATAL_ERROR "'${list_id}' doesn't contain '${item_check}'")
+ endif()
+ list(INSERT ${list_id} "${_index}" ${item_add})
+ unset(_index)
endmacro()
function(list_assert_duplicates
- list_id
- )
-
- # message(STATUS "list data: ${list_id}")
-
- list(LENGTH list_id _len_before)
- list(REMOVE_DUPLICATES list_id)
- list(LENGTH list_id _len_after)
- # message(STATUS "list size ${_len_before} -> ${_len_after}")
- if(NOT _len_before EQUAL _len_after)
- message(FATAL_ERROR "duplicate found in list which should not contain duplicates: ${list_id}")
- endif()
- unset(_len_before)
- unset(_len_after)
+ list_id
+ )
+
+ # message(STATUS "list data: ${list_id}")
+
+ list(LENGTH list_id _len_before)
+ list(REMOVE_DUPLICATES list_id)
+ list(LENGTH list_id _len_after)
+ # message(STATUS "list size ${_len_before} -> ${_len_after}")
+ if(NOT _len_before EQUAL _len_after)
+ message(FATAL_ERROR "duplicate found in list which should not contain duplicates: ${list_id}")
+ endif()
+ unset(_len_before)
+ unset(_len_after)
endfunction()
# foo_bar.spam --> foo_barMySuffix.spam
macro(file_suffix
- file_name_new file_name file_suffix
- )
+ file_name_new file_name file_suffix
+ )
- get_filename_component(_file_name_PATH ${file_name} PATH)
- get_filename_component(_file_name_NAME_WE ${file_name} NAME_WE)
- get_filename_component(_file_name_EXT ${file_name} EXT)
- set(${file_name_new} "${_file_name_PATH}/${_file_name_NAME_WE}${file_suffix}${_file_name_EXT}")
+ get_filename_component(_file_name_PATH ${file_name} PATH)
+ get_filename_component(_file_name_NAME_WE ${file_name} NAME_WE)
+ get_filename_component(_file_name_EXT ${file_name} EXT)
+ set(${file_name_new} "${_file_name_PATH}/${_file_name_NAME_WE}${file_suffix}${_file_name_EXT}")
- unset(_file_name_PATH)
- unset(_file_name_NAME_WE)
- unset(_file_name_EXT)
+ unset(_file_name_PATH)
+ unset(_file_name_NAME_WE)
+ unset(_file_name_EXT)
endmacro()
# useful for adding debug suffix to library lists:
# /somepath/foo.lib --> /somepath/foo_d.lib
macro(file_list_suffix
- fp_list_new fp_list fn_suffix
- )
+ fp_list_new fp_list fn_suffix
+ )
- # incase of empty list
- set(_fp)
- set(_fp_suffixed)
+ # incase of empty list
+ set(_fp)
+ set(_fp_suffixed)
- set(fp_list_new)
+ set(fp_list_new)
- foreach(_fp ${fp_list})
- file_suffix(_fp_suffixed "${_fp}" "${fn_suffix}")
- list(APPEND "${fp_list_new}" "${_fp_suffixed}")
- endforeach()
+ foreach(_fp ${fp_list})
+ file_suffix(_fp_suffixed "${_fp}" "${fn_suffix}")
+ list(APPEND "${fp_list_new}" "${_fp_suffixed}")
+ endforeach()
- unset(_fp)
- unset(_fp_suffixed)
+ unset(_fp)
+ unset(_fp_suffixed)
endmacro()
if(UNIX AND NOT APPLE)
- macro(find_package_static)
- set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- find_package(${ARGV})
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
- unset(_cmake_find_library_suffixes_back)
- endmacro()
-
- macro(find_library_static)
- set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- find_library(${ARGV})
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
- unset(_cmake_find_library_suffixes_back)
- endmacro()
+ macro(find_package_static)
+ set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ find_package(${ARGV})
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
+ unset(_cmake_find_library_suffixes_back)
+ endmacro()
+
+ macro(find_library_static)
+ set(_cmake_find_library_suffixes_back ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ find_library(${ARGV})
+ set(CMAKE_FIND_LIBRARY_SUFFIXES ${_cmake_find_library_suffixes_back})
+ unset(_cmake_find_library_suffixes_back)
+ endmacro()
endif()
function(target_link_libraries_optimized
- TARGET
- LIBS
- )
+ TARGET
+ LIBS
+ )
- foreach(_LIB ${LIBS})
- target_link_libraries(${TARGET} optimized "${_LIB}")
- endforeach()
+ foreach(_LIB ${LIBS})
+ target_link_libraries(${TARGET} optimized "${_LIB}")
+ endforeach()
endfunction()
function(target_link_libraries_debug
- TARGET
- LIBS
- )
+ TARGET
+ LIBS
+ )
- foreach(_LIB ${LIBS})
- target_link_libraries(${TARGET} debug "${_LIB}")
- endforeach()
+ foreach(_LIB ${LIBS})
+ target_link_libraries(${TARGET} debug "${_LIB}")
+ endforeach()
endfunction()
# Nicer makefiles with -I/1/foo/ instead of -I/1/2/3/../../foo/
# use it instead of include_directories()
function(blender_include_dirs
- includes
- )
-
- set(_ALL_INCS "")
- foreach(_INC ${ARGV})
- get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
- list(APPEND _ALL_INCS ${_ABS_INC})
- # for checking for invalid includes, disable for regular use
- ##if(NOT EXISTS "${_ABS_INC}/")
- ## message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
- ##endif()
- endforeach()
- include_directories(${_ALL_INCS})
+ includes
+ )
+
+ set(_ALL_INCS "")
+ foreach(_INC ${ARGV})
+ get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
+ list(APPEND _ALL_INCS ${_ABS_INC})
+ # for checking for invalid includes, disable for regular use
+ ##if(NOT EXISTS "${_ABS_INC}/")
+ ## message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
+ ##endif()
+ endforeach()
+ include_directories(${_ALL_INCS})
endfunction()
function(blender_include_dirs_sys
- includes
- )
-
- set(_ALL_INCS "")
- foreach(_INC ${ARGV})
- get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
- list(APPEND _ALL_INCS ${_ABS_INC})
- ##if(NOT EXISTS "${_ABS_INC}/")
- ## message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
- ##endif()
- endforeach()
- include_directories(SYSTEM ${_ALL_INCS})
+ includes
+ )
+
+ set(_ALL_INCS "")
+ foreach(_INC ${ARGV})
+ get_filename_component(_ABS_INC ${_INC} ABSOLUTE)
+ list(APPEND _ALL_INCS ${_ABS_INC})
+ ##if(NOT EXISTS "${_ABS_INC}/")
+ ## message(FATAL_ERROR "Include not found: ${_ABS_INC}/")
+ ##endif()
+ endforeach()
+ include_directories(SYSTEM ${_ALL_INCS})
endfunction()
function(blender_source_group
- sources
- )
-
- # Group by location on disk
- source_group("Source Files" FILES CMakeLists.txt)
-
- foreach(_SRC ${sources})
- get_filename_component(_SRC_EXT ${_SRC} EXT)
- if((${_SRC_EXT} MATCHES ".h") OR
- (${_SRC_EXT} MATCHES ".hpp") OR
- (${_SRC_EXT} MATCHES ".hh"))
-
- set(GROUP_ID "Header Files")
- else()
- set(GROUP_ID "Source Files")
- endif()
- source_group("${GROUP_ID}" FILES ${_SRC})
- endforeach()
+ sources
+ )
+
+ # Group by location on disk
+ source_group("Source Files" FILES CMakeLists.txt)
+
+ foreach(_SRC ${sources})
+ get_filename_component(_SRC_EXT ${_SRC} EXT)
+ if((${_SRC_EXT} MATCHES ".h") OR
+ (${_SRC_EXT} MATCHES ".hpp") OR
+ (${_SRC_EXT} MATCHES ".hh"))
+
+ set(GROUP_ID "Header Files")
+ else()
+ set(GROUP_ID "Source Files")
+ endif()
+ source_group("${GROUP_ID}" FILES ${_SRC})
+ endforeach()
endfunction()
@@ -199,412 +199,412 @@ endfunction()
#
# Optionally takes an arg passed to set(), eg PARENT_SCOPE.
macro(add_cc_flags_custom_test
- name
- )
-
- string(TOUPPER ${name} _name_upper)
- if(DEFINED CMAKE_C_FLAGS_${_name_upper})
- message(STATUS "Using custom CFLAGS: CMAKE_C_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${_name_upper}}" ${ARGV1})
- endif()
- if(DEFINED CMAKE_CXX_FLAGS_${_name_upper})
- message(STATUS "Using custom CXXFLAGS: CMAKE_CXX_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${_name_upper}}" ${ARGV1})
- endif()
- unset(_name_upper)
+ name
+ )
+
+ string(TOUPPER ${name} _name_upper)
+ if(DEFINED CMAKE_C_FLAGS_${_name_upper})
+ message(STATUS "Using custom CFLAGS: CMAKE_C_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${_name_upper}}" ${ARGV1})
+ endif()
+ if(DEFINED CMAKE_CXX_FLAGS_${_name_upper})
+ message(STATUS "Using custom CXXFLAGS: CMAKE_CXX_FLAGS_${_name_upper} in \"${CMAKE_CURRENT_SOURCE_DIR}\"")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${_name_upper}}" ${ARGV1})
+ endif()
+ unset(_name_upper)
endmacro()
# only MSVC uses SOURCE_GROUP
function(blender_add_lib__impl
- name
- sources
- includes
- includes_sys
- library_deps
- )
-
- # message(STATUS "Configuring library ${name}")
-
- # include_directories(${includes})
- # include_directories(SYSTEM ${includes_sys})
- blender_include_dirs("${includes}")
- blender_include_dirs_sys("${includes_sys}")
-
- add_library(${name} ${sources})
-
- if (NOT "${library_deps}" STREQUAL "")
- target_link_libraries(${name} "${library_deps}")
- endif()
-
- # works fine without having the includes
- # listed is helpful for IDE's (QtCreator/MSVC)
- blender_source_group("${sources}")
-
- #if enabled, set the FOLDER property for visual studio projects
- if(WINDOWS_USE_VISUAL_STUDIO_FOLDERS)
- get_filename_component(FolderDir ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)
- string(REPLACE ${CMAKE_SOURCE_DIR} "" FolderDir ${FolderDir})
- set_target_properties(${name} PROPERTIES FOLDER ${FolderDir})
- endif()
-
- list_assert_duplicates("${sources}")
- list_assert_duplicates("${includes}")
- # Not for system includes because they can resolve to the same path
- # list_assert_duplicates("${includes_sys}")
+ name
+ sources
+ includes
+ includes_sys
+ library_deps
+ )
+
+ # message(STATUS "Configuring library ${name}")
+
+ # include_directories(${includes})
+ # include_directories(SYSTEM ${includes_sys})
+ blender_include_dirs("${includes}")
+ blender_include_dirs_sys("${includes_sys}")
+
+ add_library(${name} ${sources})
+
+ if (NOT "${library_deps}" STREQUAL "")
+ target_link_libraries(${name} "${library_deps}")
+ endif()
+
+ # works fine without having the includes
+ # listed is helpful for IDE's (QtCreator/MSVC)
+ blender_source_group("${sources}")
+
+ #if enabled, set the FOLDER property for visual studio projects
+ if(WINDOWS_USE_VISUAL_STUDIO_FOLDERS)
+ get_filename_component(FolderDir ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY)
+ string(REPLACE ${CMAKE_SOURCE_DIR} "" FolderDir ${FolderDir})
+ set_target_properties(${name} PROPERTIES FOLDER ${FolderDir})
+ endif()
+
+ list_assert_duplicates("${sources}")
+ list_assert_duplicates("${includes}")
+ # Not for system includes because they can resolve to the same path
+ # list_assert_duplicates("${includes_sys}")
endfunction()
function(blender_add_lib_nolist
- name
- sources
- includes
- includes_sys
- library_deps
- )
+ name
+ sources
+ includes
+ includes_sys
+ library_deps
+ )
- add_cc_flags_custom_test(${name} PARENT_SCOPE)
+ add_cc_flags_custom_test(${name} PARENT_SCOPE)
- blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
+ blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
endfunction()
function(blender_add_lib
- name
- sources
- includes
- includes_sys
- library_deps
- )
+ name
+ sources
+ includes
+ includes_sys
+ library_deps
+ )
- add_cc_flags_custom_test(${name} PARENT_SCOPE)
+ add_cc_flags_custom_test(${name} PARENT_SCOPE)
- blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
+ blender_add_lib__impl(${name} "${sources}" "${includes}" "${includes_sys}" "${library_deps}")
- set_property(GLOBAL APPEND PROPERTY BLENDER_LINK_LIBS ${name})
+ set_property(GLOBAL APPEND PROPERTY BLENDER_LINK_LIBS ${name})
endfunction()
function(SETUP_LIBDIRS)
- # NOTE: For all new libraries, use absolute library paths.
- # This should eventually be phased out.
-
- if(NOT MSVC)
- link_directories(${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${FREETYPE_LIBPATH})
-
- if(WITH_PYTHON) # AND NOT WITH_PYTHON_MODULE # WIN32 needs
- link_directories(${PYTHON_LIBPATH})
- endif()
- if(WITH_SDL AND NOT WITH_SDL_DYNLOAD)
- link_directories(${SDL_LIBPATH})
- endif()
- if(WITH_CODEC_FFMPEG)
- link_directories(${FFMPEG_LIBPATH})
- endif()
- if(WITH_IMAGE_OPENEXR)
- link_directories(${OPENEXR_LIBPATH})
- endif()
- if(WITH_IMAGE_TIFF)
- link_directories(${TIFF_LIBPATH})
- endif()
- if(WITH_BOOST)
- link_directories(${BOOST_LIBPATH})
- endif()
- if(WITH_OPENIMAGEIO)
- link_directories(${OPENIMAGEIO_LIBPATH})
- endif()
- if(WITH_OPENCOLORIO)
- link_directories(${OPENCOLORIO_LIBPATH})
- endif()
- if(WITH_OPENVDB)
- link_directories(${OPENVDB_LIBPATH})
- endif()
- if(WITH_OPENAL)
- link_directories(${OPENAL_LIBPATH})
- endif()
- if(WITH_JACK AND NOT WITH_JACK_DYNLOAD)
- link_directories(${JACK_LIBPATH})
- endif()
- if(WITH_CODEC_SNDFILE)
- link_directories(${LIBSNDFILE_LIBPATH})
- endif()
- if(WITH_FFTW3)
- link_directories(${FFTW3_LIBPATH})
- endif()
- if(WITH_OPENCOLLADA)
- link_directories(${OPENCOLLADA_LIBPATH})
- ## Never set
- # link_directories(${PCRE_LIBPATH})
- # link_directories(${EXPAT_LIBPATH})
- endif()
- if(WITH_LLVM)
- link_directories(${LLVM_LIBPATH})
- endif()
-
- if(WITH_ALEMBIC)
- link_directories(${ALEMBIC_LIBPATH})
- link_directories(${HDF5_LIBPATH})
- endif()
-
- if(WIN32 AND NOT UNIX)
- link_directories(${PTHREADS_LIBPATH})
- endif()
- endif()
+ # NOTE: For all new libraries, use absolute library paths.
+ # This should eventually be phased out.
+
+ if(NOT MSVC)
+ link_directories(${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${FREETYPE_LIBPATH})
+
+ if(WITH_PYTHON) # AND NOT WITH_PYTHON_MODULE # WIN32 needs
+ link_directories(${PYTHON_LIBPATH})
+ endif()
+ if(WITH_SDL AND NOT WITH_SDL_DYNLOAD)
+ link_directories(${SDL_LIBPATH})
+ endif()
+ if(WITH_CODEC_FFMPEG)
+ link_directories(${FFMPEG_LIBPATH})
+ endif()
+ if(WITH_IMAGE_OPENEXR)
+ link_directories(${OPENEXR_LIBPATH})
+ endif()
+ if(WITH_IMAGE_TIFF)
+ link_directories(${TIFF_LIBPATH})
+ endif()
+ if(WITH_BOOST)
+ link_directories(${BOOST_LIBPATH})
+ endif()
+ if(WITH_OPENIMAGEIO)
+ link_directories(${OPENIMAGEIO_LIBPATH})
+ endif()
+ if(WITH_OPENCOLORIO)
+ link_directories(${OPENCOLORIO_LIBPATH})
+ endif()
+ if(WITH_OPENVDB)
+ link_directories(${OPENVDB_LIBPATH})
+ endif()
+ if(WITH_OPENAL)
+ link_directories(${OPENAL_LIBPATH})
+ endif()
+ if(WITH_JACK AND NOT WITH_JACK_DYNLOAD)
+ link_directories(${JACK_LIBPATH})
+ endif()
+ if(WITH_CODEC_SNDFILE)
+ link_directories(${LIBSNDFILE_LIBPATH})
+ endif()
+ if(WITH_FFTW3)
+ link_directories(${FFTW3_LIBPATH})
+ endif()
+ if(WITH_OPENCOLLADA)
+ link_directories(${OPENCOLLADA_LIBPATH})
+ ## Never set
+ # link_directories(${PCRE_LIBPATH})
+ # link_directories(${EXPAT_LIBPATH})
+ endif()
+ if(WITH_LLVM)
+ link_directories(${LLVM_LIBPATH})
+ endif()
+
+ if(WITH_ALEMBIC)
+ link_directories(${ALEMBIC_LIBPATH})
+ link_directories(${HDF5_LIBPATH})
+ endif()
+
+ if(WIN32 AND NOT UNIX)
+ link_directories(${PTHREADS_LIBPATH})
+ endif()
+ endif()
endfunction()
macro(setup_platform_linker_flags)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}")
- set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}")
+ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}")
endmacro()
function(setup_liblinks
- target
- )
-
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE)
- set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE)
-
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE)
- set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE)
-
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE)
- set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "${CMAKE_MODULE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE)
-
- # jemalloc must be early in the list, to be before pthread (see T57998)
- if(WITH_MEM_JEMALLOC)
- target_link_libraries(${target} ${JEMALLOC_LIBRARIES})
- endif()
-
- target_link_libraries(
- ${target}
- ${PNG_LIBRARIES}
- ${FREETYPE_LIBRARY}
- )
-
- # since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions
- if(WITH_PYTHON) # AND NOT WITH_PYTHON_MODULE # WIN32 needs
- target_link_libraries(${target} ${PYTHON_LINKFLAGS})
-
- if(WIN32 AND NOT UNIX)
- file_list_suffix(PYTHON_LIBRARIES_DEBUG "${PYTHON_LIBRARIES}" "_d")
- target_link_libraries_debug(${target} "${PYTHON_LIBRARIES_DEBUG}")
- target_link_libraries_optimized(${target} "${PYTHON_LIBRARIES}")
- unset(PYTHON_LIBRARIES_DEBUG)
- else()
- target_link_libraries(${target} ${PYTHON_LIBRARIES})
- endif()
- endif()
-
- if(WITH_LZO AND WITH_SYSTEM_LZO)
- target_link_libraries(${target} ${LZO_LIBRARIES})
- endif()
- if(WITH_SYSTEM_GLEW)
- target_link_libraries(${target} ${BLENDER_GLEW_LIBRARIES})
- endif()
- if(WITH_BULLET AND WITH_SYSTEM_BULLET)
- target_link_libraries(${target} ${BULLET_LIBRARIES})
- endif()
- if(WITH_AUDASPACE AND WITH_SYSTEM_AUDASPACE)
- target_link_libraries(${target} ${AUDASPACE_C_LIBRARIES} ${AUDASPACE_PY_LIBRARIES})
- endif()
- if(WITH_OPENAL)
- target_link_libraries(${target} ${OPENAL_LIBRARY})
- endif()
- if(WITH_FFTW3)
- target_link_libraries(${target} ${FFTW3_LIBRARIES})
- endif()
- if(WITH_JACK AND NOT WITH_JACK_DYNLOAD)
- target_link_libraries(${target} ${JACK_LIBRARIES})
- endif()
- if(WITH_CODEC_SNDFILE)
- target_link_libraries(${target} ${LIBSNDFILE_LIBRARIES})
- endif()
- if(WITH_SDL AND NOT WITH_SDL_DYNLOAD)
- target_link_libraries(${target} ${SDL_LIBRARY})
- endif()
- if(WITH_CYCLES_OSL)
- target_link_libraries(${target} ${OSL_LIBRARIES})
- endif()
- if(WITH_OPENVDB)
- target_link_libraries(${target} ${OPENVDB_LIBRARIES} ${TBB_LIBRARIES} ${BLOSC_LIBRARIES})
- endif()
- if(WITH_OPENIMAGEIO)
- target_link_libraries(${target} ${OPENIMAGEIO_LIBRARIES})
- endif()
- if(WITH_OPENCOLORIO)
- target_link_libraries(${target} ${OPENCOLORIO_LIBRARIES})
- endif()
- if(WITH_OPENSUBDIV)
- target_link_libraries(${target} ${OPENSUBDIV_LIBRARIES})
- endif()
- if(WITH_CYCLES_EMBREE)
- target_link_libraries(${target} ${EMBREE_LIBRARIES})
- endif()
- if(WITH_BOOST)
- target_link_libraries(${target} ${BOOST_LIBRARIES})
- if(Boost_USE_STATIC_LIBS AND Boost_USE_ICU)
- target_link_libraries(${target} ${ICU_LIBRARIES})
- endif()
- endif()
- target_link_libraries(${target} ${JPEG_LIBRARIES})
- if(WITH_ALEMBIC)
- target_link_libraries(${target} ${ALEMBIC_LIBRARIES} ${HDF5_LIBRARIES})
- endif()
- if(WITH_IMAGE_TIFF)
- target_link_libraries(${target} ${TIFF_LIBRARY})
- endif()
- if(WITH_IMAGE_OPENEXR)
- target_link_libraries(${target} ${OPENEXR_LIBRARIES})
- endif()
- if(WITH_IMAGE_OPENJPEG)
- target_link_libraries(${target} ${OPENJPEG_LIBRARIES})
- endif()
- if(WITH_CODEC_FFMPEG)
- target_link_libraries(${target} ${FFMPEG_LIBRARIES})
- endif()
- if(WITH_OPENCOLLADA)
- if(WIN32 AND NOT UNIX)
- file_list_suffix(OPENCOLLADA_LIBRARIES_DEBUG "${OPENCOLLADA_LIBRARIES}" "_d")
- target_link_libraries_debug(${target} "${OPENCOLLADA_LIBRARIES_DEBUG}")
- target_link_libraries_optimized(${target} "${OPENCOLLADA_LIBRARIES}")
- unset(OPENCOLLADA_LIBRARIES_DEBUG)
-
- file_list_suffix(PCRE_LIBRARIES_DEBUG "${PCRE_LIBRARIES}" "_d")
- target_link_libraries_debug(${target} "${PCRE_LIBRARIES_DEBUG}")
- target_link_libraries_optimized(${target} "${PCRE_LIBRARIES}")
- unset(PCRE_LIBRARIES_DEBUG)
-
- if(EXPAT_LIB)
- file_list_suffix(EXPAT_LIB_DEBUG "${EXPAT_LIB}" "_d")
- target_link_libraries_debug(${target} "${EXPAT_LIB_DEBUG}")
- target_link_libraries_optimized(${target} "${EXPAT_LIB}")
- unset(EXPAT_LIB_DEBUG)
- endif()
- else()
- target_link_libraries(
- ${target}
- ${OPENCOLLADA_LIBRARIES}
- ${PCRE_LIBRARIES}
- ${XML2_LIBRARIES}
- ${EXPAT_LIB}
- )
- endif()
- endif()
- if(WITH_MOD_CLOTH_ELTOPO)
- target_link_libraries(${target} ${LAPACK_LIBRARIES})
- endif()
- if(WITH_LLVM)
- target_link_libraries(${target} ${LLVM_LIBRARY})
- endif()
- if(WIN32 AND NOT UNIX)
- target_link_libraries(${target} ${PTHREADS_LIBRARIES})
- endif()
- if(UNIX AND NOT APPLE)
- if(WITH_OPENMP_STATIC)
- target_link_libraries(${target} ${OpenMP_LIBRARIES})
- endif()
- if(WITH_INPUT_NDOF)
- target_link_libraries(${target} ${NDOF_LIBRARIES})
- endif()
- endif()
- if(WITH_SYSTEM_GLOG)
- target_link_libraries(${target} ${GLOG_LIBRARIES})
- endif()
- if(WITH_SYSTEM_GFLAGS)
- target_link_libraries(${target} ${GFLAGS_LIBRARIES})
- endif()
-
- # We put CLEW and CUEW here because OPENSUBDIV_LIBRARIES depends on them..
- if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV)
- target_link_libraries(${target} "extern_clew")
- if(WITH_CUDA_DYNLOAD)
- target_link_libraries(${target} "extern_cuew")
- else()
- target_link_libraries(${target} ${CUDA_CUDA_LIBRARY})
- endif()
- endif()
-
- target_link_libraries(
- ${target}
- ${ZLIB_LIBRARIES}
- )
-
- #system libraries with no dependencies such as platform link libs or opengl should go last
- target_link_libraries(${target}
- ${BLENDER_GL_LIBRARIES})
-
- #target_link_libraries(${target} ${PLATFORM_LINKLIBS} ${CMAKE_DL_LIBS})
- target_link_libraries(${target} ${PLATFORM_LINKLIBS})
+ target
+ )
+
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE)
+ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE)
+
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE)
+ set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE)
+
+ set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${PLATFORM_LINKFLAGS}" PARENT_SCOPE)
+ set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "${CMAKE_MODULE_LINKER_FLAGS_DEBUG} ${PLATFORM_LINKFLAGS_DEBUG}" PARENT_SCOPE)
+
+ # jemalloc must be early in the list, to be before pthread (see T57998)
+ if(WITH_MEM_JEMALLOC)
+ target_link_libraries(${target} ${JEMALLOC_LIBRARIES})
+ endif()
+
+ target_link_libraries(
+ ${target}
+ ${PNG_LIBRARIES}
+ ${FREETYPE_LIBRARY}
+ )
+
+ # since we are using the local libs for python when compiling msvc projects, we need to add _d when compiling debug versions
+ if(WITH_PYTHON) # AND NOT WITH_PYTHON_MODULE # WIN32 needs
+ target_link_libraries(${target} ${PYTHON_LINKFLAGS})
+
+ if(WIN32 AND NOT UNIX)
+ file_list_suffix(PYTHON_LIBRARIES_DEBUG "${PYTHON_LIBRARIES}" "_d")
+ target_link_libraries_debug(${target} "${PYTHON_LIBRARIES_DEBUG}")
+ target_link_libraries_optimized(${target} "${PYTHON_LIBRARIES}")
+ unset(PYTHON_LIBRARIES_DEBUG)
+ else()
+ target_link_libraries(${target} ${PYTHON_LIBRARIES})
+ endif()
+ endif()
+
+ if(WITH_LZO AND WITH_SYSTEM_LZO)
+ target_link_libraries(${target} ${LZO_LIBRARIES})
+ endif()
+ if(WITH_SYSTEM_GLEW)
+ target_link_libraries(${target} ${BLENDER_GLEW_LIBRARIES})
+ endif()
+ if(WITH_BULLET AND WITH_SYSTEM_BULLET)
+ target_link_libraries(${target} ${BULLET_LIBRARIES})
+ endif()
+ if(WITH_AUDASPACE AND WITH_SYSTEM_AUDASPACE)
+ target_link_libraries(${target} ${AUDASPACE_C_LIBRARIES} ${AUDASPACE_PY_LIBRARIES})
+ endif()
+ if(WITH_OPENAL)
+ target_link_libraries(${target} ${OPENAL_LIBRARY})
+ endif()
+ if(WITH_FFTW3)
+ target_link_libraries(${target} ${FFTW3_LIBRARIES})
+ endif()
+ if(WITH_JACK AND NOT WITH_JACK_DYNLOAD)
+ target_link_libraries(${target} ${JACK_LIBRARIES})
+ endif()
+ if(WITH_CODEC_SNDFILE)
+ target_link_libraries(${target} ${LIBSNDFILE_LIBRARIES})
+ endif()
+ if(WITH_SDL AND NOT WITH_SDL_DYNLOAD)
+ target_link_libraries(${target} ${SDL_LIBRARY})
+ endif()
+ if(WITH_CYCLES_OSL)
+ target_link_libraries(${target} ${OSL_LIBRARIES})
+ endif()
+ if(WITH_OPENVDB)
+ target_link_libraries(${target} ${OPENVDB_LIBRARIES} ${TBB_LIBRARIES} ${BLOSC_LIBRARIES})
+ endif()
+ if(WITH_OPENIMAGEIO)
+ target_link_libraries(${target} ${OPENIMAGEIO_LIBRARIES})
+ endif()
+ if(WITH_OPENCOLORIO)
+ target_link_libraries(${target} ${OPENCOLORIO_LIBRARIES})
+ endif()
+ if(WITH_OPENSUBDIV)
+ target_link_libraries(${target} ${OPENSUBDIV_LIBRARIES})
+ endif()
+ if(WITH_CYCLES_EMBREE)
+ target_link_libraries(${target} ${EMBREE_LIBRARIES})
+ endif()
+ if(WITH_BOOST)
+ target_link_libraries(${target} ${BOOST_LIBRARIES})
+ if(Boost_USE_STATIC_LIBS AND Boost_USE_ICU)
+ target_link_libraries(${target} ${ICU_LIBRARIES})
+ endif()
+ endif()
+ target_link_libraries(${target} ${JPEG_LIBRARIES})
+ if(WITH_ALEMBIC)
+ target_link_libraries(${target} ${ALEMBIC_LIBRARIES} ${HDF5_LIBRARIES})
+ endif()
+ if(WITH_IMAGE_TIFF)
+ target_link_libraries(${target} ${TIFF_LIBRARY})
+ endif()
+ if(WITH_IMAGE_OPENEXR)
+ target_link_libraries(${target} ${OPENEXR_LIBRARIES})
+ endif()
+ if(WITH_IMAGE_OPENJPEG)
+ target_link_libraries(${target} ${OPENJPEG_LIBRARIES})
+ endif()
+ if(WITH_CODEC_FFMPEG)
+ target_link_libraries(${target} ${FFMPEG_LIBRARIES})
+ endif()
+ if(WITH_OPENCOLLADA)
+ if(WIN32 AND NOT UNIX)
+ file_list_suffix(OPENCOLLADA_LIBRARIES_DEBUG "${OPENCOLLADA_LIBRARIES}" "_d")
+ target_link_libraries_debug(${target} "${OPENCOLLADA_LIBRARIES_DEBUG}")
+ target_link_libraries_optimized(${target} "${OPENCOLLADA_LIBRARIES}")
+ unset(OPENCOLLADA_LIBRARIES_DEBUG)
+
+ file_list_suffix(PCRE_LIBRARIES_DEBUG "${PCRE_LIBRARIES}" "_d")
+ target_link_libraries_debug(${target} "${PCRE_LIBRARIES_DEBUG}")
+ target_link_libraries_optimized(${target} "${PCRE_LIBRARIES}")
+ unset(PCRE_LIBRARIES_DEBUG)
+
+ if(EXPAT_LIB)
+ file_list_suffix(EXPAT_LIB_DEBUG "${EXPAT_LIB}" "_d")
+ target_link_libraries_debug(${target} "${EXPAT_LIB_DEBUG}")
+ target_link_libraries_optimized(${target} "${EXPAT_LIB}")
+ unset(EXPAT_LIB_DEBUG)
+ endif()
+ else()
+ target_link_libraries(
+ ${target}
+ ${OPENCOLLADA_LIBRARIES}
+ ${PCRE_LIBRARIES}
+ ${XML2_LIBRARIES}
+ ${EXPAT_LIB}
+ )
+ endif()
+ endif()
+ if(WITH_MOD_CLOTH_ELTOPO)
+ target_link_libraries(${target} ${LAPACK_LIBRARIES})
+ endif()
+ if(WITH_LLVM)
+ target_link_libraries(${target} ${LLVM_LIBRARY})
+ endif()
+ if(WIN32 AND NOT UNIX)
+ target_link_libraries(${target} ${PTHREADS_LIBRARIES})
+ endif()
+ if(UNIX AND NOT APPLE)
+ if(WITH_OPENMP_STATIC)
+ target_link_libraries(${target} ${OpenMP_LIBRARIES})
+ endif()
+ if(WITH_INPUT_NDOF)
+ target_link_libraries(${target} ${NDOF_LIBRARIES})
+ endif()
+ endif()
+ if(WITH_SYSTEM_GLOG)
+ target_link_libraries(${target} ${GLOG_LIBRARIES})
+ endif()
+ if(WITH_SYSTEM_GFLAGS)
+ target_link_libraries(${target} ${GFLAGS_LIBRARIES})
+ endif()
+
+ # We put CLEW and CUEW here because OPENSUBDIV_LIBRARIES depends on them..
+ if(WITH_CYCLES OR WITH_COMPOSITOR OR WITH_OPENSUBDIV)
+ target_link_libraries(${target} "extern_clew")
+ if(WITH_CUDA_DYNLOAD)
+ target_link_libraries(${target} "extern_cuew")
+ else()
+ target_link_libraries(${target} ${CUDA_CUDA_LIBRARY})
+ endif()
+ endif()
+
+ target_link_libraries(
+ ${target}
+ ${ZLIB_LIBRARIES}
+ )
+
+ #system libraries with no dependencies such as platform link libs or opengl should go last
+ target_link_libraries(${target}
+ ${BLENDER_GL_LIBRARIES})
+
+ #target_link_libraries(${target} ${PLATFORM_LINKLIBS} ${CMAKE_DL_LIBS})
+ target_link_libraries(${target} ${PLATFORM_LINKLIBS})
endfunction()
macro(TEST_SSE_SUPPORT
- _sse_flags
- _sse2_flags)
-
- include(CheckCSourceRuns)
-
- # message(STATUS "Detecting SSE support")
- if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
- set(${_sse_flags} "-msse")
- set(${_sse2_flags} "-msse2")
- elseif(MSVC)
- # x86_64 has this auto enabled
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- set(${_sse_flags} "")
- set(${_sse2_flags} "")
- else()
- set(${_sse_flags} "/arch:SSE")
- set(${_sse2_flags} "/arch:SSE2")
- endif()
- elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
- set(${_sse_flags} "") # icc defaults to -msse
- set(${_sse2_flags} "") # icc defaults to -msse2
- else()
- message(WARNING "SSE flags for this compiler: '${CMAKE_C_COMPILER_ID}' not known")
- set(${_sse_flags})
- set(${_sse2_flags})
- endif()
-
- set(CMAKE_REQUIRED_FLAGS "${${_sse_flags}} ${${_sse2_flags}}")
-
- if(NOT DEFINED SUPPORT_SSE_BUILD)
- # result cached
- check_c_source_runs("
- #include <xmmintrin.h>
- int main(void) { __m128 v = _mm_setzero_ps(); return 0; }"
- SUPPORT_SSE_BUILD)
-
- if(SUPPORT_SSE_BUILD)
- message(STATUS "SSE Support: detected.")
- else()
- message(STATUS "SSE Support: missing.")
- endif()
- endif()
-
- if(NOT DEFINED SUPPORT_SSE2_BUILD)
- # result cached
- check_c_source_runs("
- #include <emmintrin.h>
- int main(void) { __m128d v = _mm_setzero_pd(); return 0; }"
- SUPPORT_SSE2_BUILD)
-
- if(SUPPORT_SSE2_BUILD)
- message(STATUS "SSE2 Support: detected.")
- else()
- message(STATUS "SSE2 Support: missing.")
- endif()
- endif()
-
- unset(CMAKE_REQUIRED_FLAGS)
+ _sse_flags
+ _sse2_flags)
+
+ include(CheckCSourceRuns)
+
+ # message(STATUS "Detecting SSE support")
+ if(CMAKE_COMPILER_IS_GNUCC OR (CMAKE_C_COMPILER_ID MATCHES "Clang"))
+ set(${_sse_flags} "-msse")
+ set(${_sse2_flags} "-msse2")
+ elseif(MSVC)
+ # x86_64 has this auto enabled
+ if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+ set(${_sse_flags} "")
+ set(${_sse2_flags} "")
+ else()
+ set(${_sse_flags} "/arch:SSE")
+ set(${_sse2_flags} "/arch:SSE2")
+ endif()
+ elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
+ set(${_sse_flags} "") # icc defaults to -msse
+ set(${_sse2_flags} "") # icc defaults to -msse2
+ else()
+ message(WARNING "SSE flags for this compiler: '${CMAKE_C_COMPILER_ID}' not known")
+ set(${_sse_flags})
+ set(${_sse2_flags})
+ endif()
+
+ set(CMAKE_REQUIRED_FLAGS "${${_sse_flags}} ${${_sse2_flags}}")
+
+ if(NOT DEFINED SUPPORT_SSE_BUILD)
+ # result cached
+ check_c_source_runs("
+ #include <xmmintrin.h>
+ int main(void) { __m128 v = _mm_setzero_ps(); return 0; }"
+ SUPPORT_SSE_BUILD)
+
+ if(SUPPORT_SSE_BUILD)
+ message(STATUS "SSE Support: detected.")
+ else()
+ message(STATUS "SSE Support: missing.")
+ endif()
+ endif()
+
+ if(NOT DEFINED SUPPORT_SSE2_BUILD)
+ # result cached
+ check_c_source_runs("
+ #include <emmintrin.h>
+ int main(void) { __m128d v = _mm_setzero_pd(); return 0; }"
+ SUPPORT_SSE2_BUILD)
+
+ if(SUPPORT_SSE2_BUILD)
+ message(STATUS "SSE2 Support: detected.")
+ else()
+ message(STATUS "SSE2 Support: missing.")
+ endif()
+ endif()
+
+ unset(CMAKE_REQUIRED_FLAGS)
endmacro()
# Only print message if running CMake first time
macro(message_first_run)
- if(FIRST_RUN)
- message(${ARGV})
- endif()
+ if(FIRST_RUN)
+ message(${ARGV})
+ endif()
endmacro()
# when we have warnings as errors applied globally this
@@ -612,252 +612,252 @@ endmacro()
# utility macro
macro(remove_cc_flag
- _flag)
-
- foreach(flag ${ARGV})
- string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
- string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
- string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
- string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}")
- string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
-
- string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
- string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
- string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
- string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
- endforeach()
- unset(flag)
+ _flag)
+
+ foreach(flag ${ARGV})
+ string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
+ string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+ string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}")
+ string(REGEX REPLACE ${flag} "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+
+ string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+ string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
+ string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+ string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
+ string(REGEX REPLACE ${flag} "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
+ endforeach()
+ unset(flag)
endmacro()
macro(add_c_flag
- flag)
+ flag)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
endmacro()
macro(add_cxx_flag
- flag)
+ flag)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
endmacro()
macro(remove_strict_flags)
- if(CMAKE_COMPILER_IS_GNUCC)
- remove_cc_flag(
- "-Wstrict-prototypes"
- "-Wmissing-prototypes"
- "-Wmissing-declarations"
- "-Wmissing-format-attribute"
- "-Wunused-local-typedefs"
- "-Wunused-macros"
- "-Wunused-parameter"
- "-Wwrite-strings"
- "-Wredundant-decls"
- "-Wundef"
- "-Wshadow"
- "-Wdouble-promotion"
- "-Wold-style-definition"
- "-Werror=[^ ]+"
- "-Werror"
- )
-
- # negate flags implied by '-Wall'
- add_c_flag("${C_REMOVE_STRICT_FLAGS}")
- add_cxx_flag("${CXX_REMOVE_STRICT_FLAGS}")
- endif()
-
- if(CMAKE_C_COMPILER_ID MATCHES "Clang")
- remove_cc_flag(
- "-Wunused-parameter"
- "-Wunused-variable"
- "-Werror=[^ ]+"
- "-Werror"
- )
-
- # negate flags implied by '-Wall'
- add_c_flag("${C_REMOVE_STRICT_FLAGS}")
- add_cxx_flag("${CXX_REMOVE_STRICT_FLAGS}")
- endif()
-
- if(MSVC)
- # TODO
- endif()
+ if(CMAKE_COMPILER_IS_GNUCC)
+ remove_cc_flag(
+ "-Wstrict-prototypes"
+ "-Wmissing-prototypes"
+ "-Wmissing-declarations"
+ "-Wmissing-format-attribute"
+ "-Wunused-local-typedefs"
+ "-Wunused-macros"
+ "-Wunused-parameter"
+ "-Wwrite-strings"
+ "-Wredundant-decls"
+ "-Wundef"
+ "-Wshadow"
+ "-Wdouble-promotion"
+ "-Wold-style-definition"
+ "-Werror=[^ ]+"
+ "-Werror"
+ )
+
+ # negate flags implied by '-Wall'
+ add_c_flag("${C_REMOVE_STRICT_FLAGS}")
+ add_cxx_flag("${CXX_REMOVE_STRICT_FLAGS}")
+ endif()
+
+ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
+ remove_cc_flag(
+ "-Wunused-parameter"
+ "-Wunused-variable"
+ "-Werror=[^ ]+"
+ "-Werror"
+ )
+
+ # negate flags implied by '-Wall'
+ add_c_flag("${C_REMOVE_STRICT_FLAGS}")
+ add_cxx_flag("${CXX_REMOVE_STRICT_FLAGS}")
+ endif()
+
+ if(MSVC)
+ # TODO
+ endif()
endmacro()
macro(remove_extra_strict_flags)
- if(CMAKE_COMPILER_IS_GNUCC)
- remove_cc_flag(
- "-Wunused-parameter"
- )
- endif()
-
- if(CMAKE_C_COMPILER_ID MATCHES "Clang")
- remove_cc_flag(
- "-Wunused-parameter"
- )
- endif()
-
- if(MSVC)
- # TODO
- endif()
+ if(CMAKE_COMPILER_IS_GNUCC)
+ remove_cc_flag(
+ "-Wunused-parameter"
+ )
+ endif()
+
+ if(CMAKE_C_COMPILER_ID MATCHES "Clang")
+ remove_cc_flag(
+ "-Wunused-parameter"
+ )
+ endif()
+
+ if(MSVC)
+ # TODO
+ endif()
endmacro()
# note, we can only append flags on a single file so we need to negate the options.
# at the moment we cant shut up ffmpeg deprecations, so use this, but will
# probably add more removals here.
macro(remove_strict_c_flags_file
- filenames)
- foreach(_SOURCE ${ARGV})
- if(CMAKE_COMPILER_IS_GNUCC OR
- (CMAKE_C_COMPILER_ID MATCHES "Clang"))
- set_source_files_properties(${_SOURCE}
- PROPERTIES
- COMPILE_FLAGS "${C_REMOVE_STRICT_FLAGS}"
- )
- endif()
- if(MSVC)
- # TODO
- endif()
- endforeach()
- unset(_SOURCE)
+ filenames)
+ foreach(_SOURCE ${ARGV})
+ if(CMAKE_COMPILER_IS_GNUCC OR
+ (CMAKE_C_COMPILER_ID MATCHES "Clang"))
+ set_source_files_properties(${_SOURCE}
+ PROPERTIES
+ COMPILE_FLAGS "${C_REMOVE_STRICT_FLAGS}"
+ )
+ endif()
+ if(MSVC)
+ # TODO
+ endif()
+ endforeach()
+ unset(_SOURCE)
endmacro()
macro(remove_strict_cxx_flags_file
- filenames)
- remove_strict_c_flags_file(${filenames} ${ARHV})
- foreach(_SOURCE ${ARGV})
- if(CMAKE_COMPILER_IS_GNUCC OR
- (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
- set_source_files_properties(${_SOURCE}
- PROPERTIES
- COMPILE_FLAGS "${CXX_REMOVE_STRICT_FLAGS}"
- )
- endif()
- if(MSVC)
- # TODO
- endif()
- endforeach()
- unset(_SOURCE)
+ filenames)
+ remove_strict_c_flags_file(${filenames} ${ARHV})
+ foreach(_SOURCE ${ARGV})
+ if(CMAKE_COMPILER_IS_GNUCC OR
+ (CMAKE_CXX_COMPILER_ID MATCHES "Clang"))
+ set_source_files_properties(${_SOURCE}
+ PROPERTIES
+ COMPILE_FLAGS "${CXX_REMOVE_STRICT_FLAGS}"
+ )
+ endif()
+ if(MSVC)
+ # TODO
+ endif()
+ endforeach()
+ unset(_SOURCE)
endmacro()
# External libs may need 'signed char' to be default.
macro(remove_cc_flag_unsigned_char)
- if(CMAKE_COMPILER_IS_GNUCC OR
- (CMAKE_C_COMPILER_ID MATCHES "Clang") OR
- (CMAKE_C_COMPILER_ID MATCHES "Intel"))
- remove_cc_flag("-funsigned-char")
- elseif(MSVC)
- remove_cc_flag("/J")
- else()
- message(WARNING
- "Compiler '${CMAKE_C_COMPILER_ID}' failed to disable 'unsigned char' flag."
- "Build files need updating."
- )
- endif()
+ if(CMAKE_COMPILER_IS_GNUCC OR
+ (CMAKE_C_COMPILER_ID MATCHES "Clang") OR
+ (CMAKE_C_COMPILER_ID MATCHES "Intel"))
+ remove_cc_flag("-funsigned-char")
+ elseif(MSVC)
+ remove_cc_flag("/J")
+ else()
+ message(WARNING
+ "Compiler '${CMAKE_C_COMPILER_ID}' failed to disable 'unsigned char' flag."
+ "Build files need updating."
+ )
+ endif()
endmacro()
function(ADD_CHECK_C_COMPILER_FLAG
- _CFLAGS
- _CACHE_VAR
- _FLAG
- )
-
- include(CheckCCompilerFlag)
-
- CHECK_C_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}")
- if(${_CACHE_VAR})
- # message(STATUS "Using CFLAG: ${_FLAG}")
- set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}" PARENT_SCOPE)
- else()
- message(STATUS "Unsupported CFLAG: ${_FLAG}")
- endif()
+ _CFLAGS
+ _CACHE_VAR
+ _FLAG
+ )
+
+ include(CheckCCompilerFlag)
+
+ CHECK_C_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}")
+ if(${_CACHE_VAR})
+ # message(STATUS "Using CFLAG: ${_FLAG}")
+ set(${_CFLAGS} "${${_CFLAGS}} ${_FLAG}" PARENT_SCOPE)
+ else()
+ message(STATUS "Unsupported CFLAG: ${_FLAG}")
+ endif()
endfunction()
function(ADD_CHECK_CXX_COMPILER_FLAG
- _CXXFLAGS
- _CACHE_VAR
- _FLAG
- )
-
- include(CheckCXXCompilerFlag)
-
- CHECK_CXX_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}")
- if(${_CACHE_VAR})
- # message(STATUS "Using CXXFLAG: ${_FLAG}")
- set(${_CXXFLAGS} "${${_CXXFLAGS}} ${_FLAG}" PARENT_SCOPE)
- else()
- message(STATUS "Unsupported CXXFLAG: ${_FLAG}")
- endif()
+ _CXXFLAGS
+ _CACHE_VAR
+ _FLAG
+ )
+
+ include(CheckCXXCompilerFlag)
+
+ CHECK_CXX_COMPILER_FLAG("${_FLAG}" "${_CACHE_VAR}")
+ if(${_CACHE_VAR})
+ # message(STATUS "Using CXXFLAG: ${_FLAG}")
+ set(${_CXXFLAGS} "${${_CXXFLAGS}} ${_FLAG}" PARENT_SCOPE)
+ else()
+ message(STATUS "Unsupported CXXFLAG: ${_FLAG}")
+ endif()
endfunction()
function(get_blender_version)
- # extracts header vars and defines them in the parent scope:
- #
- # - BLENDER_VERSION (major.minor)
- # - BLENDER_VERSION_MAJOR
- # - BLENDER_VERSION_MINOR
- # - BLENDER_SUBVERSION (used for internal versioning mainly)
- # - BLENDER_VERSION_CHAR (a, b, c, ...or empty string)
- # - BLENDER_VERSION_CYCLE (alpha, beta, rc, release)
-
- # So cmake depends on BKE_blender.h, beware of inf-loops!
- CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h
- ${CMAKE_BINARY_DIR}/source/blender/blenkernel/BKE_blender_version.h.done)
-
- file(STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h _contents REGEX "^#define[ \t]+BLENDER_.*$")
-
- string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION[ \t]+([0-9]+).*" "\\1" _out_version "${_contents}")
- string(REGEX REPLACE ".*#define[ \t]+BLENDER_SUBVERSION[ \t]+([0-9]+).*" "\\1" _out_subversion "${_contents}")
- string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CHAR[ \t]+([a-z]+).*" "\\1" _out_version_char "${_contents}")
- string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CYCLE[ \t]+([a-z]+).*" "\\1" _out_version_cycle "${_contents}")
-
- if(NOT ${_out_version} MATCHES "[0-9]+")
- message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION")
- endif()
-
- if(NOT ${_out_subversion} MATCHES "[0-9]+")
- message(FATAL_ERROR "Version parsing failed for BLENDER_SUBVERSION")
- endif()
-
- # clumsy regex, only single char are ok but it could be unset
-
- string(LENGTH "${_out_version_char}" _out_version_char_len)
- if(NOT _out_version_char_len EQUAL 1)
- set(_out_version_char "")
- elseif(NOT ${_out_version_char} MATCHES "[a-z]+")
- message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CHAR")
- endif()
-
- if(NOT ${_out_version_cycle} MATCHES "[a-z]+")
- message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CYCLE")
- endif()
-
- math(EXPR _out_version_major "${_out_version} / 100")
- math(EXPR _out_version_minor "${_out_version} % 100")
-
- # for packaging, alpha to numbers
- string(COMPARE EQUAL "${_out_version_char}" "" _out_version_char_empty)
- if(${_out_version_char_empty})
- set(_out_version_char_index "0")
- else()
- set(_char_ls a b c d e f g h i j k l m n o p q r s t u v w x y z)
- list(FIND _char_ls ${_out_version_char} _out_version_char_index)
- math(EXPR _out_version_char_index "${_out_version_char_index} + 1")
- endif()
-
- # output vars
- set(BLENDER_VERSION "${_out_version_major}.${_out_version_minor}" PARENT_SCOPE)
- set(BLENDER_VERSION_MAJOR "${_out_version_major}" PARENT_SCOPE)
- set(BLENDER_VERSION_MINOR "${_out_version_minor}" PARENT_SCOPE)
- set(BLENDER_SUBVERSION "${_out_subversion}" PARENT_SCOPE)
- set(BLENDER_VERSION_CHAR "${_out_version_char}" PARENT_SCOPE)
- set(BLENDER_VERSION_CHAR_INDEX "${_out_version_char_index}" PARENT_SCOPE)
- set(BLENDER_VERSION_CYCLE "${_out_version_cycle}" PARENT_SCOPE)
+ # extracts header vars and defines them in the parent scope:
+ #
+ # - BLENDER_VERSION (major.minor)
+ # - BLENDER_VERSION_MAJOR
+ # - BLENDER_VERSION_MINOR
+ # - BLENDER_SUBVERSION (used for internal versioning mainly)
+ # - BLENDER_VERSION_CHAR (a, b, c, ...or empty string)
+ # - BLENDER_VERSION_CYCLE (alpha, beta, rc, release)
+
+ # So cmake depends on BKE_blender.h, beware of inf-loops!
+ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h
+ ${CMAKE_BINARY_DIR}/source/blender/blenkernel/BKE_blender_version.h.done)
+
+ file(STRINGS ${CMAKE_SOURCE_DIR}/source/blender/blenkernel/BKE_blender_version.h _contents REGEX "^#define[ \t]+BLENDER_.*$")
+
+ string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION[ \t]+([0-9]+).*" "\\1" _out_version "${_contents}")
+ string(REGEX REPLACE ".*#define[ \t]+BLENDER_SUBVERSION[ \t]+([0-9]+).*" "\\1" _out_subversion "${_contents}")
+ string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CHAR[ \t]+([a-z]+).*" "\\1" _out_version_char "${_contents}")
+ string(REGEX REPLACE ".*#define[ \t]+BLENDER_VERSION_CYCLE[ \t]+([a-z]+).*" "\\1" _out_version_cycle "${_contents}")
+
+ if(NOT ${_out_version} MATCHES "[0-9]+")
+ message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION")
+ endif()
+
+ if(NOT ${_out_subversion} MATCHES "[0-9]+")
+ message(FATAL_ERROR "Version parsing failed for BLENDER_SUBVERSION")
+ endif()
+
+ # clumsy regex, only single char are ok but it could be unset
+
+ string(LENGTH "${_out_version_char}" _out_version_char_len)
+ if(NOT _out_version_char_len EQUAL 1)
+ set(_out_version_char "")
+ elseif(NOT ${_out_version_char} MATCHES "[a-z]+")
+ message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CHAR")
+ endif()
+
+ if(NOT ${_out_version_cycle} MATCHES "[a-z]+")
+ message(FATAL_ERROR "Version parsing failed for BLENDER_VERSION_CYCLE")
+ endif()
+
+ math(EXPR _out_version_major "${_out_version} / 100")
+ math(EXPR _out_version_minor "${_out_version} % 100")
+
+ # for packaging, alpha to numbers
+ string(COMPARE EQUAL "${_out_version_char}" "" _out_version_char_empty)
+ if(${_out_version_char_empty})
+ set(_out_version_char_index "0")
+ else()
+ set(_char_ls a b c d e f g h i j k l m n o p q r s t u v w x y z)
+ list(FIND _char_ls ${_out_version_char} _out_version_char_index)
+ math(EXPR _out_version_char_index "${_out_version_char_index} + 1")
+ endif()
+
+ # output vars
+ set(BLENDER_VERSION "${_out_version_major}.${_out_version_minor}" PARENT_SCOPE)
+ set(BLENDER_VERSION_MAJOR "${_out_version_major}" PARENT_SCOPE)
+ set(BLENDER_VERSION_MINOR "${_out_version_minor}" PARENT_SCOPE)
+ set(BLENDER_SUBVERSION "${_out_subversion}" PARENT_SCOPE)
+ set(BLENDER_VERSION_CHAR "${_out_version_char}" PARENT_SCOPE)
+ set(BLENDER_VERSION_CHAR_INDEX "${_out_version_char_index}" PARENT_SCOPE)
+ set(BLENDER_VERSION_CYCLE "${_out_version_cycle}" PARENT_SCOPE)
endfunction()
@@ -865,48 +865,48 @@ endfunction()
# hacks to override initial project settings
# these macros must be called directly before/after project(Blender)
macro(blender_project_hack_pre)
- # ------------------
- # GCC -O3 HACK START
- # needed because O3 can cause problems but
- # allow the builder to set O3 manually after.
- if(DEFINED CMAKE_C_FLAGS_RELEASE)
- set(_reset_standard_cflags_rel OFF)
- else()
- set(_reset_standard_cflags_rel ON)
- endif()
- if(DEFINED CMAKE_CXX_FLAGS_RELEASE)
- set(_reset_standard_cxxflags_rel OFF)
- else()
- set(_reset_standard_cxxflags_rel ON)
- endif()
+ # ------------------
+ # GCC -O3 HACK START
+ # needed because O3 can cause problems but
+ # allow the builder to set O3 manually after.
+ if(DEFINED CMAKE_C_FLAGS_RELEASE)
+ set(_reset_standard_cflags_rel OFF)
+ else()
+ set(_reset_standard_cflags_rel ON)
+ endif()
+ if(DEFINED CMAKE_CXX_FLAGS_RELEASE)
+ set(_reset_standard_cxxflags_rel OFF)
+ else()
+ set(_reset_standard_cxxflags_rel ON)
+ endif()
endmacro()
macro(blender_project_hack_post)
- # ----------------
- # GCC -O3 HACK END
- if(_reset_standard_cflags_rel)
- string(REGEX REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "" FORCE)
- mark_as_advanced(CMAKE_C_FLAGS_RELEASE)
- endif()
-
- if(_reset_standard_cxxflags_rel)
- string(REGEX REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "" FORCE)
- mark_as_advanced(CMAKE_CXX_FLAGS_RELEASE)
- endif()
-
- unset(_reset_standard_cflags_rel)
- unset(_reset_standard_cxxflags_rel)
-
- # ------------------------------------------------------------------
- # workaround for omission in cmake 2.8.4's GNU.cmake, fixed in 2.8.5
- if(CMAKE_COMPILER_IS_GNUCC)
- if(NOT DARWIN)
- set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
- endif()
- endif()
+ # ----------------
+ # GCC -O3 HACK END
+ if(_reset_standard_cflags_rel)
+ string(REGEX REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "" FORCE)
+ mark_as_advanced(CMAKE_C_FLAGS_RELEASE)
+ endif()
+
+ if(_reset_standard_cxxflags_rel)
+ string(REGEX REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "" FORCE)
+ mark_as_advanced(CMAKE_CXX_FLAGS_RELEASE)
+ endif()
+
+ unset(_reset_standard_cflags_rel)
+ unset(_reset_standard_cxxflags_rel)
+
+ # ------------------------------------------------------------------
+ # workaround for omission in cmake 2.8.4's GNU.cmake, fixed in 2.8.5
+ if(CMAKE_COMPILER_IS_GNUCC)
+ if(NOT DARWIN)
+ set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
+ endif()
+ endif()
endmacro()
@@ -914,297 +914,297 @@ endmacro()
# only install them at the end so the directories don't get cleared with
# the files in them. used by cycles to install addon.
function(delayed_install
- base
- files
- destination)
-
- foreach(f ${files})
- if(IS_ABSOLUTE ${f})
- set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${f})
- else()
- set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${base}/${f})
- endif()
- set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_DESTINATIONS ${destination})
- endforeach()
+ base
+ files
+ destination)
+
+ foreach(f ${files})
+ if(IS_ABSOLUTE ${f})
+ set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${f})
+ else()
+ set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_FILES ${base}/${f})
+ endif()
+ set_property(GLOBAL APPEND PROPERTY DELAYED_INSTALL_DESTINATIONS ${destination})
+ endforeach()
endfunction()
# note this is a function instead of a macro so that ${BUILD_TYPE} in targetdir
# does not get expanded in calling but is preserved
function(delayed_do_install
- targetdir)
-
- get_property(files GLOBAL PROPERTY DELAYED_INSTALL_FILES)
- get_property(destinations GLOBAL PROPERTY DELAYED_INSTALL_DESTINATIONS)
-
- if(files)
- list(LENGTH files n)
- math(EXPR n "${n}-1")
-
- foreach(i RANGE ${n})
- list(GET files ${i} f)
- list(GET destinations ${i} d)
- if(NOT IS_ABSOLUTE ${d})
- install(FILES ${f} DESTINATION ${targetdir}/${d})
- else()
- install(FILES ${f} DESTINATION ${d})
- endif()
- endforeach()
- endif()
+ targetdir)
+
+ get_property(files GLOBAL PROPERTY DELAYED_INSTALL_FILES)
+ get_property(destinations GLOBAL PROPERTY DELAYED_INSTALL_DESTINATIONS)
+
+ if(files)
+ list(LENGTH files n)
+ math(EXPR n "${n}-1")
+
+ foreach(i RANGE ${n})
+ list(GET files ${i} f)
+ list(GET destinations ${i} d)
+ if(NOT IS_ABSOLUTE ${d})
+ install(FILES ${f} DESTINATION ${targetdir}/${d})
+ else()
+ install(FILES ${f} DESTINATION ${d})
+ endif()
+ endforeach()
+ endif()
endfunction()
function(data_to_c
- file_from file_to
- list_to_add
- )
+ file_from file_to
+ list_to_add
+ )
- list(APPEND ${list_to_add} ${file_to})
- set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
+ list(APPEND ${list_to_add} ${file_to})
+ set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
- get_filename_component(_file_to_path ${file_to} PATH)
+ get_filename_component(_file_to_path ${file_to} PATH)
- add_custom_command(
- OUTPUT ${file_to}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
- COMMAND "$<TARGET_FILE:datatoc>" ${file_from} ${file_to}
- DEPENDS ${file_from} datatoc)
+ add_custom_command(
+ OUTPUT ${file_to}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
+ COMMAND "$<TARGET_FILE:datatoc>" ${file_from} ${file_to}
+ DEPENDS ${file_from} datatoc)
- set_source_files_properties(${file_to} PROPERTIES GENERATED TRUE)
+ set_source_files_properties(${file_to} PROPERTIES GENERATED TRUE)
endfunction()
# same as above but generates the var name and output automatic.
function(data_to_c_simple
- file_from
- list_to_add
- )
+ file_from
+ list_to_add
+ )
- # remove ../'s
- get_filename_component(_file_from ${CMAKE_CURRENT_SOURCE_DIR}/${file_from} REALPATH)
- get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${file_from}.c REALPATH)
+ # remove ../'s
+ get_filename_component(_file_from ${CMAKE_CURRENT_SOURCE_DIR}/${file_from} REALPATH)
+ get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${file_from}.c REALPATH)
- list(APPEND ${list_to_add} ${_file_to})
- source_group(Generated FILES ${_file_to})
- list(APPEND ${list_to_add} ${file_from})
- set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
+ list(APPEND ${list_to_add} ${_file_to})
+ source_group(Generated FILES ${_file_to})
+ list(APPEND ${list_to_add} ${file_from})
+ set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
- get_filename_component(_file_to_path ${_file_to} PATH)
+ get_filename_component(_file_to_path ${_file_to} PATH)
- add_custom_command(
- OUTPUT ${_file_to}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
- COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to}
- DEPENDS ${_file_from} datatoc)
+ add_custom_command(
+ OUTPUT ${_file_to}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
+ COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to}
+ DEPENDS ${_file_from} datatoc)
- set_source_files_properties(${_file_to} PROPERTIES GENERATED TRUE)
+ set_source_files_properties(${_file_to} PROPERTIES GENERATED TRUE)
endfunction()
# macro for converting pixmap directory to a png and then a c file
function(data_to_c_simple_icons
- path_from icon_prefix icon_names
- list_to_add
- )
-
- # Conversion steps
- # path_from -> _file_from -> _file_to
- # foo/*.dat -> foo.png -> foo.png.c
-
- get_filename_component(_path_from_abs ${path_from} ABSOLUTE)
- # remove ../'s
- get_filename_component(_file_from ${CMAKE_CURRENT_BINARY_DIR}/${path_from}.png REALPATH)
- get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${path_from}.png.c REALPATH)
-
- list(APPEND ${list_to_add} ${_file_to})
- set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
-
- get_filename_component(_file_to_path ${_file_to} PATH)
-
- # Construct a list of absolute paths from input
- set(_icon_files)
- foreach(_var ${icon_names})
- list(APPEND _icon_files "${_path_from_abs}/${icon_prefix}${_var}.dat")
- endforeach()
-
- add_custom_command(
- OUTPUT ${_file_from} ${_file_to}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
- #COMMAND python3 ${CMAKE_SOURCE_DIR}/source/blender/datatoc/datatoc_icon.py ${_path_from_abs} ${_file_from}
- COMMAND "$<TARGET_FILE:datatoc_icon>" ${_path_from_abs} ${_file_from}
- COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to}
- DEPENDS
- ${_icon_files}
- datatoc_icon
- datatoc
- # could be an arg but for now we only create icons depending on UI_icons.h
- ${CMAKE_SOURCE_DIR}/source/blender/editors/include/UI_icons.h
- )
-
- set_source_files_properties(${_file_from} ${_file_to} PROPERTIES GENERATED TRUE)
+ path_from icon_prefix icon_names
+ list_to_add
+ )
+
+ # Conversion steps
+ # path_from -> _file_from -> _file_to
+ # foo/*.dat -> foo.png -> foo.png.c
+
+ get_filename_component(_path_from_abs ${path_from} ABSOLUTE)
+ # remove ../'s
+ get_filename_component(_file_from ${CMAKE_CURRENT_BINARY_DIR}/${path_from}.png REALPATH)
+ get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${path_from}.png.c REALPATH)
+
+ list(APPEND ${list_to_add} ${_file_to})
+ set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
+
+ get_filename_component(_file_to_path ${_file_to} PATH)
+
+ # Construct a list of absolute paths from input
+ set(_icon_files)
+ foreach(_var ${icon_names})
+ list(APPEND _icon_files "${_path_from_abs}/${icon_prefix}${_var}.dat")
+ endforeach()
+
+ add_custom_command(
+ OUTPUT ${_file_from} ${_file_to}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
+ #COMMAND python3 ${CMAKE_SOURCE_DIR}/source/blender/datatoc/datatoc_icon.py ${_path_from_abs} ${_file_from}
+ COMMAND "$<TARGET_FILE:datatoc_icon>" ${_path_from_abs} ${_file_from}
+ COMMAND "$<TARGET_FILE:datatoc>" ${_file_from} ${_file_to}
+ DEPENDS
+ ${_icon_files}
+ datatoc_icon
+ datatoc
+ # could be an arg but for now we only create icons depending on UI_icons.h
+ ${CMAKE_SOURCE_DIR}/source/blender/editors/include/UI_icons.h
+ )
+
+ set_source_files_properties(${_file_from} ${_file_to} PROPERTIES GENERATED TRUE)
endfunction()
# XXX Not used for now...
function(svg_to_png
- file_from
- file_to
- dpi
- list_to_add
- )
-
- # remove ../'s
- get_filename_component(_file_from ${CMAKE_CURRENT_SOURCE_DIR}/${file_from} REALPATH)
- get_filename_component(_file_to ${CMAKE_CURRENT_SOURCE_DIR}/${file_to} REALPATH)
-
- list(APPEND ${list_to_add} ${_file_to})
- set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
-
- find_program(INKSCAPE_EXE inkscape)
- mark_as_advanced(INKSCAPE_EXE)
-
- if(INKSCAPE_EXE)
- if(APPLE)
- # in OS X app bundle, the binary is a shim that doesn't take any
- # command line arguments, replace it with the actual binary
- string(REPLACE "MacOS/Inkscape" "Resources/bin/inkscape" INKSCAPE_REAL_EXE ${INKSCAPE_EXE})
- if(EXISTS "${INKSCAPE_REAL_EXE}")
- set(INKSCAPE_EXE ${INKSCAPE_REAL_EXE})
- endif()
- endif()
-
- add_custom_command(
- OUTPUT ${_file_to}
- COMMAND ${INKSCAPE_EXE} ${_file_from} --export-dpi=${dpi} --without-gui --export-png=${_file_to}
- DEPENDS ${_file_from} ${INKSCAPE_EXE}
- )
- else()
- message(WARNING "Inkscape not found, could not re-generate ${_file_to} from ${_file_from}!")
- endif()
+ file_from
+ file_to
+ dpi
+ list_to_add
+ )
+
+ # remove ../'s
+ get_filename_component(_file_from ${CMAKE_CURRENT_SOURCE_DIR}/${file_from} REALPATH)
+ get_filename_component(_file_to ${CMAKE_CURRENT_SOURCE_DIR}/${file_to} REALPATH)
+
+ list(APPEND ${list_to_add} ${_file_to})
+ set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
+
+ find_program(INKSCAPE_EXE inkscape)
+ mark_as_advanced(INKSCAPE_EXE)
+
+ if(INKSCAPE_EXE)
+ if(APPLE)
+ # in OS X app bundle, the binary is a shim that doesn't take any
+ # command line arguments, replace it with the actual binary
+ string(REPLACE "MacOS/Inkscape" "Resources/bin/inkscape" INKSCAPE_REAL_EXE ${INKSCAPE_EXE})
+ if(EXISTS "${INKSCAPE_REAL_EXE}")
+ set(INKSCAPE_EXE ${INKSCAPE_REAL_EXE})
+ endif()
+ endif()
+
+ add_custom_command(
+ OUTPUT ${_file_to}
+ COMMAND ${INKSCAPE_EXE} ${_file_from} --export-dpi=${dpi} --without-gui --export-png=${_file_to}
+ DEPENDS ${_file_from} ${INKSCAPE_EXE}
+ )
+ else()
+ message(WARNING "Inkscape not found, could not re-generate ${_file_to} from ${_file_from}!")
+ endif()
endfunction()
function(msgfmt_simple
- file_from
- list_to_add
- )
+ file_from
+ list_to_add
+ )
- # remove ../'s
- get_filename_component(_file_from_we ${file_from} NAME_WE)
+ # remove ../'s
+ get_filename_component(_file_from_we ${file_from} NAME_WE)
- get_filename_component(_file_from ${file_from} REALPATH)
- get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${_file_from_we}.mo REALPATH)
+ get_filename_component(_file_from ${file_from} REALPATH)
+ get_filename_component(_file_to ${CMAKE_CURRENT_BINARY_DIR}/${_file_from_we}.mo REALPATH)
- list(APPEND ${list_to_add} ${_file_to})
- set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
+ list(APPEND ${list_to_add} ${_file_to})
+ set(${list_to_add} ${${list_to_add}} PARENT_SCOPE)
- get_filename_component(_file_to_path ${_file_to} PATH)
+ get_filename_component(_file_to_path ${_file_to} PATH)
- add_custom_command(
- OUTPUT ${_file_to}
- COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
- COMMAND "$<TARGET_FILE:msgfmt>" ${_file_from} ${_file_to}
- DEPENDS msgfmt ${_file_from})
+ add_custom_command(
+ OUTPUT ${_file_to}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${_file_to_path}
+ COMMAND "$<TARGET_FILE:msgfmt>" ${_file_from} ${_file_to}
+ DEPENDS msgfmt ${_file_from})
- set_source_files_properties(${_file_to} PROPERTIES GENERATED TRUE)
+ set_source_files_properties(${_file_to} PROPERTIES GENERATED TRUE)
endfunction()
function(find_python_package
- package
- )
-
- string(TOUPPER ${package} _upper_package)
-
- # set but invalid
- if((NOT ${PYTHON_${_upper_package}_PATH} STREQUAL "") AND
- (NOT ${PYTHON_${_upper_package}_PATH} MATCHES NOTFOUND))
-# if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}/${package}")
-# message(WARNING "PYTHON_${_upper_package}_PATH is invalid, ${package} not found in '${PYTHON_${_upper_package}_PATH}' "
-# "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing python")
-# set(WITH_PYTHON_INSTALL${_upper_package} OFF)
-# endif()
- # not set, so initialize
- else()
- string(REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}")
- list(GET _PY_VER_SPLIT 0 _PY_VER_MAJOR)
-
- # re-cache
- unset(PYTHON_${_upper_package}_PATH CACHE)
- find_path(PYTHON_${_upper_package}_PATH
- NAMES
- ${package}
- HINTS
- "${PYTHON_LIBPATH}/"
- "${PYTHON_LIBPATH}/python${PYTHON_VERSION}/"
- "${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/"
- PATH_SUFFIXES
- site-packages
- dist-packages
- vendor-packages
- NO_DEFAULT_PATH
- )
-
- if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}")
- message(WARNING
- "Python package '${package}' path could not be found in:\n"
- "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${package}', "
- "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${package}', "
- "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${package}', "
- "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${package}', "
- "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${package}', "
- "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${package}', "
- "\n"
- "The 'WITH_PYTHON_INSTALL_${_upper_package}' option will be ignored when installing Python.\n"
- "The build will be usable, only add-ons that depend on this package won't be functional."
- )
- set(WITH_PYTHON_INSTALL_${_upper_package} OFF PARENT_SCOPE)
- else()
- message(STATUS "${package} found at '${PYTHON_${_upper_package}_PATH}'")
- endif()
- endif()
+ package
+ )
+
+ string(TOUPPER ${package} _upper_package)
+
+ # set but invalid
+ if((NOT ${PYTHON_${_upper_package}_PATH} STREQUAL "") AND
+ (NOT ${PYTHON_${_upper_package}_PATH} MATCHES NOTFOUND))
+# if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}/${package}")
+# message(WARNING "PYTHON_${_upper_package}_PATH is invalid, ${package} not found in '${PYTHON_${_upper_package}_PATH}' "
+# "WITH_PYTHON_INSTALL_${_upper_package} option will be ignored when installing python")
+# set(WITH_PYTHON_INSTALL${_upper_package} OFF)
+# endif()
+ # not set, so initialize
+ else()
+ string(REPLACE "." ";" _PY_VER_SPLIT "${PYTHON_VERSION}")
+ list(GET _PY_VER_SPLIT 0 _PY_VER_MAJOR)
+
+ # re-cache
+ unset(PYTHON_${_upper_package}_PATH CACHE)
+ find_path(PYTHON_${_upper_package}_PATH
+ NAMES
+ ${package}
+ HINTS
+ "${PYTHON_LIBPATH}/"
+ "${PYTHON_LIBPATH}/python${PYTHON_VERSION}/"
+ "${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/"
+ PATH_SUFFIXES
+ site-packages
+ dist-packages
+ vendor-packages
+ NO_DEFAULT_PATH
+ )
+
+ if(NOT EXISTS "${PYTHON_${_upper_package}_PATH}")
+ message(WARNING
+ "Python package '${package}' path could not be found in:\n"
+ "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/site-packages/${package}', "
+ "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/site-packages/${package}', "
+ "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/dist-packages/${package}', "
+ "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/dist-packages/${package}', "
+ "'${PYTHON_LIBPATH}/python${PYTHON_VERSION}/vendor-packages/${package}', "
+ "'${PYTHON_LIBPATH}/python${_PY_VER_MAJOR}/vendor-packages/${package}', "
+ "\n"
+ "The 'WITH_PYTHON_INSTALL_${_upper_package}' option will be ignored when installing Python.\n"
+ "The build will be usable, only add-ons that depend on this package won't be functional."
+ )
+ set(WITH_PYTHON_INSTALL_${_upper_package} OFF PARENT_SCOPE)
+ else()
+ message(STATUS "${package} found at '${PYTHON_${_upper_package}_PATH}'")
+ endif()
+ endif()
endfunction()
# like Python's 'print(dir())'
function(print_all_vars)
- get_cmake_property(_vars VARIABLES)
- foreach(_var ${_vars})
- message("${_var}=${${_var}}")
- endforeach()
+ get_cmake_property(_vars VARIABLES)
+ foreach(_var ${_vars})
+ message("${_var}=${${_var}}")
+ endforeach()
endfunction()
macro(openmp_delayload
- projectname
- )
- if(MSVC)
- if(WITH_OPENMP)
- if(MSVC_VERSION EQUAL 1800)
- set(OPENMP_DLL_NAME "vcomp120")
- else()
- set(OPENMP_DLL_NAME "vcomp140")
- endif()
- SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELEASE "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib")
- SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_DEBUG "/DELAYLOAD:${OPENMP_DLL_NAME}d.dll delayimp.lib")
- SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib")
- SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_MINSIZEREL "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib")
- endif()
- endif()
+ projectname
+ )
+ if(MSVC)
+ if(WITH_OPENMP)
+ if(MSVC_VERSION EQUAL 1800)
+ set(OPENMP_DLL_NAME "vcomp120")
+ else()
+ set(OPENMP_DLL_NAME "vcomp140")
+ endif()
+ SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELEASE "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib")
+ SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_DEBUG "/DELAYLOAD:${OPENMP_DLL_NAME}d.dll delayimp.lib")
+ SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_RELWITHDEBINFO "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib")
+ SET_TARGET_PROPERTIES(${projectname} PROPERTIES LINK_FLAGS_MINSIZEREL "/DELAYLOAD:${OPENMP_DLL_NAME}.dll delayimp.lib")
+ endif()
+ endif()
endmacro()
macro(WINDOWS_SIGN_TARGET target)
- if(WITH_WINDOWS_CODESIGN)
- if(!SIGNTOOL_EXE)
- error("Codesigning is enabled, but signtool is not found")
- else()
- if(WINDOWS_CODESIGN_PFX_PASSWORD)
- set(CODESIGNPASSWORD /p ${WINDOWS_CODESIGN_PFX_PASSWORD})
- else()
- if($ENV{PFXPASSWORD})
- set(CODESIGNPASSWORD /p $ENV{PFXPASSWORD})
- else()
- message(FATAL_ERROR "WITH_WINDOWS_CODESIGN is on but WINDOWS_CODESIGN_PFX_PASSWORD not set, and environment variable PFXPASSWORD not found, unable to sign code.")
- endif()
- endif()
- add_custom_command(TARGET ${target}
- POST_BUILD
- COMMAND ${SIGNTOOL_EXE} sign /f ${WINDOWS_CODESIGN_PFX} ${CODESIGNPASSWORD} $<TARGET_FILE:${target}>
- VERBATIM
- )
- endif()
- endif()
+ if(WITH_WINDOWS_CODESIGN)
+ if(!SIGNTOOL_EXE)
+ error("Codesigning is enabled, but signtool is not found")
+ else()
+ if(WINDOWS_CODESIGN_PFX_PASSWORD)
+ set(CODESIGNPASSWORD /p ${WINDOWS_CODESIGN_PFX_PASSWORD})
+ else()
+ if($ENV{PFXPASSWORD})
+ set(CODESIGNPASSWORD /p $ENV{PFXPASSWORD})
+ else()
+ message(FATAL_ERROR "WITH_WINDOWS_CODESIGN is on but WINDOWS_CODESIGN_PFX_PASSWORD not set, and environment variable PFXPASSWORD not found, unable to sign code.")
+ endif()
+ endif()
+ add_custom_command(TARGET ${target}
+ POST_BUILD
+ COMMAND ${SIGNTOOL_EXE} sign /f ${WINDOWS_CODESIGN_PFX} ${CODESIGNPASSWORD} $<TARGET_FILE:${target}>
+ VERBATIM
+ )
+ endif()
+ endif()
endmacro()
diff --git a/build_files/cmake/packaging.cmake b/build_files/cmake/packaging.cmake
index c086e8778c5..06a97fc9abb 100644
--- a/build_files/cmake/packaging.cmake
+++ b/build_files/cmake/packaging.cmake
@@ -23,15 +23,15 @@ SET(CPACK_PACKAGE_VERSION_PATCH "${PATCH_VERSION}")
# Get the build revision, note that this can get out-of-sync, so for packaging run cmake first.
set(MY_WC_HASH "unknown")
if(EXISTS ${CMAKE_SOURCE_DIR}/.git/)
- find_package(Git)
- if(GIT_FOUND)
- # message(STATUS "Found Git: ${GIT_EXECUTABLE}")
- execute_process(COMMAND git rev-parse --short=12 HEAD
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- OUTPUT_VARIABLE MY_WC_HASH
- OUTPUT_STRIP_TRAILING_WHITESPACE
- ERROR_QUIET)
- endif()
+ find_package(Git)
+ if(GIT_FOUND)
+ # message(STATUS "Found Git: ${GIT_EXECUTABLE}")
+ execute_process(COMMAND git rev-parse --short=12 HEAD
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE MY_WC_HASH
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ERROR_QUIET)
+ endif()
endif()
set(BUILD_REV ${MY_WC_HASH})
unset(MY_WC_HASH)
@@ -41,61 +41,61 @@ unset(MY_WC_HASH)
execute_process(COMMAND date "+%Y%m%d" OUTPUT_VARIABLE CPACK_DATE OUTPUT_STRIP_TRAILING_WHITESPACE)
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
if(MSVC)
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
- set(PACKAGE_ARCH windows64)
- else()
- set(PACKAGE_ARCH windows32)
- endif()
+ if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+ set(PACKAGE_ARCH windows64)
+ else()
+ set(PACKAGE_ARCH windows32)
+ endif()
else(MSVC)
- set(PACKAGE_ARCH ${CMAKE_SYSTEM_PROCESSOR})
+ set(PACKAGE_ARCH ${CMAKE_SYSTEM_PROCESSOR})
endif()
if(CPACK_OVERRIDE_PACKAGENAME)
- set(CPACK_PACKAGE_FILE_NAME ${CPACK_OVERRIDE_PACKAGENAME}-${PACKAGE_ARCH})
+ set(CPACK_PACKAGE_FILE_NAME ${CPACK_OVERRIDE_PACKAGENAME}-${PACKAGE_ARCH})
else()
- set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME_LOWER}-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-git${CPACK_DATE}.${BUILD_REV}-${PACKAGE_ARCH})
+ set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME_LOWER}-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-git${CPACK_DATE}.${BUILD_REV}-${PACKAGE_ARCH})
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
- # RPM packages
- include(build_files/cmake/RpmBuild.cmake)
- if(RPMBUILD_FOUND)
- set(CPACK_GENERATOR "RPM")
- set(CPACK_RPM_PACKAGE_RELEASE "git${CPACK_DATE}.${BUILD_REV}")
- set(CPACK_SET_DESTDIR "true")
- set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
- set(CPACK_PACKAGE_RELOCATABLE "false")
- set(CPACK_RPM_PACKAGE_LICENSE "GPLv2+ and Apache 2.0")
- set(CPACK_RPM_PACKAGE_GROUP "Amusements/Multimedia")
- set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_SOURCE_DIR}/build_files/package_spec/rpm/blender.spec.in")
- endif()
+ # RPM packages
+ include(build_files/cmake/RpmBuild.cmake)
+ if(RPMBUILD_FOUND)
+ set(CPACK_GENERATOR "RPM")
+ set(CPACK_RPM_PACKAGE_RELEASE "git${CPACK_DATE}.${BUILD_REV}")
+ set(CPACK_SET_DESTDIR "true")
+ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
+ set(CPACK_PACKAGE_RELOCATABLE "false")
+ set(CPACK_RPM_PACKAGE_LICENSE "GPLv2+ and Apache 2.0")
+ set(CPACK_RPM_PACKAGE_GROUP "Amusements/Multimedia")
+ set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_SOURCE_DIR}/build_files/package_spec/rpm/blender.spec.in")
+ endif()
endif()
# Mac Bundle
if(APPLE)
- set(CPACK_GENERATOR "DragNDrop")
+ set(CPACK_GENERATOR "DragNDrop")
- # Libraries are bundled directly
- set(CPACK_COMPONENT_LIBRARIES_HIDDEN TRUE)
+ # Libraries are bundled directly
+ set(CPACK_COMPONENT_LIBRARIES_HIDDEN TRUE)
endif()
if(WIN32)
- set(CPACK_PACKAGE_INSTALL_DIRECTORY "Blender Foundation/Blender")
- set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Blender Foundation/Blender")
+ set(CPACK_PACKAGE_INSTALL_DIRECTORY "Blender Foundation/Blender")
+ set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Blender Foundation/Blender")
- set(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico)
- set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
+ set(CPACK_NSIS_MUI_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico)
+ set(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
- set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/release/text/GPL3-license.txt)
- set(CPACK_WIX_PRODUCT_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico)
- set(CPACK_WIX_UPGRADE_GUID "B767E4FD-7DE7-4094-B051-3AE62E13A17A")
+ set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/release/text/GPL3-license.txt)
+ set(CPACK_WIX_PRODUCT_ICON ${CMAKE_SOURCE_DIR}/release/windows/icons/winblender.ico)
+ set(CPACK_WIX_UPGRADE_GUID "B767E4FD-7DE7-4094-B051-3AE62E13A17A")
- set(CPACK_WIX_TEMPLATE ${LIBDIR}/package/installer_wix/WIX.template)
- set(CPACK_WIX_UI_BANNER ${LIBDIR}/package/installer_wix/WIX_UI_BANNER.bmp)
- set(CPACK_WIX_UI_DIALOG ${LIBDIR}/package/installer_wix/WIX_UI_DIALOG.bmp)
+ set(CPACK_WIX_TEMPLATE ${LIBDIR}/package/installer_wix/WIX.template)
+ set(CPACK_WIX_UI_BANNER ${LIBDIR}/package/installer_wix/WIX_UI_BANNER.bmp)
+ set(CPACK_WIX_UI_DIALOG ${LIBDIR}/package/installer_wix/WIX_UI_DIALOG.bmp)
- #force lzma instead of deflate
- set(CPACK_WIX_LIGHT_EXTRA_FLAGS -dcl:high)
+ #force lzma instead of deflate
+ set(CPACK_WIX_LIGHT_EXTRA_FLAGS -dcl:high)
endif()
set(CPACK_PACKAGE_EXECUTABLES "blender" "blender")
@@ -106,30 +106,30 @@ include(CPack)
# Target for build_archive.py script, to automatically pass along
# version, revision, platform, build directory
macro(add_package_archive packagename extension)
- set(build_archive python ${CMAKE_SOURCE_DIR}/build_files/package_spec/build_archive.py)
- set(package_output ${CMAKE_BINARY_DIR}/release/${packagename}.${extension})
+ set(build_archive python ${CMAKE_SOURCE_DIR}/build_files/package_spec/build_archive.py)
+ set(package_output ${CMAKE_BINARY_DIR}/release/${packagename}.${extension})
- add_custom_target(package_archive DEPENDS ${package_output})
+ add_custom_target(package_archive DEPENDS ${package_output})
- add_custom_command(
- OUTPUT ${package_output}
- COMMAND ${build_archive} ${packagename} ${extension} bin release
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
- unset(build_archive)
- unset(package_output)
+ add_custom_command(
+ OUTPUT ${package_output}
+ COMMAND ${build_archive} ${packagename} ${extension} bin release
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+ unset(build_archive)
+ unset(package_output)
endmacro()
if(APPLE)
- add_package_archive(
- "${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-OSX-${CMAKE_OSX_ARCHITECTURES}"
- "zip")
+ add_package_archive(
+ "${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-OSX-${CMAKE_OSX_ARCHITECTURES}"
+ "zip")
elseif(UNIX)
- # platform name could be tweaked, to include glibc, and ensure processor is correct (i386 vs i686)
- string(TOLOWER ${CMAKE_SYSTEM_NAME} PACKAGE_SYSTEM_NAME)
+ # platform name could be tweaked, to include glibc, and ensure processor is correct (i386 vs i686)
+ string(TOLOWER ${CMAKE_SYSTEM_NAME} PACKAGE_SYSTEM_NAME)
- add_package_archive(
- "${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-${PACKAGE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}"
- "tar.bz2")
+ add_package_archive(
+ "${PROJECT_NAME}-${BLENDER_VERSION}-${BUILD_REV}-${PACKAGE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}"
+ "tar.bz2")
endif()
unset(MAJOR_VERSION)
diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake
index 4047a8f134d..3fd07f5b9c5 100644
--- a/build_files/cmake/platform/platform_apple.cmake
+++ b/build_files/cmake/platform/platform_apple.cmake
@@ -27,102 +27,102 @@ macro(find_package_wrapper)
endmacro()
if(NOT DEFINED LIBDIR)
- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin)
- # Prefer lib directory paths
- file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
- set(CMAKE_PREFIX_PATH ${LIB_SUBDIRS})
+ set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/darwin)
+ # Prefer lib directory paths
+ file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
+ set(CMAKE_PREFIX_PATH ${LIB_SUBDIRS})
else()
- message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
+ message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
endif()
if(NOT EXISTS "${LIBDIR}/")
- message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
+ message(FATAL_ERROR "Mac OSX requires pre-compiled libs at: '${LIBDIR}'")
endif()
if(WITH_OPENAL)
- find_package(OpenAL)
- if(OPENAL_FOUND)
- set(WITH_OPENAL ON)
- else()
- set(WITH_OPENAL OFF)
- endif()
+ find_package(OpenAL)
+ if(OPENAL_FOUND)
+ set(WITH_OPENAL ON)
+ else()
+ set(WITH_OPENAL OFF)
+ endif()
endif()
if(WITH_ALEMBIC)
- set(ALEMBIC ${LIBDIR}/alembic)
- set(ALEMBIC_INCLUDE_DIR ${ALEMBIC}/include)
- set(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR})
- set(ALEMBIC_LIBPATH ${ALEMBIC}/lib)
- set(ALEMBIC_LIBRARIES Alembic)
- set(ALEMBIC_FOUND ON)
+ set(ALEMBIC ${LIBDIR}/alembic)
+ set(ALEMBIC_INCLUDE_DIR ${ALEMBIC}/include)
+ set(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR})
+ set(ALEMBIC_LIBPATH ${ALEMBIC}/lib)
+ set(ALEMBIC_LIBRARIES Alembic)
+ set(ALEMBIC_FOUND ON)
endif()
if(WITH_OPENSUBDIV)
- set(OPENSUBDIV ${LIBDIR}/opensubdiv)
- set(OPENSUBDIV_LIBPATH ${OPENSUBDIV}/lib)
- find_library(OSD_LIB_CPU NAMES osdCPU PATHS ${OPENSUBDIV_LIBPATH})
- find_library(OSD_LIB_GPU NAMES osdGPU PATHS ${OPENSUBDIV_LIBPATH})
- set(OPENSUBDIV_INCLUDE_DIR ${OPENSUBDIV}/include)
- set(OPENSUBDIV_INCLUDE_DIRS ${OPENSUBDIV_INCLUDE_DIR})
- list(APPEND OPENSUBDIV_LIBRARIES ${OSD_LIB_CPU} ${OSD_LIB_GPU})
+ set(OPENSUBDIV ${LIBDIR}/opensubdiv)
+ set(OPENSUBDIV_LIBPATH ${OPENSUBDIV}/lib)
+ find_library(OSD_LIB_CPU NAMES osdCPU PATHS ${OPENSUBDIV_LIBPATH})
+ find_library(OSD_LIB_GPU NAMES osdGPU PATHS ${OPENSUBDIV_LIBPATH})
+ set(OPENSUBDIV_INCLUDE_DIR ${OPENSUBDIV}/include)
+ set(OPENSUBDIV_INCLUDE_DIRS ${OPENSUBDIV_INCLUDE_DIR})
+ list(APPEND OPENSUBDIV_LIBRARIES ${OSD_LIB_CPU} ${OSD_LIB_GPU})
endif()
if(WITH_JACK)
- find_library(JACK_FRAMEWORK
- NAMES jackmp
- )
- set(JACK_INCLUDE_DIRS ${JACK_FRAMEWORK}/headers)
- if(NOT JACK_FRAMEWORK)
- set(WITH_JACK OFF)
- endif()
+ find_library(JACK_FRAMEWORK
+ NAMES jackmp
+ )
+ set(JACK_INCLUDE_DIRS ${JACK_FRAMEWORK}/headers)
+ if(NOT JACK_FRAMEWORK)
+ set(WITH_JACK OFF)
+ endif()
endif()
if(WITH_CODEC_SNDFILE)
- set(LIBSNDFILE ${LIBDIR}/sndfile)
- set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
- set(LIBSNDFILE_LIBRARIES sndfile FLAC ogg vorbis vorbisenc)
- set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib ${LIBDIR}/ffmpeg/lib) # TODO, deprecate
+ set(LIBSNDFILE ${LIBDIR}/sndfile)
+ set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
+ set(LIBSNDFILE_LIBRARIES sndfile FLAC ogg vorbis vorbisenc)
+ set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib ${LIBDIR}/ffmpeg/lib) # TODO, deprecate
endif()
if(WITH_PYTHON)
- # we use precompiled libraries for py 3.7 and up by default
- set(PYTHON_VERSION 3.7)
- if(NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK)
- # normally cached but not since we include them with blender
- set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
- set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
- set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a)
- set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
- # set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
- else()
- # module must be compiled against Python framework
- set(_py_framework "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}")
-
- set(PYTHON_INCLUDE_DIR "${_py_framework}/include/python${PYTHON_VERSION}m")
- set(PYTHON_EXECUTABLE "${_py_framework}/bin/python${PYTHON_VERSION}m")
- set(PYTHON_LIBPATH "${_py_framework}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}m")
- #set(PYTHON_LIBRARY python${PYTHON_VERSION})
- #set(PYTHON_LINKFLAGS "-u _PyMac_Error -framework Python") # won't build with this enabled
-
- unset(_py_framework)
- endif()
-
- # uncached vars
- set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
- set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
-
- # needed for Audaspace, numpy is installed into python site-packages
- set(PYTHON_NUMPY_INCLUDE_DIRS "${PYTHON_LIBPATH}/site-packages/numpy/core/include")
-
- if(NOT EXISTS "${PYTHON_EXECUTABLE}")
- message(FATAL_ERROR "Python executable missing: ${PYTHON_EXECUTABLE}")
- endif()
+ # we use precompiled libraries for py 3.7 and up by default
+ set(PYTHON_VERSION 3.7)
+ if(NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK)
+ # normally cached but not since we include them with blender
+ set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m")
+ set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m")
+ set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a)
+ set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}")
+ # set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled
+ else()
+ # module must be compiled against Python framework
+ set(_py_framework "/Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}")
+
+ set(PYTHON_INCLUDE_DIR "${_py_framework}/include/python${PYTHON_VERSION}m")
+ set(PYTHON_EXECUTABLE "${_py_framework}/bin/python${PYTHON_VERSION}m")
+ set(PYTHON_LIBPATH "${_py_framework}/lib/python${PYTHON_VERSION}/config-${PYTHON_VERSION}m")
+ #set(PYTHON_LIBRARY python${PYTHON_VERSION})
+ #set(PYTHON_LINKFLAGS "-u _PyMac_Error -framework Python") # won't build with this enabled
+
+ unset(_py_framework)
+ endif()
+
+ # uncached vars
+ set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
+ set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
+
+ # needed for Audaspace, numpy is installed into python site-packages
+ set(PYTHON_NUMPY_INCLUDE_DIRS "${PYTHON_LIBPATH}/site-packages/numpy/core/include")
+
+ if(NOT EXISTS "${PYTHON_EXECUTABLE}")
+ message(FATAL_ERROR "Python executable missing: ${PYTHON_EXECUTABLE}")
+ endif()
endif()
if(WITH_FFTW3)
- set(FFTW3 ${LIBDIR}/fftw3)
- set(FFTW3_INCLUDE_DIRS ${FFTW3}/include)
- set(FFTW3_LIBRARIES fftw3)
- set(FFTW3_LIBPATH ${FFTW3}/lib)
+ set(FFTW3 ${LIBDIR}/fftw3)
+ set(FFTW3_INCLUDE_DIRS ${FFTW3}/include)
+ set(FFTW3_LIBRARIES fftw3)
+ set(FFTW3_LIBPATH ${FFTW3}/lib)
endif()
set(PNG_LIBRARIES png)
@@ -138,101 +138,101 @@ set(FREETYPE_LIBPATH ${FREETYPE}/lib)
set(FREETYPE_LIBRARY freetype)
if(WITH_IMAGE_OPENEXR)
- set(OPENEXR ${LIBDIR}/openexr)
- set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
- set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR)
- set(OPENEXR_LIBRARIES
- Iex
- Half
- IlmImf
- Imath
- IlmThread)
- set(OPENEXR_LIBPATH ${OPENEXR}/lib)
+ set(OPENEXR ${LIBDIR}/openexr)
+ set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
+ set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR)
+ set(OPENEXR_LIBRARIES
+ Iex
+ Half
+ IlmImf
+ Imath
+ IlmThread)
+ set(OPENEXR_LIBPATH ${OPENEXR}/lib)
endif()
if(WITH_CODEC_FFMPEG)
- set(FFMPEG ${LIBDIR}/ffmpeg)
- set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
- set(FFMPEG_LIBRARIES
- avcodec avdevice avformat avutil
- mp3lame swscale x264 xvidcore
- theora theoradec theoraenc
- vorbis vorbisenc vorbisfile ogg
- vpx swresample)
- set(FFMPEG_LIBPATH ${FFMPEG}/lib)
+ set(FFMPEG ${LIBDIR}/ffmpeg)
+ set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
+ set(FFMPEG_LIBRARIES
+ avcodec avdevice avformat avutil
+ mp3lame swscale x264 xvidcore
+ theora theoradec theoraenc
+ vorbis vorbisenc vorbisfile ogg
+ vpx swresample)
+ set(FFMPEG_LIBPATH ${FFMPEG}/lib)
endif()
if(WITH_IMAGE_OPENJPEG OR WITH_CODEC_FFMPEG)
- # use openjpeg from libdir that is linked into ffmpeg
- set(OPENJPEG ${LIBDIR}/openjpeg)
- set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include)
- set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/libopenjp2.a)
+ # use openjpeg from libdir that is linked into ffmpeg
+ set(OPENJPEG ${LIBDIR}/openjpeg)
+ set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include)
+ set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/libopenjp2.a)
endif()
find_library(SYSTEMSTUBS_LIBRARY
- NAMES
- SystemStubs
- PATHS
+ NAMES
+ SystemStubs
+ PATHS
)
mark_as_advanced(SYSTEMSTUBS_LIBRARY)
if(SYSTEMSTUBS_LIBRARY)
- list(APPEND PLATFORM_LINKLIBS SystemStubs)
+ list(APPEND PLATFORM_LINKLIBS SystemStubs)
endif()
set(PLATFORM_CFLAGS "-pipe -funsigned-char")
set(PLATFORM_LINKFLAGS
- "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio"
+ "-fexceptions -framework CoreServices -framework Foundation -framework IOKit -framework AppKit -framework Cocoa -framework Carbon -framework AudioUnit -framework AudioToolbox -framework CoreAudio"
)
list(APPEND PLATFORM_LINKLIBS c++)
if(WITH_JACK)
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -F/Library/Frameworks -weak_framework jackmp")
+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -F/Library/Frameworks -weak_framework jackmp")
endif()
if(WITH_PYTHON_MODULE OR WITH_PYTHON_FRAMEWORK)
- # force cmake to link right framework
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python")
+ # force cmake to link right framework
+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /Library/Frameworks/Python.framework/Versions/${PYTHON_VERSION}/Python")
endif()
if(WITH_OPENCOLLADA)
- set(OPENCOLLADA ${LIBDIR}/opencollada)
-
- set(OPENCOLLADA_INCLUDE_DIRS
- ${LIBDIR}/opencollada/include/COLLADAStreamWriter
- ${LIBDIR}/opencollada/include/COLLADABaseUtils
- ${LIBDIR}/opencollada/include/COLLADAFramework
- ${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader
- ${LIBDIR}/opencollada/include/GeneratedSaxParser
- )
-
- set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
- set(OPENCOLLADA_LIBRARIES
- OpenCOLLADASaxFrameworkLoader
- -lOpenCOLLADAFramework
- -lOpenCOLLADABaseUtils
- -lOpenCOLLADAStreamWriter
- -lMathMLSolver
- -lGeneratedSaxParser
- -lbuffer -lftoa -lUTF
- ${OPENCOLLADA_LIBPATH}/libxml2.a
- )
- # PCRE is bundled with openCollada
- #set(PCRE ${LIBDIR}/pcre)
- #set(PCRE_LIBPATH ${PCRE}/lib)
- set(PCRE_LIBRARIES pcre)
- # libxml2 is used
- #set(EXPAT ${LIBDIR}/expat)
- #set(EXPAT_LIBPATH ${EXPAT}/lib)
- set(EXPAT_LIB)
+ set(OPENCOLLADA ${LIBDIR}/opencollada)
+
+ set(OPENCOLLADA_INCLUDE_DIRS
+ ${LIBDIR}/opencollada/include/COLLADAStreamWriter
+ ${LIBDIR}/opencollada/include/COLLADABaseUtils
+ ${LIBDIR}/opencollada/include/COLLADAFramework
+ ${LIBDIR}/opencollada/include/COLLADASaxFrameworkLoader
+ ${LIBDIR}/opencollada/include/GeneratedSaxParser
+ )
+
+ set(OPENCOLLADA_LIBPATH ${OPENCOLLADA}/lib)
+ set(OPENCOLLADA_LIBRARIES
+ OpenCOLLADASaxFrameworkLoader
+ -lOpenCOLLADAFramework
+ -lOpenCOLLADABaseUtils
+ -lOpenCOLLADAStreamWriter
+ -lMathMLSolver
+ -lGeneratedSaxParser
+ -lbuffer -lftoa -lUTF
+ ${OPENCOLLADA_LIBPATH}/libxml2.a
+ )
+ # PCRE is bundled with openCollada
+ #set(PCRE ${LIBDIR}/pcre)
+ #set(PCRE_LIBPATH ${PCRE}/lib)
+ set(PCRE_LIBRARIES pcre)
+ # libxml2 is used
+ #set(EXPAT ${LIBDIR}/expat)
+ #set(EXPAT_LIBPATH ${EXPAT}/lib)
+ set(EXPAT_LIB)
endif()
if(WITH_SDL)
- set(SDL ${LIBDIR}/sdl)
- set(SDL_INCLUDE_DIR ${SDL}/include)
- set(SDL_LIBRARY SDL2)
- set(SDL_LIBPATH ${SDL}/lib)
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework ForceFeedback")
+ set(SDL ${LIBDIR}/sdl)
+ set(SDL_INCLUDE_DIR ${SDL}/include)
+ set(SDL_LIBRARY SDL2)
+ set(SDL_LIBPATH ${SDL}/lib)
+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -framework ForceFeedback")
endif()
set(PNG "${LIBDIR}/png")
@@ -244,166 +244,166 @@ set(JPEG_INCLUDE_DIR "${JPEG}/include")
set(JPEG_LIBPATH ${JPEG}/lib)
if(WITH_IMAGE_TIFF)
- set(TIFF ${LIBDIR}/tiff)
- set(TIFF_INCLUDE_DIR ${TIFF}/include)
- set(TIFF_LIBRARY tiff)
- set(TIFF_LIBPATH ${TIFF}/lib)
+ set(TIFF ${LIBDIR}/tiff)
+ set(TIFF_INCLUDE_DIR ${TIFF}/include)
+ set(TIFF_LIBRARY tiff)
+ set(TIFF_LIBPATH ${TIFF}/lib)
endif()
if(WITH_BOOST)
- set(BOOST ${LIBDIR}/boost)
- set(BOOST_INCLUDE_DIR ${BOOST}/include)
- set(BOOST_POSTFIX)
- set(BOOST_LIBRARIES
- boost_date_time${BOOST_POSTFIX}
- boost_filesystem${BOOST_POSTFIX}
- boost_regex${BOOST_POSTFIX}
- boost_system${BOOST_POSTFIX}
- boost_thread${BOOST_POSTFIX}
- boost_wave${BOOST_POSTFIX}
- )
- if(WITH_INTERNATIONAL)
- list(APPEND BOOST_LIBRARIES boost_locale${BOOST_POSTFIX})
- endif()
- if(WITH_CYCLES_NETWORK)
- list(APPEND BOOST_LIBRARIES boost_serialization${BOOST_POSTFIX})
- endif()
- if(WITH_OPENVDB)
- list(APPEND BOOST_LIBRARIES boost_iostreams${BOOST_POSTFIX})
- endif()
- set(BOOST_LIBPATH ${BOOST}/lib)
- set(BOOST_DEFINITIONS)
+ set(BOOST ${LIBDIR}/boost)
+ set(BOOST_INCLUDE_DIR ${BOOST}/include)
+ set(BOOST_POSTFIX)
+ set(BOOST_LIBRARIES
+ boost_date_time${BOOST_POSTFIX}
+ boost_filesystem${BOOST_POSTFIX}
+ boost_regex${BOOST_POSTFIX}
+ boost_system${BOOST_POSTFIX}
+ boost_thread${BOOST_POSTFIX}
+ boost_wave${BOOST_POSTFIX}
+ )
+ if(WITH_INTERNATIONAL)
+ list(APPEND BOOST_LIBRARIES boost_locale${BOOST_POSTFIX})
+ endif()
+ if(WITH_CYCLES_NETWORK)
+ list(APPEND BOOST_LIBRARIES boost_serialization${BOOST_POSTFIX})
+ endif()
+ if(WITH_OPENVDB)
+ list(APPEND BOOST_LIBRARIES boost_iostreams${BOOST_POSTFIX})
+ endif()
+ set(BOOST_LIBPATH ${BOOST}/lib)
+ set(BOOST_DEFINITIONS)
endif()
if(WITH_INTERNATIONAL OR WITH_CODEC_FFMPEG)
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -liconv") # boost_locale and ffmpeg needs it !
endif()
if(WITH_OPENIMAGEIO)
- set(OPENIMAGEIO ${LIBDIR}/openimageio)
- set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
- set(OPENIMAGEIO_LIBRARIES
- ${OPENIMAGEIO}/lib/libOpenImageIO.a
- ${PNG_LIBRARIES}
- ${JPEG_LIBRARIES}
- ${TIFF_LIBRARY}
- ${OPENEXR_LIBRARIES}
- ${OPENJPEG_LIBRARIES}
- ${ZLIB_LIBRARIES}
- )
- set(OPENIMAGEIO_LIBPATH
- ${OPENIMAGEIO}/lib
- ${JPEG_LIBPATH}
- ${PNG_LIBPATH}
- ${TIFF_LIBPATH}
- ${OPENEXR_LIBPATH}
- ${ZLIB_LIBPATH}
- )
- set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD")
- set(OPENIMAGEIO_IDIFF "${LIBDIR}/openimageio/bin/idiff")
+ set(OPENIMAGEIO ${LIBDIR}/openimageio)
+ set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
+ set(OPENIMAGEIO_LIBRARIES
+ ${OPENIMAGEIO}/lib/libOpenImageIO.a
+ ${PNG_LIBRARIES}
+ ${JPEG_LIBRARIES}
+ ${TIFF_LIBRARY}
+ ${OPENEXR_LIBRARIES}
+ ${OPENJPEG_LIBRARIES}
+ ${ZLIB_LIBRARIES}
+ )
+ set(OPENIMAGEIO_LIBPATH
+ ${OPENIMAGEIO}/lib
+ ${JPEG_LIBPATH}
+ ${PNG_LIBPATH}
+ ${TIFF_LIBPATH}
+ ${OPENEXR_LIBPATH}
+ ${ZLIB_LIBPATH}
+ )
+ set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD")
+ set(OPENIMAGEIO_IDIFF "${LIBDIR}/openimageio/bin/idiff")
endif()
if(WITH_OPENCOLORIO)
- set(OPENCOLORIO ${LIBDIR}/opencolorio)
- set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
- set(OPENCOLORIO_LIBRARIES OpenColorIO tinyxml yaml-cpp)
- set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
+ set(OPENCOLORIO ${LIBDIR}/opencolorio)
+ set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
+ set(OPENCOLORIO_LIBRARIES OpenColorIO tinyxml yaml-cpp)
+ set(OPENCOLORIO_LIBPATH ${OPENCOLORIO}/lib)
endif()
if(WITH_OPENVDB)
- set(OPENVDB ${LIBDIR}/openvdb)
- set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include)
- set(TBB_INCLUDE_DIRS ${LIBDIR}/tbb/include)
- set(TBB_LIBRARIES ${LIBDIR}/tbb/lib/libtbb.a)
- set(OPENVDB_LIBRARIES openvdb blosc ${TBB_LIBRARIES})
- set(OPENVDB_LIBPATH ${LIBDIR}/openvdb/lib)
- set(OPENVDB_DEFINITIONS)
+ set(OPENVDB ${LIBDIR}/openvdb)
+ set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include)
+ set(TBB_INCLUDE_DIRS ${LIBDIR}/tbb/include)
+ set(TBB_LIBRARIES ${LIBDIR}/tbb/lib/libtbb.a)
+ set(OPENVDB_LIBRARIES openvdb blosc ${TBB_LIBRARIES})
+ set(OPENVDB_LIBPATH ${LIBDIR}/openvdb/lib)
+ set(OPENVDB_DEFINITIONS)
endif()
if(WITH_LLVM)
- set(LLVM_ROOT_DIR ${LIBDIR}/llvm)
- set(LLVM_VERSION 3.4)
- if(EXISTS "${LLVM_ROOT_DIR}/bin/llvm-config")
- set(LLVM_CONFIG "${LLVM_ROOT_DIR}/bin/llvm-config")
- else()
- set(LLVM_CONFIG llvm-config)
- endif()
- execute_process(COMMAND ${LLVM_CONFIG} --version
- OUTPUT_VARIABLE LLVM_VERSION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${LLVM_CONFIG} --prefix
- OUTPUT_VARIABLE LLVM_ROOT_DIR
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- execute_process(COMMAND ${LLVM_CONFIG} --libdir
- OUTPUT_VARIABLE LLVM_LIBPATH
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- find_library(LLVM_LIBRARY
- NAMES LLVMAnalysis # first of a whole bunch of libs to get
- PATHS ${LLVM_LIBPATH})
-
- if(LLVM_LIBRARY AND LLVM_ROOT_DIR AND LLVM_LIBPATH)
- if(LLVM_STATIC)
- # if static LLVM libraries were requested, use llvm-config to generate
- # the list of what libraries we need, and substitute that in the right
- # way for LLVM_LIBRARY.
- execute_process(COMMAND ${LLVM_CONFIG} --libfiles
- OUTPUT_VARIABLE LLVM_LIBRARY
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REPLACE ".a /" ".a;/" LLVM_LIBRARY ${LLVM_LIBRARY})
- else()
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -lLLVM-3.4")
- endif()
- else()
- message(FATAL_ERROR "LLVM not found.")
- endif()
+ set(LLVM_ROOT_DIR ${LIBDIR}/llvm)
+ set(LLVM_VERSION 3.4)
+ if(EXISTS "${LLVM_ROOT_DIR}/bin/llvm-config")
+ set(LLVM_CONFIG "${LLVM_ROOT_DIR}/bin/llvm-config")
+ else()
+ set(LLVM_CONFIG llvm-config)
+ endif()
+ execute_process(COMMAND ${LLVM_CONFIG} --version
+ OUTPUT_VARIABLE LLVM_VERSION
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${LLVM_CONFIG} --prefix
+ OUTPUT_VARIABLE LLVM_ROOT_DIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND ${LLVM_CONFIG} --libdir
+ OUTPUT_VARIABLE LLVM_LIBPATH
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ find_library(LLVM_LIBRARY
+ NAMES LLVMAnalysis # first of a whole bunch of libs to get
+ PATHS ${LLVM_LIBPATH})
+
+ if(LLVM_LIBRARY AND LLVM_ROOT_DIR AND LLVM_LIBPATH)
+ if(LLVM_STATIC)
+ # if static LLVM libraries were requested, use llvm-config to generate
+ # the list of what libraries we need, and substitute that in the right
+ # way for LLVM_LIBRARY.
+ execute_process(COMMAND ${LLVM_CONFIG} --libfiles
+ OUTPUT_VARIABLE LLVM_LIBRARY
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
+ string(REPLACE ".a /" ".a;/" LLVM_LIBRARY ${LLVM_LIBRARY})
+ else()
+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -lLLVM-3.4")
+ endif()
+ else()
+ message(FATAL_ERROR "LLVM not found.")
+ endif()
endif()
if(WITH_CYCLES_OSL)
- set(CYCLES_OSL ${LIBDIR}/osl)
-
- find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
- find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
- find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
- # WARNING! depends on correct order of OSL libs linking
- list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
- find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
- find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
-
- if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER)
- set(OSL_FOUND TRUE)
- else()
- message(STATUS "OSL not found")
- set(WITH_CYCLES_OSL OFF)
- endif()
+ set(CYCLES_OSL ${LIBDIR}/osl)
+
+ find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
+ # WARNING! depends on correct order of OSL libs linking
+ list(APPEND OSL_LIBRARIES ${OSL_LIB_COMP} -force_load ${OSL_LIB_EXEC} ${OSL_LIB_QUERY})
+ find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
+ find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
+
+ if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER)
+ set(OSL_FOUND TRUE)
+ else()
+ message(STATUS "OSL not found")
+ set(WITH_CYCLES_OSL OFF)
+ endif()
endif()
if(WITH_CYCLES_EMBREE)
- find_package(Embree 3.2.4 REQUIRED)
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Xlinker -stack_size -Xlinker 0x100000")
+ find_package(Embree 3.2.4 REQUIRED)
+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -Xlinker -stack_size -Xlinker 0x100000")
endif()
# CMake FindOpenMP doesn't know about AppleClang before 3.12, so provide custom flags.
if(WITH_OPENMP)
- if(CMAKE_C_COMPILER_ID MATCHES "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0")
- # Use OpenMP from our precompiled libraries.
- message(STATUS "Using ${LIBDIR}/openmp for OpenMP")
- set(OPENMP_CUSTOM ON)
- set(OPENMP_FOUND ON)
- set(OpenMP_C_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'")
- set(OpenMP_CXX_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'")
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L'${LIBDIR}/openmp/lib' -lomp")
-
- # Copy libomp.dylib to allow executables like datatoc to work.
- if(CMAKE_MAKE_PROGRAM MATCHES "xcodebuild")
- set(OPENMP_DYLIB_AUX_PATH "${CMAKE_BINARY_DIR}/bin")
- else()
- set(OPENMP_DYLIB_AUX_PATH "${CMAKE_BINARY_DIR}")
- endif()
-
- execute_process(
- COMMAND mkdir -p ${OPENMP_DYLIB_AUX_PATH}/Resources/lib
- COMMAND cp -p ${LIBDIR}/openmp/lib/libomp.dylib ${OPENMP_DYLIB_AUX_PATH}/Resources/lib/libomp.dylib)
- endif()
+ if(CMAKE_C_COMPILER_ID MATCHES "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0")
+ # Use OpenMP from our precompiled libraries.
+ message(STATUS "Using ${LIBDIR}/openmp for OpenMP")
+ set(OPENMP_CUSTOM ON)
+ set(OPENMP_FOUND ON)
+ set(OpenMP_C_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'")
+ set(OpenMP_CXX_FLAGS "-Xclang -fopenmp -I'${LIBDIR}/openmp/include'")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L'${LIBDIR}/openmp/lib' -lomp")
+
+ # Copy libomp.dylib to allow executables like datatoc to work.
+ if(CMAKE_MAKE_PROGRAM MATCHES "xcodebuild")
+ set(OPENMP_DYLIB_AUX_PATH "${CMAKE_BINARY_DIR}/bin")
+ else()
+ set(OPENMP_DYLIB_AUX_PATH "${CMAKE_BINARY_DIR}")
+ endif()
+
+ execute_process(
+ COMMAND mkdir -p ${OPENMP_DYLIB_AUX_PATH}/Resources/lib
+ COMMAND cp -p ${LIBDIR}/openmp/lib/libomp.dylib ${OPENMP_DYLIB_AUX_PATH}/Resources/lib/libomp.dylib)
+ endif()
endif()
set(EXETYPE MACOSX_BUNDLE)
@@ -411,24 +411,24 @@ set(EXETYPE MACOSX_BUNDLE)
set(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g")
set(CMAKE_CXX_FLAGS_DEBUG "-fno-strict-aliasing -g")
if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR CMAKE_OSX_ARCHITECTURES MATCHES "i386")
- set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3")
- set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3")
- if(NOT CMAKE_C_COMPILER_ID MATCHES "Clang")
- set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller")
- set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller")
- endif()
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3")
+ set(CMAKE_C_FLAGS_RELEASE "-O2 -mdynamic-no-pic -msse -msse2 -msse3 -mssse3")
+ if(NOT CMAKE_C_COMPILER_ID MATCHES "Clang")
+ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -ftree-vectorize -fvariable-expansion-in-unroller")
+ endif()
else()
- set(CMAKE_C_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
- set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
+ set(CMAKE_C_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
+ set(CMAKE_CXX_FLAGS_RELEASE "-mdynamic-no-pic -fno-strict-aliasing")
endif()
if(${XCODE_VERSION} VERSION_EQUAL 5 OR ${XCODE_VERSION} VERSION_GREATER 5)
- # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
+ # Xcode 5 is always using CLANG, which has too low template depth of 128 for libmv
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth=1024")
endif()
# Get rid of eventually clashes, we export some symbols explicitly as local
set(PLATFORM_LINKFLAGS
- "${PLATFORM_LINKFLAGS} -Xlinker -unexported_symbols_list -Xlinker '${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map'"
+ "${PLATFORM_LINKFLAGS} -Xlinker -unexported_symbols_list -Xlinker '${CMAKE_SOURCE_DIR}/source/creator/osx_locals.map'"
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
diff --git a/build_files/cmake/platform/platform_apple_xcode.cmake b/build_files/cmake/platform/platform_apple_xcode.cmake
index 27d337753d8..81bd6f906de 100644
--- a/build_files/cmake/platform/platform_apple_xcode.cmake
+++ b/build_files/cmake/platform/platform_apple_xcode.cmake
@@ -25,92 +25,92 @@
cmake_minimum_required(VERSION 3.0.0)
if(NOT CMAKE_OSX_ARCHITECTURES)
- set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING
- "Choose the architecture you want to build Blender for: i386, x86_64 or ppc"
- FORCE)
+ set(CMAKE_OSX_ARCHITECTURES x86_64 CACHE STRING
+ "Choose the architecture you want to build Blender for: i386, x86_64 or ppc"
+ FORCE)
endif()
if(NOT DEFINED OSX_SYSTEM)
- execute_process(
- COMMAND xcodebuild -version -sdk macosx SDKVersion
- OUTPUT_VARIABLE OSX_SYSTEM
- OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(
+ COMMAND xcodebuild -version -sdk macosx SDKVersion
+ OUTPUT_VARIABLE OSX_SYSTEM
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
# workaround for incorrect cmake xcode lookup for developer previews - XCODE_VERSION does not
# take xcode-select path into account but would always look into /Applications/Xcode.app
# while dev versions are named Xcode<version>-DP<preview_number>
execute_process(
- COMMAND xcode-select --print-path
- OUTPUT_VARIABLE XCODE_CHECK OUTPUT_STRIP_TRAILING_WHITESPACE)
+ COMMAND xcode-select --print-path
+ OUTPUT_VARIABLE XCODE_CHECK OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE "/Contents/Developer" "" XCODE_BUNDLE ${XCODE_CHECK}) # truncate to bundlepath in any case
if(${CMAKE_GENERATOR} MATCHES "Xcode")
- # earlier xcode has no bundled developer dir, no sense in getting xcode path from
- if(${XCODE_VERSION} VERSION_GREATER 4.2)
- # reduce to XCode name without dp extension
- string(SUBSTRING "${XCODE_CHECK}" 14 6 DP_NAME)
- if(${DP_NAME} MATCHES Xcode5)
- set(XCODE_VERSION 5)
- endif()
- endif()
+ # earlier xcode has no bundled developer dir, no sense in getting xcode path from
+ if(${XCODE_VERSION} VERSION_GREATER 4.2)
+ # reduce to XCode name without dp extension
+ string(SUBSTRING "${XCODE_CHECK}" 14 6 DP_NAME)
+ if(${DP_NAME} MATCHES Xcode5)
+ set(XCODE_VERSION 5)
+ endif()
+ endif()
- ##### cmake incompatibility with xcode 4.3 and higher #####
- if(${XCODE_VERSION} MATCHES '') # cmake fails due looking for xcode in the wrong path, thus will be empty var
- message(FATAL_ERROR "Xcode 4.3 and higher must be used with cmake 2.8-8 or higher")
- endif()
- ### end cmake incompatibility with xcode 4.3 and higher ###
+ ##### cmake incompatibility with xcode 4.3 and higher #####
+ if(${XCODE_VERSION} MATCHES '') # cmake fails due looking for xcode in the wrong path, thus will be empty var
+ message(FATAL_ERROR "Xcode 4.3 and higher must be used with cmake 2.8-8 or higher")
+ endif()
+ ### end cmake incompatibility with xcode 4.3 and higher ###
- if(${XCODE_VERSION} VERSION_EQUAL 4 OR ${XCODE_VERSION} VERSION_GREATER 4 AND ${XCODE_VERSION} VERSION_LESS 4.3)
- # Xcode 4 defaults to the Apple LLVM Compiler.
- # Override the default compiler selection because Blender only compiles with gcc up to xcode 4.2
- set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
- message(STATUS "Setting compiler to: " ${CMAKE_XCODE_ATTRIBUTE_GCC_VERSION})
- endif()
+ if(${XCODE_VERSION} VERSION_EQUAL 4 OR ${XCODE_VERSION} VERSION_GREATER 4 AND ${XCODE_VERSION} VERSION_LESS 4.3)
+ # Xcode 4 defaults to the Apple LLVM Compiler.
+ # Override the default compiler selection because Blender only compiles with gcc up to xcode 4.2
+ set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
+ message(STATUS "Setting compiler to: " ${CMAKE_XCODE_ATTRIBUTE_GCC_VERSION})
+ endif()
else() # unix makefile generator does not fill XCODE_VERSION var, so we get it with a command
- execute_process(COMMAND xcodebuild -version OUTPUT_VARIABLE XCODE_VERS_BUILD_NR)
- string(SUBSTRING "${XCODE_VERS_BUILD_NR}" 6 3 XCODE_VERSION) # truncate away build-nr
- unset(XCODE_VERS_BUILD_NR)
+ execute_process(COMMAND xcodebuild -version OUTPUT_VARIABLE XCODE_VERS_BUILD_NR)
+ string(SUBSTRING "${XCODE_VERS_BUILD_NR}" 6 3 XCODE_VERSION) # truncate away build-nr
+ unset(XCODE_VERS_BUILD_NR)
endif()
message(STATUS "Detected OS X ${OSX_SYSTEM} and Xcode ${XCODE_VERSION} at ${XCODE_BUNDLE}")
if(${XCODE_VERSION} VERSION_LESS 4.3)
- # use guaranteed existing sdk
- set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk CACHE PATH "" FORCE)
+ # use guaranteed existing sdk
+ set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk CACHE PATH "" FORCE)
else()
- # note: xcode-select path could be ambiguous,
- # cause /Applications/Xcode.app/Contents/Developer or /Applications/Xcode.app would be allowed
- # so i use a selfcomposed bundlepath here
- set(OSX_SYSROOT_PREFIX ${XCODE_BUNDLE}/Contents/Developer/Platforms/MacOSX.platform)
- message(STATUS "OSX_SYSROOT_PREFIX: " ${OSX_SYSROOT_PREFIX})
- set(OSX_DEVELOPER_PREFIX /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk) # use guaranteed existing sdk
- set(CMAKE_OSX_SYSROOT ${OSX_SYSROOT_PREFIX}/${OSX_DEVELOPER_PREFIX} CACHE PATH "" FORCE)
- if(${CMAKE_GENERATOR} MATCHES "Xcode")
- # to silence sdk not found warning, just overrides CMAKE_OSX_SYSROOT
- set(CMAKE_XCODE_ATTRIBUTE_SDKROOT macosx${OSX_SYSTEM})
- endif()
+ # note: xcode-select path could be ambiguous,
+ # cause /Applications/Xcode.app/Contents/Developer or /Applications/Xcode.app would be allowed
+ # so i use a selfcomposed bundlepath here
+ set(OSX_SYSROOT_PREFIX ${XCODE_BUNDLE}/Contents/Developer/Platforms/MacOSX.platform)
+ message(STATUS "OSX_SYSROOT_PREFIX: " ${OSX_SYSROOT_PREFIX})
+ set(OSX_DEVELOPER_PREFIX /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk) # use guaranteed existing sdk
+ set(CMAKE_OSX_SYSROOT ${OSX_SYSROOT_PREFIX}/${OSX_DEVELOPER_PREFIX} CACHE PATH "" FORCE)
+ if(${CMAKE_GENERATOR} MATCHES "Xcode")
+ # to silence sdk not found warning, just overrides CMAKE_OSX_SYSROOT
+ set(CMAKE_XCODE_ATTRIBUTE_SDKROOT macosx${OSX_SYSTEM})
+ endif()
endif()
if(OSX_SYSTEM MATCHES 10.9)
- # make sure syslibs and headers are looked up in sdk ( especially for 10.9 openGL atm. )
- set(CMAKE_FIND_ROOT_PATH ${CMAKE_OSX_SYSROOT})
+ # make sure syslibs and headers are looked up in sdk ( especially for 10.9 openGL atm. )
+ set(CMAKE_FIND_ROOT_PATH ${CMAKE_OSX_SYSROOT})
endif()
# 10.9 is our min. target, if you use higher sdk, weak linking happens
if(CMAKE_OSX_DEPLOYMENT_TARGET)
- if(${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_LESS 10.9)
- message(STATUS "Setting deployment target to 10.9, lower versions are not supported")
- set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE)
- endif()
+ if(${CMAKE_OSX_DEPLOYMENT_TARGET} VERSION_LESS 10.9)
+ message(STATUS "Setting deployment target to 10.9, lower versions are not supported")
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE)
+ endif()
else()
- set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE)
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "" FORCE)
endif()
if(NOT ${CMAKE_GENERATOR} MATCHES "Xcode")
- # force CMAKE_OSX_DEPLOYMENT_TARGET for makefiles, will not work else ( cmake bug ? )
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
- add_definitions("-DMACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
+ # force CMAKE_OSX_DEPLOYMENT_TARGET for makefiles, will not work else ( cmake bug ? )
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}")
+ add_definitions("-DMACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}")
endif()
diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake
index 0d486c84fe6..0f5b45d722b 100644
--- a/build_files/cmake/platform/platform_unix.cmake
+++ b/build_files/cmake/platform/platform_unix.cmake
@@ -22,34 +22,34 @@
# Detect precompiled library directory
if(NOT DEFINED LIBDIR)
- set(LIBDIR_NAME ${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR})
- string(TOLOWER ${LIBDIR_NAME} LIBDIR_NAME)
- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_NAME})
+ set(LIBDIR_NAME ${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR})
+ string(TOLOWER ${LIBDIR_NAME} LIBDIR_NAME)
+ set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_NAME})
else()
- message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
+ message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
endif()
if(EXISTS ${LIBDIR})
- file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
- # NOTE: Make sure "proper" compiled zlib comes first before the one
- # which is a part of OpenCollada. They have different ABI, and we
- # do need to use the official one.
- set(CMAKE_PREFIX_PATH ${LIBDIR}/zlib ${LIB_SUBDIRS})
- set(WITH_STATIC_LIBS ON)
- set(WITH_OPENMP_STATIC ON)
+ file(GLOB LIB_SUBDIRS ${LIBDIR}/*)
+ # NOTE: Make sure "proper" compiled zlib comes first before the one
+ # which is a part of OpenCollada. They have different ABI, and we
+ # do need to use the official one.
+ set(CMAKE_PREFIX_PATH ${LIBDIR}/zlib ${LIB_SUBDIRS})
+ set(WITH_STATIC_LIBS ON)
+ set(WITH_OPENMP_STATIC ON)
endif()
if(WITH_STATIC_LIBS)
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libstdc++")
endif()
# Wrapper to prefer static libraries
macro(find_package_wrapper)
- if(WITH_STATIC_LIBS)
- find_package_static(${ARGV})
- else()
- find_package(${ARGV})
- endif()
+ if(WITH_STATIC_LIBS)
+ find_package_static(${ARGV})
+ else()
+ find_package(${ARGV})
+ endif()
endmacro()
find_package_wrapper(JPEG REQUIRED)
@@ -58,360 +58,360 @@ find_package_wrapper(ZLIB REQUIRED)
find_package_wrapper(Freetype REQUIRED)
if(WITH_LZO AND WITH_SYSTEM_LZO)
- find_package_wrapper(LZO)
- if(NOT LZO_FOUND)
- message(FATAL_ERROR "Failed finding system LZO version!")
- endif()
+ find_package_wrapper(LZO)
+ if(NOT LZO_FOUND)
+ message(FATAL_ERROR "Failed finding system LZO version!")
+ endif()
endif()
if(WITH_SYSTEM_EIGEN3)
- find_package_wrapper(Eigen3)
- if(NOT EIGEN3_FOUND)
- message(FATAL_ERROR "Failed finding system Eigen3 version!")
- endif()
+ find_package_wrapper(Eigen3)
+ if(NOT EIGEN3_FOUND)
+ message(FATAL_ERROR "Failed finding system Eigen3 version!")
+ endif()
endif()
# else values are set below for all platforms
if(WITH_PYTHON)
- # No way to set py35, remove for now.
- # find_package(PythonLibs)
+ # No way to set py35, remove for now.
+ # find_package(PythonLibs)
- # Use our own instead, since without py is such a rare case,
- # require this package
- # XXX Linking errors with debian static python :/
-# find_package_wrapper(PythonLibsUnix REQUIRED)
- find_package(PythonLibsUnix REQUIRED)
+ # Use our own instead, since without py is such a rare case,
+ # require this package
+ # XXX Linking errors with debian static python :/
+# find_package_wrapper(PythonLibsUnix REQUIRED)
+ find_package(PythonLibsUnix REQUIRED)
endif()
if(WITH_IMAGE_OPENEXR)
- find_package_wrapper(OpenEXR) # our own module
- if(NOT OPENEXR_FOUND)
- set(WITH_IMAGE_OPENEXR OFF)
- endif()
+ find_package_wrapper(OpenEXR) # our own module
+ if(NOT OPENEXR_FOUND)
+ set(WITH_IMAGE_OPENEXR OFF)
+ endif()
endif()
if(WITH_IMAGE_OPENJPEG)
- find_package_wrapper(OpenJPEG)
- if(NOT OPENJPEG_FOUND)
- set(WITH_IMAGE_OPENJPEG OFF)
- endif()
+ find_package_wrapper(OpenJPEG)
+ if(NOT OPENJPEG_FOUND)
+ set(WITH_IMAGE_OPENJPEG OFF)
+ endif()
endif()
if(WITH_IMAGE_TIFF)
- # XXX Linking errors with debian static tiff :/
-# find_package_wrapper(TIFF)
- find_package(TIFF)
- if(NOT TIFF_FOUND)
- set(WITH_IMAGE_TIFF OFF)
- endif()
+ # XXX Linking errors with debian static tiff :/
+# find_package_wrapper(TIFF)
+ find_package(TIFF)
+ if(NOT TIFF_FOUND)
+ set(WITH_IMAGE_TIFF OFF)
+ endif()
endif()
# Audio IO
if(WITH_SYSTEM_AUDASPACE)
- find_package_wrapper(Audaspace)
- if(NOT AUDASPACE_FOUND OR NOT AUDASPACE_C_FOUND)
- message(FATAL_ERROR "Audaspace external library not found!")
- endif()
+ find_package_wrapper(Audaspace)
+ if(NOT AUDASPACE_FOUND OR NOT AUDASPACE_C_FOUND)
+ message(FATAL_ERROR "Audaspace external library not found!")
+ endif()
endif()
if(WITH_OPENAL)
- find_package_wrapper(OpenAL)
- if(NOT OPENAL_FOUND)
- set(WITH_OPENAL OFF)
- endif()
+ find_package_wrapper(OpenAL)
+ if(NOT OPENAL_FOUND)
+ set(WITH_OPENAL OFF)
+ endif()
endif()
if(WITH_SDL)
- if(WITH_SDL_DYNLOAD)
- set(SDL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extern/sdlew/include/SDL2")
- set(SDL_LIBRARY)
- else()
- find_package_wrapper(SDL2)
- if(SDL2_FOUND)
- # Use same names for both versions of SDL until we move to 2.x.
- set(SDL_INCLUDE_DIR "${SDL2_INCLUDE_DIR}")
- set(SDL_LIBRARY "${SDL2_LIBRARY}")
- set(SDL_FOUND "${SDL2_FOUND}")
- else()
- find_package_wrapper(SDL)
- endif()
- mark_as_advanced(
- SDL_INCLUDE_DIR
- SDL_LIBRARY
- )
- # unset(SDLMAIN_LIBRARY CACHE)
- if(NOT SDL_FOUND)
- set(WITH_SDL OFF)
- endif()
- endif()
+ if(WITH_SDL_DYNLOAD)
+ set(SDL_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extern/sdlew/include/SDL2")
+ set(SDL_LIBRARY)
+ else()
+ find_package_wrapper(SDL2)
+ if(SDL2_FOUND)
+ # Use same names for both versions of SDL until we move to 2.x.
+ set(SDL_INCLUDE_DIR "${SDL2_INCLUDE_DIR}")
+ set(SDL_LIBRARY "${SDL2_LIBRARY}")
+ set(SDL_FOUND "${SDL2_FOUND}")
+ else()
+ find_package_wrapper(SDL)
+ endif()
+ mark_as_advanced(
+ SDL_INCLUDE_DIR
+ SDL_LIBRARY
+ )
+ # unset(SDLMAIN_LIBRARY CACHE)
+ if(NOT SDL_FOUND)
+ set(WITH_SDL OFF)
+ endif()
+ endif()
endif()
if(WITH_JACK)
- find_package_wrapper(Jack)
- if(NOT JACK_FOUND)
- set(WITH_JACK OFF)
- endif()
+ find_package_wrapper(Jack)
+ if(NOT JACK_FOUND)
+ set(WITH_JACK OFF)
+ endif()
endif()
# Codecs
if(WITH_CODEC_SNDFILE)
- find_package_wrapper(SndFile)
- if(NOT LIBSNDFILE_FOUND)
- set(WITH_CODEC_SNDFILE OFF)
- endif()
+ find_package_wrapper(SndFile)
+ if(NOT LIBSNDFILE_FOUND)
+ set(WITH_CODEC_SNDFILE OFF)
+ endif()
endif()
if(WITH_CODEC_FFMPEG)
- if(EXISTS ${LIBDIR})
- # For precompiled lib directory, all ffmpeg dependencies are in the same folder
- file(GLOB ffmpeg_libs ${LIBDIR}/ffmpeg/lib/*.a ${LIBDIR}/sndfile/lib/*.a)
- set(FFMPEG ${LIBDIR}/ffmpeg CACHE PATH "FFMPEG Directory")
- set(FFMPEG_LIBRARIES ${ffmpeg_libs} ${ffmpeg_libs} CACHE STRING "FFMPEG Libraries")
- else()
- set(FFMPEG /usr CACHE PATH "FFMPEG Directory")
- set(FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries")
- endif()
+ if(EXISTS ${LIBDIR})
+ # For precompiled lib directory, all ffmpeg dependencies are in the same folder
+ file(GLOB ffmpeg_libs ${LIBDIR}/ffmpeg/lib/*.a ${LIBDIR}/sndfile/lib/*.a)
+ set(FFMPEG ${LIBDIR}/ffmpeg CACHE PATH "FFMPEG Directory")
+ set(FFMPEG_LIBRARIES ${ffmpeg_libs} ${ffmpeg_libs} CACHE STRING "FFMPEG Libraries")
+ else()
+ set(FFMPEG /usr CACHE PATH "FFMPEG Directory")
+ set(FFMPEG_LIBRARIES avformat avcodec avutil avdevice swscale CACHE STRING "FFMPEG Libraries")
+ endif()
- mark_as_advanced(FFMPEG)
+ mark_as_advanced(FFMPEG)
- # lame, but until we have proper find module for ffmpeg
- set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
- if(EXISTS "${FFMPEG}/include/ffmpeg/")
- list(APPEND FFMPEG_INCLUDE_DIRS "${FFMPEG}/include/ffmpeg")
- endif()
- # end lameness
+ # lame, but until we have proper find module for ffmpeg
+ set(FFMPEG_INCLUDE_DIRS ${FFMPEG}/include)
+ if(EXISTS "${FFMPEG}/include/ffmpeg/")
+ list(APPEND FFMPEG_INCLUDE_DIRS "${FFMPEG}/include/ffmpeg")
+ endif()
+ # end lameness
- mark_as_advanced(FFMPEG_LIBRARIES)
- set(FFMPEG_LIBPATH ${FFMPEG}/lib)
+ mark_as_advanced(FFMPEG_LIBRARIES)
+ set(FFMPEG_LIBPATH ${FFMPEG}/lib)
endif()
if(WITH_FFTW3)
- find_package_wrapper(Fftw3)
- if(NOT FFTW3_FOUND)
- set(WITH_FFTW3 OFF)
- endif()
+ find_package_wrapper(Fftw3)
+ if(NOT FFTW3_FOUND)
+ set(WITH_FFTW3 OFF)
+ endif()
endif()
if(WITH_OPENCOLLADA)
- find_package_wrapper(OpenCOLLADA)
- if(OPENCOLLADA_FOUND)
- find_package_wrapper(XML2)
- find_package_wrapper(PCRE)
- else()
- set(WITH_OPENCOLLADA OFF)
- endif()
+ find_package_wrapper(OpenCOLLADA)
+ if(OPENCOLLADA_FOUND)
+ find_package_wrapper(XML2)
+ find_package_wrapper(PCRE)
+ else()
+ set(WITH_OPENCOLLADA OFF)
+ endif()
endif()
if(WITH_MEM_JEMALLOC)
- find_package_wrapper(JeMalloc)
- if(NOT JEMALLOC_FOUND)
- set(WITH_MEM_JEMALLOC OFF)
- endif()
+ find_package_wrapper(JeMalloc)
+ if(NOT JEMALLOC_FOUND)
+ set(WITH_MEM_JEMALLOC OFF)
+ endif()
endif()
if(WITH_INPUT_NDOF)
- find_package_wrapper(Spacenav)
- if(SPACENAV_FOUND)
- # use generic names within blenders buildsystem.
- set(NDOF_INCLUDE_DIRS ${SPACENAV_INCLUDE_DIRS})
- set(NDOF_LIBRARIES ${SPACENAV_LIBRARIES})
- else()
- set(WITH_INPUT_NDOF OFF)
- endif()
+ find_package_wrapper(Spacenav)
+ if(SPACENAV_FOUND)
+ # use generic names within blenders buildsystem.
+ set(NDOF_INCLUDE_DIRS ${SPACENAV_INCLUDE_DIRS})
+ set(NDOF_LIBRARIES ${SPACENAV_LIBRARIES})
+ else()
+ set(WITH_INPUT_NDOF OFF)
+ endif()
endif()
if(WITH_CYCLES_OSL)
- set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
- if(NOT OSL_ROOT)
- set(OSL_ROOT ${CYCLES_OSL})
- endif()
- find_package_wrapper(OpenShadingLanguage)
- if(OSL_FOUND)
- if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6")
- # Note: --whole-archive is needed to force loading of all symbols in liboslexec,
- # otherwise LLVM is missing the osl_allocate_closure_component function
- set(OSL_LIBRARIES
- ${OSL_OSLCOMP_LIBRARY}
- -Wl,--whole-archive ${OSL_OSLEXEC_LIBRARY}
- -Wl,--no-whole-archive ${OSL_OSLQUERY_LIBRARY}
- )
- endif()
- else()
- message(STATUS "OSL not found, disabling it from Cycles")
- set(WITH_CYCLES_OSL OFF)
- endif()
+ set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
+ if(NOT OSL_ROOT)
+ set(OSL_ROOT ${CYCLES_OSL})
+ endif()
+ find_package_wrapper(OpenShadingLanguage)
+ if(OSL_FOUND)
+ if(${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6")
+ # Note: --whole-archive is needed to force loading of all symbols in liboslexec,
+ # otherwise LLVM is missing the osl_allocate_closure_component function
+ set(OSL_LIBRARIES
+ ${OSL_OSLCOMP_LIBRARY}
+ -Wl,--whole-archive ${OSL_OSLEXEC_LIBRARY}
+ -Wl,--no-whole-archive ${OSL_OSLQUERY_LIBRARY}
+ )
+ endif()
+ else()
+ message(STATUS "OSL not found, disabling it from Cycles")
+ set(WITH_CYCLES_OSL OFF)
+ endif()
endif()
if(WITH_OPENVDB)
- find_package_wrapper(OpenVDB)
- find_package_wrapper(TBB)
- find_package_wrapper(Blosc)
- if(NOT TBB_FOUND)
- set(WITH_OPENVDB OFF)
- set(WITH_OPENVDB_BLOSC OFF)
- message(STATUS "TBB not found, disabling OpenVDB")
- elseif(NOT OPENVDB_FOUND)
- set(WITH_OPENVDB OFF)
- set(WITH_OPENVDB_BLOSC OFF)
- message(STATUS "OpenVDB not found, disabling it")
- elseif(NOT BLOSC_FOUND)
- set(WITH_OPENVDB_BLOSC OFF)
- message(STATUS "Blosc not found, disabling it for OpenVBD")
- endif()
+ find_package_wrapper(OpenVDB)
+ find_package_wrapper(TBB)
+ find_package_wrapper(Blosc)
+ if(NOT TBB_FOUND)
+ set(WITH_OPENVDB OFF)
+ set(WITH_OPENVDB_BLOSC OFF)
+ message(STATUS "TBB not found, disabling OpenVDB")
+ elseif(NOT OPENVDB_FOUND)
+ set(WITH_OPENVDB OFF)
+ set(WITH_OPENVDB_BLOSC OFF)
+ message(STATUS "OpenVDB not found, disabling it")
+ elseif(NOT BLOSC_FOUND)
+ set(WITH_OPENVDB_BLOSC OFF)
+ message(STATUS "Blosc not found, disabling it for OpenVBD")
+ endif()
endif()
if(WITH_ALEMBIC)
- find_package_wrapper(Alembic)
+ find_package_wrapper(Alembic)
- if(WITH_ALEMBIC_HDF5)
- set(HDF5_ROOT_DIR ${LIBDIR}/hdf5)
- find_package_wrapper(HDF5)
- endif()
+ if(WITH_ALEMBIC_HDF5)
+ set(HDF5_ROOT_DIR ${LIBDIR}/hdf5)
+ find_package_wrapper(HDF5)
+ endif()
- if(NOT ALEMBIC_FOUND OR (WITH_ALEMBIC_HDF5 AND NOT HDF5_FOUND))
- set(WITH_ALEMBIC OFF)
- set(WITH_ALEMBIC_HDF5 OFF)
- endif()
+ if(NOT ALEMBIC_FOUND OR (WITH_ALEMBIC_HDF5 AND NOT HDF5_FOUND))
+ set(WITH_ALEMBIC OFF)
+ set(WITH_ALEMBIC_HDF5 OFF)
+ endif()
endif()
if(WITH_BOOST)
- # uses in build instructions to override include and library variables
- if(NOT BOOST_CUSTOM)
- if(WITH_STATIC_LIBS)
- set(Boost_USE_STATIC_LIBS ON)
- endif()
- set(Boost_USE_MULTITHREADED ON)
- set(__boost_packages filesystem regex thread date_time)
- if(WITH_CYCLES_OSL)
- if(NOT (${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6"))
- list(APPEND __boost_packages wave)
- else()
- endif()
- endif()
- if(WITH_INTERNATIONAL)
- list(APPEND __boost_packages locale)
- endif()
- if(WITH_CYCLES_NETWORK)
- list(APPEND __boost_packages serialization)
- endif()
- if(WITH_OPENVDB)
- list(APPEND __boost_packages iostreams)
- endif()
- list(APPEND __boost_packages system)
- find_package(Boost 1.48 COMPONENTS ${__boost_packages})
- if(NOT Boost_FOUND)
- # try to find non-multithreaded if -mt not found, this flag
- # doesn't matter for us, it has nothing to do with thread
- # safety, but keep it to not disturb build setups
- set(Boost_USE_MULTITHREADED OFF)
- find_package(Boost 1.48 COMPONENTS ${__boost_packages})
- endif()
- unset(__boost_packages)
- if(Boost_USE_STATIC_LIBS AND WITH_BOOST_ICU)
- find_package(IcuLinux)
- endif()
- mark_as_advanced(Boost_DIR) # why doesn't boost do this?
- endif()
-
- set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
- set(BOOST_LIBRARIES ${Boost_LIBRARIES})
- set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
- set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
+ # uses in build instructions to override include and library variables
+ if(NOT BOOST_CUSTOM)
+ if(WITH_STATIC_LIBS)
+ set(Boost_USE_STATIC_LIBS ON)
+ endif()
+ set(Boost_USE_MULTITHREADED ON)
+ set(__boost_packages filesystem regex thread date_time)
+ if(WITH_CYCLES_OSL)
+ if(NOT (${OSL_LIBRARY_VERSION_MAJOR} EQUAL "1" AND ${OSL_LIBRARY_VERSION_MINOR} LESS "6"))
+ list(APPEND __boost_packages wave)
+ else()
+ endif()
+ endif()
+ if(WITH_INTERNATIONAL)
+ list(APPEND __boost_packages locale)
+ endif()
+ if(WITH_CYCLES_NETWORK)
+ list(APPEND __boost_packages serialization)
+ endif()
+ if(WITH_OPENVDB)
+ list(APPEND __boost_packages iostreams)
+ endif()
+ list(APPEND __boost_packages system)
+ find_package(Boost 1.48 COMPONENTS ${__boost_packages})
+ if(NOT Boost_FOUND)
+ # try to find non-multithreaded if -mt not found, this flag
+ # doesn't matter for us, it has nothing to do with thread
+ # safety, but keep it to not disturb build setups
+ set(Boost_USE_MULTITHREADED OFF)
+ find_package(Boost 1.48 COMPONENTS ${__boost_packages})
+ endif()
+ unset(__boost_packages)
+ if(Boost_USE_STATIC_LIBS AND WITH_BOOST_ICU)
+ find_package(IcuLinux)
+ endif()
+ mark_as_advanced(Boost_DIR) # why doesn't boost do this?
+ endif()
+
+ set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
+ set(BOOST_LIBRARIES ${Boost_LIBRARIES})
+ set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
+ set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
endif()
if(WITH_OPENIMAGEIO)
- find_package_wrapper(OpenImageIO)
- if(NOT OPENIMAGEIO_PUGIXML_FOUND AND WITH_CYCLES_STANDALONE)
- find_package_wrapper(PugiXML)
- else()
- set(PUGIXML_INCLUDE_DIR "${OPENIMAGEIO_INCLUDE_DIR/OpenImageIO}")
- set(PUGIXML_LIBRARIES "")
- endif()
-
- set(OPENIMAGEIO_LIBRARIES
- ${OPENIMAGEIO_LIBRARIES}
- ${PNG_LIBRARIES}
- ${JPEG_LIBRARIES}
- ${ZLIB_LIBRARIES}
- ${BOOST_LIBRARIES}
- )
- set(OPENIMAGEIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
- set(OPENIMAGEIO_DEFINITIONS "")
-
- if(WITH_IMAGE_TIFF)
- list(APPEND OPENIMAGEIO_LIBRARIES "${TIFF_LIBRARY}")
- endif()
- if(WITH_IMAGE_OPENEXR)
- list(APPEND OPENIMAGEIO_LIBRARIES "${OPENEXR_LIBRARIES}")
- endif()
-
- if(NOT OPENIMAGEIO_FOUND)
- set(WITH_OPENIMAGEIO OFF)
- message(STATUS "OpenImageIO not found, disabling WITH_CYCLES")
- endif()
+ find_package_wrapper(OpenImageIO)
+ if(NOT OPENIMAGEIO_PUGIXML_FOUND AND WITH_CYCLES_STANDALONE)
+ find_package_wrapper(PugiXML)
+ else()
+ set(PUGIXML_INCLUDE_DIR "${OPENIMAGEIO_INCLUDE_DIR/OpenImageIO}")
+ set(PUGIXML_LIBRARIES "")
+ endif()
+
+ set(OPENIMAGEIO_LIBRARIES
+ ${OPENIMAGEIO_LIBRARIES}
+ ${PNG_LIBRARIES}
+ ${JPEG_LIBRARIES}
+ ${ZLIB_LIBRARIES}
+ ${BOOST_LIBRARIES}
+ )
+ set(OPENIMAGEIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
+ set(OPENIMAGEIO_DEFINITIONS "")
+
+ if(WITH_IMAGE_TIFF)
+ list(APPEND OPENIMAGEIO_LIBRARIES "${TIFF_LIBRARY}")
+ endif()
+ if(WITH_IMAGE_OPENEXR)
+ list(APPEND OPENIMAGEIO_LIBRARIES "${OPENEXR_LIBRARIES}")
+ endif()
+
+ if(NOT OPENIMAGEIO_FOUND)
+ set(WITH_OPENIMAGEIO OFF)
+ message(STATUS "OpenImageIO not found, disabling WITH_CYCLES")
+ endif()
endif()
if(WITH_OPENCOLORIO)
- find_package_wrapper(OpenColorIO)
+ find_package_wrapper(OpenColorIO)
- set(OPENCOLORIO_LIBRARIES ${OPENCOLORIO_LIBRARIES})
- set(OPENCOLORIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
- set(OPENCOLORIO_DEFINITIONS)
+ set(OPENCOLORIO_LIBRARIES ${OPENCOLORIO_LIBRARIES})
+ set(OPENCOLORIO_LIBPATH) # TODO, remove and reference the absolute path everywhere
+ set(OPENCOLORIO_DEFINITIONS)
- if(NOT OPENCOLORIO_FOUND)
- set(WITH_OPENCOLORIO OFF)
- message(STATUS "OpenColorIO not found")
- endif()
+ if(NOT OPENCOLORIO_FOUND)
+ set(WITH_OPENCOLORIO OFF)
+ message(STATUS "OpenColorIO not found")
+ endif()
endif()
if(WITH_CYCLES_EMBREE)
- find_package(Embree 3.2.4 REQUIRED)
+ find_package(Embree 3.2.4 REQUIRED)
endif()
if(WITH_LLVM)
- if(EXISTS ${LIBDIR})
- set(LLVM_STATIC ON)
- endif()
+ if(EXISTS ${LIBDIR})
+ set(LLVM_STATIC ON)
+ endif()
- find_package_wrapper(LLVM)
+ find_package_wrapper(LLVM)
- # Symbol conflicts with same UTF library used by OpenCollada
- if(EXISTS ${LIBDIR})
- if(WITH_OPENCOLLADA AND (${LLVM_VERSION} VERSION_LESS "4.0.0"))
- list(REMOVE_ITEM OPENCOLLADA_LIBRARIES ${OPENCOLLADA_UTF_LIBRARY})
- endif()
- endif()
+ # Symbol conflicts with same UTF library used by OpenCollada
+ if(EXISTS ${LIBDIR})
+ if(WITH_OPENCOLLADA AND (${LLVM_VERSION} VERSION_LESS "4.0.0"))
+ list(REMOVE_ITEM OPENCOLLADA_LIBRARIES ${OPENCOLLADA_UTF_LIBRARY})
+ endif()
+ endif()
- if(NOT LLVM_FOUND)
- set(WITH_LLVM OFF)
- message(STATUS "LLVM not found")
- endif()
+ if(NOT LLVM_FOUND)
+ set(WITH_LLVM OFF)
+ message(STATUS "LLVM not found")
+ endif()
endif()
if(WITH_LLVM OR WITH_SDL_DYNLOAD)
- # Fix for conflict with Mesa llvmpipe
- set(PLATFORM_LINKFLAGS
- "${PLATFORM_LINKFLAGS} -Wl,--version-script='${CMAKE_SOURCE_DIR}/source/creator/blender.map'"
- )
+ # Fix for conflict with Mesa llvmpipe
+ set(PLATFORM_LINKFLAGS
+ "${PLATFORM_LINKFLAGS} -Wl,--version-script='${CMAKE_SOURCE_DIR}/source/creator/blender.map'"
+ )
endif()
if(WITH_OPENSUBDIV)
- find_package_wrapper(OpenSubdiv)
+ find_package_wrapper(OpenSubdiv)
- set(OPENSUBDIV_LIBRARIES ${OPENSUBDIV_LIBRARIES})
- set(OPENSUBDIV_LIBPATH) # TODO, remove and reference the absolute path everywhere
+ set(OPENSUBDIV_LIBRARIES ${OPENSUBDIV_LIBRARIES})
+ set(OPENSUBDIV_LIBPATH) # TODO, remove and reference the absolute path everywhere
- if(NOT OPENSUBDIV_FOUND)
- set(WITH_OPENSUBDIV OFF)
- message(STATUS "OpenSubdiv not found")
- endif()
+ if(NOT OPENSUBDIV_FOUND)
+ set(WITH_OPENSUBDIV OFF)
+ message(STATUS "OpenSubdiv not found")
+ endif()
endif()
# OpenSuse needs lutil, ArchLinux not, for now keep, can avoid by using --as-needed
if(HAIKU)
- list(APPEND PLATFORM_LINKLIBS -lnetwork)
+ list(APPEND PLATFORM_LINKLIBS -lnetwork)
else()
- list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm)
+ list(APPEND PLATFORM_LINKLIBS -lutil -lc -lm)
endif()
find_package(Threads REQUIRED)
@@ -420,15 +420,15 @@ list(APPEND PLATFORM_LINKLIBS ${CMAKE_THREAD_LIBS_INIT})
set(PTHREADS_LIBRARIES ${CMAKE_THREAD_LIBS_INIT})
if(CMAKE_DL_LIBS)
- list(APPEND PLATFORM_LINKLIBS ${CMAKE_DL_LIBS})
+ list(APPEND PLATFORM_LINKLIBS ${CMAKE_DL_LIBS})
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
- if(NOT WITH_PYTHON_MODULE)
- # binreloc is linux only
- set(BINRELOC_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/binreloc/include)
- set(WITH_BINRELOC ON)
- endif()
+ if(NOT WITH_PYTHON_MODULE)
+ # binreloc is linux only
+ set(BINRELOC_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/extern/binreloc/include)
+ set(WITH_BINRELOC ON)
+ endif()
endif()
# lfs on glibc, all compilers should use
@@ -436,43 +436,43 @@ add_definitions(-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
# GNU Compiler
if(CMAKE_COMPILER_IS_GNUCC)
- set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
-
- if(WITH_LINKER_GOLD)
- execute_process(
- COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version
- ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
- if("${LD_VERSION}" MATCHES "GNU gold")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
- else()
- message(STATUS "GNU gold linker isn't available, using the default system linker.")
- endif()
- unset(LD_VERSION)
- endif()
+ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
+
+ if(WITH_LINKER_GOLD)
+ execute_process(
+ COMMAND ${CMAKE_C_COMPILER} -fuse-ld=gold -Wl,--version
+ ERROR_QUIET OUTPUT_VARIABLE LD_VERSION)
+ if("${LD_VERSION}" MATCHES "GNU gold")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=gold")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=gold")
+ else()
+ message(STATUS "GNU gold linker isn't available, using the default system linker.")
+ endif()
+ unset(LD_VERSION)
+ endif()
# CLang is the same as GCC for now.
elseif(CMAKE_C_COMPILER_ID MATCHES "Clang")
- set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
+ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
# Intel C++ Compiler
elseif(CMAKE_C_COMPILER_ID MATCHES "Intel")
- # think these next two are broken
- find_program(XIAR xiar)
- if(XIAR)
- set(CMAKE_AR "${XIAR}")
- endif()
- mark_as_advanced(XIAR)
-
- find_program(XILD xild)
- if(XILD)
- set(CMAKE_LINKER "${XILD}")
- endif()
- mark_as_advanced(XILD)
-
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fp-model precise -prec_div -parallel")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fp-model precise -prec_div -parallel")
-
- # set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -diag-enable sc3")
- set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
- set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel")
+ # think these next two are broken
+ find_program(XIAR xiar)
+ if(XIAR)
+ set(CMAKE_AR "${XIAR}")
+ endif()
+ mark_as_advanced(XIAR)
+
+ find_program(XILD xild)
+ if(XILD)
+ set(CMAKE_LINKER "${XILD}")
+ endif()
+ mark_as_advanced(XILD)
+
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fp-model precise -prec_div -parallel")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fp-model precise -prec_div -parallel")
+
+ # set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -diag-enable sc3")
+ set(PLATFORM_CFLAGS "-pipe -fPIC -funsigned-char -fno-strict-aliasing")
+ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} -static-intel")
endif()
diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake
index 827357df043..7b516d87f38 100644
--- a/build_files/cmake/platform/platform_win32.cmake
+++ b/build_files/cmake/platform/platform_win32.cmake
@@ -23,44 +23,44 @@
add_definitions(-DWIN32)
if(NOT MSVC)
- message(FATAL_ERROR "Compiler is unsupported")
+ message(FATAL_ERROR "Compiler is unsupported")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
- set(MSVC_CLANG On)
- set(VC_TOOLS_DIR $ENV{VCToolsRedistDir} CACHE STRING "Location of the msvc redistributables")
- set(MSVC_REDIST_DIR ${VC_TOOLS_DIR})
- if (DEFINED MSVC_REDIST_DIR)
- file(TO_CMAKE_PATH ${MSVC_REDIST_DIR} MSVC_REDIST_DIR)
- else()
- message("Unable to detect the Visual Studio redist directory, copying of the runtime dlls will not work, try running from the visual studio developer prompt.")
- endif()
+ set(MSVC_CLANG On)
+ set(VC_TOOLS_DIR $ENV{VCToolsRedistDir} CACHE STRING "Location of the msvc redistributables")
+ set(MSVC_REDIST_DIR ${VC_TOOLS_DIR})
+ if (DEFINED MSVC_REDIST_DIR)
+ file(TO_CMAKE_PATH ${MSVC_REDIST_DIR} MSVC_REDIST_DIR)
+ else()
+ message("Unable to detect the Visual Studio redist directory, copying of the runtime dlls will not work, try running from the visual studio developer prompt.")
+ endif()
endif()
set_property(GLOBAL PROPERTY USE_FOLDERS ${WINDOWS_USE_VISUAL_STUDIO_FOLDERS})
if(NOT WITH_PYTHON_MODULE)
- set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT blender)
+ set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT blender)
endif()
macro(warn_hardcoded_paths package_name
- )
- if(WITH_WINDOWS_FIND_MODULES)
- message(WARNING "Using HARDCODED ${package_name} locations")
- endif()
+ )
+ if(WITH_WINDOWS_FIND_MODULES)
+ message(WARNING "Using HARDCODED ${package_name} locations")
+ endif()
endmacro()
macro(windows_find_package package_name
- )
- if(WITH_WINDOWS_FIND_MODULES)
- find_package(${package_name})
- endif()
+ )
+ if(WITH_WINDOWS_FIND_MODULES)
+ find_package(${package_name})
+ endif()
endmacro()
macro(find_package_wrapper)
- if(WITH_WINDOWS_FIND_MODULES)
- find_package(${ARGV})
- endif()
+ if(WITH_WINDOWS_FIND_MODULES)
+ find_package(${ARGV})
+ endif()
endmacro()
add_definitions(-DWIN32)
@@ -71,22 +71,22 @@ add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
# Minimum MSVC Version
if(CMAKE_CXX_COMPILER_ID MATCHES MSVC)
- if(MSVC_VERSION EQUAL 1800)
- set(_min_ver "18.0.31101")
- if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver})
- message(FATAL_ERROR
- "Visual Studio 2013 (Update 4, ${_min_ver}) required, "
- "found (${CMAKE_CXX_COMPILER_VERSION})")
- endif()
- endif()
- if(MSVC_VERSION EQUAL 1900)
- set(_min_ver "19.0.24210")
- if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver})
- message(FATAL_ERROR
- "Visual Studio 2015 (Update 3, ${_min_ver}) required, "
- "found (${CMAKE_CXX_COMPILER_VERSION})")
- endif()
- endif()
+ if(MSVC_VERSION EQUAL 1800)
+ set(_min_ver "18.0.31101")
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver})
+ message(FATAL_ERROR
+ "Visual Studio 2013 (Update 4, ${_min_ver}) required, "
+ "found (${CMAKE_CXX_COMPILER_VERSION})")
+ endif()
+ endif()
+ if(MSVC_VERSION EQUAL 1900)
+ set(_min_ver "19.0.24210")
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${_min_ver})
+ message(FATAL_ERROR
+ "Visual Studio 2015 (Update 3, ${_min_ver}) required, "
+ "found (${CMAKE_CXX_COMPILER_VERSION})")
+ endif()
+ endif()
endif()
unset(_min_ver)
@@ -96,20 +96,20 @@ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO")
set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} /SAFESEH:NO")
list(APPEND PLATFORM_LINKLIBS
- ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32
- advapi32 shfolder shell32 ole32 oleaut32 uuid psapi Dbghelp
+ ws2_32 vfw32 winmm kernel32 user32 gdi32 comdlg32
+ advapi32 shfolder shell32 ole32 oleaut32 uuid psapi Dbghelp
)
if(WITH_INPUT_IME)
- list(APPEND PLATFORM_LINKLIBS imm32)
+ list(APPEND PLATFORM_LINKLIBS imm32)
endif()
add_definitions(
- -D_CRT_NONSTDC_NO_DEPRECATE
- -D_CRT_SECURE_NO_DEPRECATE
- -D_SCL_SECURE_NO_DEPRECATE
- -D_CONSOLE
- -D_LIB
+ -D_CRT_NONSTDC_NO_DEPRECATE
+ -D_CRT_SECURE_NO_DEPRECATE
+ -D_SCL_SECURE_NO_DEPRECATE
+ -D_CONSOLE
+ -D_LIB
)
# MSVC11 needs _ALLOW_KEYWORD_MACROS to build
@@ -128,11 +128,11 @@ include(InstallRequiredSystemLibraries)
remove_cc_flag("/MDd" "/MD")
if(MSVC_CLANG) # Clangs version of cl doesn't support all flags
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARN_FLAGS} /nologo /J /Gd /EHsc -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference ")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARN_FLAGS} /nologo /J /Gd /EHsc -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference ")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd -Wno-unused-command-line-argument -Wno-microsoft-enum-forward-reference")
else()
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /nologo /J /Gd /MP /EHsc")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd /MP")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /nologo /J /Gd /MP /EHsc")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /nologo /J /Gd /MP")
endif()
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")
@@ -152,50 +152,50 @@ set(PLATFORM_LINKFLAGS "${PLATFORM_LINKFLAGS} /ignore:4049 /ignore:4217 /ignore:
set(CMAKE_STATIC_LINKER_FLAGS "${CMAKE_STATIC_LINKER_FLAGS} /ignore:4221")
if(CMAKE_CL_64)
- set(PLATFORM_LINKFLAGS "/MACHINE:X64 ${PLATFORM_LINKFLAGS}")
+ set(PLATFORM_LINKFLAGS "/MACHINE:X64 ${PLATFORM_LINKFLAGS}")
else()
- set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}")
+ set(PLATFORM_LINKFLAGS "/MACHINE:IX86 /LARGEADDRESSAWARE ${PLATFORM_LINKFLAGS}")
endif()
set(PLATFORM_LINKFLAGS_DEBUG "${PLATFORM_LINKFLAGS_DEBUG} /IGNORE:4099 /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libc.lib")
if(NOT DEFINED LIBDIR)
- # Setup 64bit and 64bit windows systems
- if(CMAKE_CL_64)
- message(STATUS "64 bit compiler detected.")
- set(LIBDIR_BASE "win64")
- else()
- message(STATUS "32 bit compiler detected.")
- set(LIBDIR_BASE "windows")
- endif()
- # Can be 1910..1912
- if(MSVC_VERSION GREATER 1919)
- message(STATUS "Visual Studio 2019 detected.")
- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
- elseif(MSVC_VERSION GREATER 1909)
- message(STATUS "Visual Studio 2017 detected.")
- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
- elseif(MSVC_VERSION EQUAL 1900)
- message(STATUS "Visual Studio 2015 detected.")
- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
- else()
- message(STATUS "Visual Studio 2013 detected.")
- set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc12)
- endif()
+ # Setup 64bit and 64bit windows systems
+ if(CMAKE_CL_64)
+ message(STATUS "64 bit compiler detected.")
+ set(LIBDIR_BASE "win64")
+ else()
+ message(STATUS "32 bit compiler detected.")
+ set(LIBDIR_BASE "windows")
+ endif()
+ # Can be 1910..1912
+ if(MSVC_VERSION GREATER 1919)
+ message(STATUS "Visual Studio 2019 detected.")
+ set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
+ elseif(MSVC_VERSION GREATER 1909)
+ message(STATUS "Visual Studio 2017 detected.")
+ set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
+ elseif(MSVC_VERSION EQUAL 1900)
+ message(STATUS "Visual Studio 2015 detected.")
+ set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc14)
+ else()
+ message(STATUS "Visual Studio 2013 detected.")
+ set(LIBDIR ${CMAKE_SOURCE_DIR}/../lib/${LIBDIR_BASE}_vc12)
+ endif()
else()
- message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
+ message(STATUS "Using pre-compiled LIBDIR: ${LIBDIR}")
endif()
if(NOT EXISTS "${LIBDIR}/")
- message(FATAL_ERROR "Windows requires pre-compiled libs at: '${LIBDIR}'")
+ message(FATAL_ERROR "Windows requires pre-compiled libs at: '${LIBDIR}'")
endif()
# Add each of our libraries to our cmake_prefix_path so find_package() could work
file(GLOB children RELATIVE ${LIBDIR} ${LIBDIR}/*)
foreach(child ${children})
- if(IS_DIRECTORY ${LIBDIR}/${child})
- list(APPEND CMAKE_PREFIX_PATH ${LIBDIR}/${child})
- endif()
+ if(IS_DIRECTORY ${LIBDIR}/${child})
+ list(APPEND CMAKE_PREFIX_PATH ${LIBDIR}/${child})
+ endif()
endforeach()
set(ZLIB_INCLUDE_DIRS ${LIBDIR}/zlib/include)
@@ -208,20 +208,20 @@ windows_find_package(zlib) # we want to find before finding things that depend o
windows_find_package(png)
if(NOT PNG_FOUND)
- warn_hardcoded_paths(libpng)
- set(PNG_PNG_INCLUDE_DIR ${LIBDIR}/png/include)
- set(PNG_LIBRARIES ${LIBDIR}/png/lib/libpng.lib)
- set(PNG "${LIBDIR}/png")
- set(PNG_INCLUDE_DIRS "${PNG}/include")
- set(PNG_LIBPATH ${PNG}/lib) # not cmake defined
+ warn_hardcoded_paths(libpng)
+ set(PNG_PNG_INCLUDE_DIR ${LIBDIR}/png/include)
+ set(PNG_LIBRARIES ${LIBDIR}/png/lib/libpng.lib)
+ set(PNG "${LIBDIR}/png")
+ set(PNG_INCLUDE_DIRS "${PNG}/include")
+ set(PNG_LIBPATH ${PNG}/lib) # not cmake defined
endif()
set(JPEG_NAMES ${JPEG_NAMES} libjpeg)
windows_find_package(jpeg REQUIRED)
if(NOT JPEG_FOUND)
- warn_hardcoded_paths(jpeg)
- set(JPEG_INCLUDE_DIR ${LIBDIR}/jpeg/include)
- set(JPEG_LIBRARIES ${LIBDIR}/jpeg/lib/libjpeg.lib)
+ warn_hardcoded_paths(jpeg)
+ set(JPEG_INCLUDE_DIR ${LIBDIR}/jpeg/include)
+ set(JPEG_LIBRARIES ${LIBDIR}/jpeg/lib/libjpeg.lib)
endif()
set(PTHREADS_INCLUDE_DIRS ${LIBDIR}/pthreads/include)
@@ -229,313 +229,313 @@ set(PTHREADS_LIBRARIES ${LIBDIR}/pthreads/lib/pthreadVC3.lib)
set(FREETYPE ${LIBDIR}/freetype)
set(FREETYPE_INCLUDE_DIRS
- ${LIBDIR}/freetype/include
- ${LIBDIR}/freetype/include/freetype2
+ ${LIBDIR}/freetype/include
+ ${LIBDIR}/freetype/include/freetype2
)
set(FREETYPE_LIBRARY ${LIBDIR}/freetype/lib/freetype2ST.lib)
windows_find_package(freetype REQUIRED)
if(WITH_FFTW3)
- set(FFTW3 ${LIBDIR}/fftw3)
- set(FFTW3_LIBRARIES ${FFTW3}/lib/libfftw.lib)
- set(FFTW3_INCLUDE_DIRS ${FFTW3}/include)
- set(FFTW3_LIBPATH ${FFTW3}/lib)
+ set(FFTW3 ${LIBDIR}/fftw3)
+ set(FFTW3_LIBRARIES ${FFTW3}/lib/libfftw.lib)
+ set(FFTW3_INCLUDE_DIRS ${FFTW3}/include)
+ set(FFTW3_LIBPATH ${FFTW3}/lib)
endif()
if(WITH_OPENCOLLADA)
- set(OPENCOLLADA ${LIBDIR}/opencollada)
-
- set(OPENCOLLADA_INCLUDE_DIRS
- ${OPENCOLLADA}/include/opencollada/COLLADAStreamWriter
- ${OPENCOLLADA}/include/opencollada/COLLADABaseUtils
- ${OPENCOLLADA}/include/opencollada/COLLADAFramework
- ${OPENCOLLADA}/include/opencollada/COLLADASaxFrameworkLoader
- ${OPENCOLLADA}/include/opencollada/GeneratedSaxParser
- )
-
- set(OPENCOLLADA_LIBRARIES
- ${OPENCOLLADA}/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib
- ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAFramework.lib
- ${OPENCOLLADA}/lib/opencollada/OpenCOLLADABaseUtils.lib
- ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter.lib
- ${OPENCOLLADA}/lib/opencollada/MathMLSolver.lib
- ${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser.lib
- ${OPENCOLLADA}/lib/opencollada/xml.lib
- ${OPENCOLLADA}/lib/opencollada/buffer.lib
- ${OPENCOLLADA}/lib/opencollada/ftoa.lib
- )
-
- list(APPEND OPENCOLLADA_LIBRARIES ${OPENCOLLADA}/lib/opencollada/UTF.lib)
-
- set(PCRE_LIBRARIES
- ${OPENCOLLADA}/lib/opencollada/pcre.lib
- )
+ set(OPENCOLLADA ${LIBDIR}/opencollada)
+
+ set(OPENCOLLADA_INCLUDE_DIRS
+ ${OPENCOLLADA}/include/opencollada/COLLADAStreamWriter
+ ${OPENCOLLADA}/include/opencollada/COLLADABaseUtils
+ ${OPENCOLLADA}/include/opencollada/COLLADAFramework
+ ${OPENCOLLADA}/include/opencollada/COLLADASaxFrameworkLoader
+ ${OPENCOLLADA}/include/opencollada/GeneratedSaxParser
+ )
+
+ set(OPENCOLLADA_LIBRARIES
+ ${OPENCOLLADA}/lib/opencollada/OpenCOLLADASaxFrameworkLoader.lib
+ ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAFramework.lib
+ ${OPENCOLLADA}/lib/opencollada/OpenCOLLADABaseUtils.lib
+ ${OPENCOLLADA}/lib/opencollada/OpenCOLLADAStreamWriter.lib
+ ${OPENCOLLADA}/lib/opencollada/MathMLSolver.lib
+ ${OPENCOLLADA}/lib/opencollada/GeneratedSaxParser.lib
+ ${OPENCOLLADA}/lib/opencollada/xml.lib
+ ${OPENCOLLADA}/lib/opencollada/buffer.lib
+ ${OPENCOLLADA}/lib/opencollada/ftoa.lib
+ )
+
+ list(APPEND OPENCOLLADA_LIBRARIES ${OPENCOLLADA}/lib/opencollada/UTF.lib)
+
+ set(PCRE_LIBRARIES
+ ${OPENCOLLADA}/lib/opencollada/pcre.lib
+ )
endif()
if(WITH_CODEC_FFMPEG)
- set(FFMPEG_INCLUDE_DIRS
- ${LIBDIR}/ffmpeg/include
- ${LIBDIR}/ffmpeg/include/msvc
- )
- windows_find_package(FFMPEG)
- if(NOT FFMPEG_FOUND)
- warn_hardcoded_paths(ffmpeg)
- set(FFMPEG_LIBRARIES
- ${LIBDIR}/ffmpeg/lib/avcodec.lib
- ${LIBDIR}/ffmpeg/lib/avformat.lib
- ${LIBDIR}/ffmpeg/lib/avdevice.lib
- ${LIBDIR}/ffmpeg/lib/avutil.lib
- ${LIBDIR}/ffmpeg/lib/swscale.lib
- )
- endif()
+ set(FFMPEG_INCLUDE_DIRS
+ ${LIBDIR}/ffmpeg/include
+ ${LIBDIR}/ffmpeg/include/msvc
+ )
+ windows_find_package(FFMPEG)
+ if(NOT FFMPEG_FOUND)
+ warn_hardcoded_paths(ffmpeg)
+ set(FFMPEG_LIBRARIES
+ ${LIBDIR}/ffmpeg/lib/avcodec.lib
+ ${LIBDIR}/ffmpeg/lib/avformat.lib
+ ${LIBDIR}/ffmpeg/lib/avdevice.lib
+ ${LIBDIR}/ffmpeg/lib/avutil.lib
+ ${LIBDIR}/ffmpeg/lib/swscale.lib
+ )
+ endif()
endif()
if(WITH_IMAGE_OPENEXR)
- set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr)
- set(OPENEXR_VERSION "2.1")
- windows_find_package(OPENEXR REQUIRED)
- if(NOT OPENEXR_FOUND)
- warn_hardcoded_paths(OpenEXR)
- set(OPENEXR ${LIBDIR}/openexr)
- set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
- set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR)
- set(OPENEXR_LIBPATH ${OPENEXR}/lib)
- set(OPENEXR_LIBRARIES
- optimized ${OPENEXR_LIBPATH}/Iex_s.lib
- optimized ${OPENEXR_LIBPATH}/Half_s.lib
- optimized ${OPENEXR_LIBPATH}/IlmImf_s.lib
- optimized ${OPENEXR_LIBPATH}/Imath_s.lib
- optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib
- debug ${OPENEXR_LIBPATH}/Iex_s_d.lib
- debug ${OPENEXR_LIBPATH}/Half_s_d.lib
- debug ${OPENEXR_LIBPATH}/IlmImf_s_d.lib
- debug ${OPENEXR_LIBPATH}/Imath_s_d.lib
- debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib
- )
- endif()
+ set(OPENEXR_ROOT_DIR ${LIBDIR}/openexr)
+ set(OPENEXR_VERSION "2.1")
+ windows_find_package(OPENEXR REQUIRED)
+ if(NOT OPENEXR_FOUND)
+ warn_hardcoded_paths(OpenEXR)
+ set(OPENEXR ${LIBDIR}/openexr)
+ set(OPENEXR_INCLUDE_DIR ${OPENEXR}/include)
+ set(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR} ${OPENEXR}/include/OpenEXR)
+ set(OPENEXR_LIBPATH ${OPENEXR}/lib)
+ set(OPENEXR_LIBRARIES
+ optimized ${OPENEXR_LIBPATH}/Iex_s.lib
+ optimized ${OPENEXR_LIBPATH}/Half_s.lib
+ optimized ${OPENEXR_LIBPATH}/IlmImf_s.lib
+ optimized ${OPENEXR_LIBPATH}/Imath_s.lib
+ optimized ${OPENEXR_LIBPATH}/IlmThread_s.lib
+ debug ${OPENEXR_LIBPATH}/Iex_s_d.lib
+ debug ${OPENEXR_LIBPATH}/Half_s_d.lib
+ debug ${OPENEXR_LIBPATH}/IlmImf_s_d.lib
+ debug ${OPENEXR_LIBPATH}/Imath_s_d.lib
+ debug ${OPENEXR_LIBPATH}/IlmThread_s_d.lib
+ )
+ endif()
endif()
if(WITH_IMAGE_TIFF)
- # Try to find tiff first then complain and set static and maybe wrong paths
- windows_find_package(TIFF)
- if(NOT TIFF_FOUND)
- warn_hardcoded_paths(libtiff)
- set(TIFF_LIBRARY ${LIBDIR}/tiff/lib/libtiff.lib)
- set(TIFF_INCLUDE_DIR ${LIBDIR}/tiff/include)
- endif()
+ # Try to find tiff first then complain and set static and maybe wrong paths
+ windows_find_package(TIFF)
+ if(NOT TIFF_FOUND)
+ warn_hardcoded_paths(libtiff)
+ set(TIFF_LIBRARY ${LIBDIR}/tiff/lib/libtiff.lib)
+ set(TIFF_INCLUDE_DIR ${LIBDIR}/tiff/include)
+ endif()
endif()
if(WITH_JACK)
- set(JACK_INCLUDE_DIRS
- ${LIBDIR}/jack/include/jack
- ${LIBDIR}/jack/include
- )
- set(JACK_LIBRARIES optimized ${LIBDIR}/jack/lib/libjack.lib debug ${LIBDIR}/jack/lib/libjack_d.lib)
+ set(JACK_INCLUDE_DIRS
+ ${LIBDIR}/jack/include/jack
+ ${LIBDIR}/jack/include
+ )
+ set(JACK_LIBRARIES optimized ${LIBDIR}/jack/lib/libjack.lib debug ${LIBDIR}/jack/lib/libjack_d.lib)
endif()
if(WITH_PYTHON)
- set(PYTHON_VERSION 3.7) # CACHE STRING)
+ set(PYTHON_VERSION 3.7) # CACHE STRING)
- string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
- # Use shared libs for vc2008 and vc2010 until we actually have vc2010 libs
- set(PYTHON_LIBRARY ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}.lib)
- unset(_PYTHON_VERSION_NO_DOTS)
+ string(REPLACE "." "" _PYTHON_VERSION_NO_DOTS ${PYTHON_VERSION})
+ # Use shared libs for vc2008 and vc2010 until we actually have vc2010 libs
+ set(PYTHON_LIBRARY ${LIBDIR}/python/lib/python${_PYTHON_VERSION_NO_DOTS}.lib)
+ unset(_PYTHON_VERSION_NO_DOTS)
- # Shared includes for both vc2008 and vc2010
- set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/include/python${PYTHON_VERSION})
+ # Shared includes for both vc2008 and vc2010
+ set(PYTHON_INCLUDE_DIR ${LIBDIR}/python/include/python${PYTHON_VERSION})
- # uncached vars
- set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
- set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
+ # uncached vars
+ set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}")
+ set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}")
endif()
if(WITH_BOOST)
- if(WITH_CYCLES_OSL)
- set(boost_extra_libs wave)
- endif()
- if(WITH_INTERNATIONAL)
- list(APPEND boost_extra_libs locale)
- endif()
- if(WITH_OPENVDB)
- list(APPEND boost_extra_libs iostreams)
- endif()
- set(Boost_USE_STATIC_RUNTIME ON) # prefix lib
- set(Boost_USE_MULTITHREADED ON) # suffix -mt
- set(Boost_USE_STATIC_LIBS ON) # suffix -s
- if(WITH_WINDOWS_FIND_MODULES)
- find_package(Boost COMPONENTS date_time filesystem thread regex system ${boost_extra_libs})
- endif()
- if(NOT Boost_FOUND)
- warn_hardcoded_paths(BOOST)
- set(BOOST ${LIBDIR}/boost)
- set(BOOST_INCLUDE_DIR ${BOOST}/include)
- set(BOOST_LIBPATH ${BOOST}/lib)
- if(CMAKE_CL_64)
- set(BOOST_POSTFIX "vc140-mt-s-x64-1_68.lib")
- set(BOOST_DEBUG_POSTFIX "vc140-mt-sgd-x64-1_68.lib")
- else()
- set(BOOST_POSTFIX "vc140-mt-s-x32-1_68.lib")
- set(BOOST_DEBUG_POSTFIX "vc140-mt-sgd-x32-1_68.lib")
- endif()
- set(BOOST_LIBRARIES
- optimized ${BOOST_LIBPATH}/libboost_date_time-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/libboost_regex-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/libboost_system-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/libboost_thread-${BOOST_POSTFIX}
- optimized ${BOOST_LIBPATH}/libboost_chrono-${BOOST_POSTFIX}
- debug ${BOOST_LIBPATH}/libboost_date_time-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/libboost_regex-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/libboost_system-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/libboost_thread-${BOOST_DEBUG_POSTFIX}
- debug ${BOOST_LIBPATH}/libboost_chrono-${BOOST_DEBUG_POSTFIX}
- )
- if(WITH_CYCLES_OSL)
- set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
- optimized ${BOOST_LIBPATH}/libboost_wave-${BOOST_POSTFIX}
- debug ${BOOST_LIBPATH}/libboost_wave-${BOOST_DEBUG_POSTFIX})
- endif()
- if(WITH_INTERNATIONAL)
- set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
- optimized ${BOOST_LIBPATH}/libboost_locale-${BOOST_POSTFIX}
- debug ${BOOST_LIBPATH}/libboost_locale-${BOOST_DEBUG_POSTFIX})
- endif()
- else() # we found boost using find_package
- set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
- set(BOOST_LIBRARIES ${Boost_LIBRARIES})
- set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
- endif()
- set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
+ if(WITH_CYCLES_OSL)
+ set(boost_extra_libs wave)
+ endif()
+ if(WITH_INTERNATIONAL)
+ list(APPEND boost_extra_libs locale)
+ endif()
+ if(WITH_OPENVDB)
+ list(APPEND boost_extra_libs iostreams)
+ endif()
+ set(Boost_USE_STATIC_RUNTIME ON) # prefix lib
+ set(Boost_USE_MULTITHREADED ON) # suffix -mt
+ set(Boost_USE_STATIC_LIBS ON) # suffix -s
+ if(WITH_WINDOWS_FIND_MODULES)
+ find_package(Boost COMPONENTS date_time filesystem thread regex system ${boost_extra_libs})
+ endif()
+ if(NOT Boost_FOUND)
+ warn_hardcoded_paths(BOOST)
+ set(BOOST ${LIBDIR}/boost)
+ set(BOOST_INCLUDE_DIR ${BOOST}/include)
+ set(BOOST_LIBPATH ${BOOST}/lib)
+ if(CMAKE_CL_64)
+ set(BOOST_POSTFIX "vc140-mt-s-x64-1_68.lib")
+ set(BOOST_DEBUG_POSTFIX "vc140-mt-sgd-x64-1_68.lib")
+ else()
+ set(BOOST_POSTFIX "vc140-mt-s-x32-1_68.lib")
+ set(BOOST_DEBUG_POSTFIX "vc140-mt-sgd-x32-1_68.lib")
+ endif()
+ set(BOOST_LIBRARIES
+ optimized ${BOOST_LIBPATH}/libboost_date_time-${BOOST_POSTFIX}
+ optimized ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_POSTFIX}
+ optimized ${BOOST_LIBPATH}/libboost_regex-${BOOST_POSTFIX}
+ optimized ${BOOST_LIBPATH}/libboost_system-${BOOST_POSTFIX}
+ optimized ${BOOST_LIBPATH}/libboost_thread-${BOOST_POSTFIX}
+ optimized ${BOOST_LIBPATH}/libboost_chrono-${BOOST_POSTFIX}
+ debug ${BOOST_LIBPATH}/libboost_date_time-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_LIBPATH}/libboost_filesystem-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_LIBPATH}/libboost_regex-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_LIBPATH}/libboost_system-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_LIBPATH}/libboost_thread-${BOOST_DEBUG_POSTFIX}
+ debug ${BOOST_LIBPATH}/libboost_chrono-${BOOST_DEBUG_POSTFIX}
+ )
+ if(WITH_CYCLES_OSL)
+ set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
+ optimized ${BOOST_LIBPATH}/libboost_wave-${BOOST_POSTFIX}
+ debug ${BOOST_LIBPATH}/libboost_wave-${BOOST_DEBUG_POSTFIX})
+ endif()
+ if(WITH_INTERNATIONAL)
+ set(BOOST_LIBRARIES ${BOOST_LIBRARIES}
+ optimized ${BOOST_LIBPATH}/libboost_locale-${BOOST_POSTFIX}
+ debug ${BOOST_LIBPATH}/libboost_locale-${BOOST_DEBUG_POSTFIX})
+ endif()
+ else() # we found boost using find_package
+ set(BOOST_INCLUDE_DIR ${Boost_INCLUDE_DIRS})
+ set(BOOST_LIBRARIES ${Boost_LIBRARIES})
+ set(BOOST_LIBPATH ${Boost_LIBRARY_DIRS})
+ endif()
+ set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
endif()
if(WITH_OPENIMAGEIO)
- windows_find_package(OpenImageIO)
- set(OPENIMAGEIO ${LIBDIR}/openimageio)
- set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
- set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
- set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib)
- set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib)
- set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG})
+ windows_find_package(OpenImageIO)
+ set(OPENIMAGEIO ${LIBDIR}/openimageio)
+ set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
+ set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO}/include)
+ set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib)
+ set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib)
+ set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG})
- set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0")
- set(OPENCOLORIO_DEFINITIONS "-DOCIO_STATIC_BUILD")
- set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
- add_definitions(-DOIIO_STATIC_BUILD)
- add_definitions(-DOIIO_NO_SSE=1)
+ set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0")
+ set(OPENCOLORIO_DEFINITIONS "-DOCIO_STATIC_BUILD")
+ set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
+ add_definitions(-DOIIO_STATIC_BUILD)
+ add_definitions(-DOIIO_NO_SSE=1)
endif()
if(WITH_LLVM)
- set(LLVM_ROOT_DIR ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation")
- set(LLVM_INCLUDE_DIRS ${LLVM_ROOT_DIR}/$<$<CONFIG:Debug>:Debug>/include CACHE PATH "Path to the LLVM include directory")
- file(GLOB LLVM_LIBRARY_OPTIMIZED ${LLVM_ROOT_DIR}/lib/*.lib)
+ set(LLVM_ROOT_DIR ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation")
+ set(LLVM_INCLUDE_DIRS ${LLVM_ROOT_DIR}/$<$<CONFIG:Debug>:Debug>/include CACHE PATH "Path to the LLVM include directory")
+ file(GLOB LLVM_LIBRARY_OPTIMIZED ${LLVM_ROOT_DIR}/lib/*.lib)
- if(EXISTS ${LLVM_ROOT_DIR}/debug/lib)
- foreach(LLVM_OPTIMIZED_LIB ${LLVM_LIBRARY_OPTIMIZED})
- get_filename_component(LIBNAME ${LLVM_OPTIMIZED_LIB} ABSOLUTE)
- list(APPEND LLVM_LIBS optimized ${LIBNAME})
- endforeach(LLVM_OPTIMIZED_LIB)
+ if(EXISTS ${LLVM_ROOT_DIR}/debug/lib)
+ foreach(LLVM_OPTIMIZED_LIB ${LLVM_LIBRARY_OPTIMIZED})
+ get_filename_component(LIBNAME ${LLVM_OPTIMIZED_LIB} ABSOLUTE)
+ list(APPEND LLVM_LIBS optimized ${LIBNAME})
+ endforeach(LLVM_OPTIMIZED_LIB)
- file(GLOB LLVM_LIBRARY_DEBUG ${LLVM_ROOT_DIR}/debug/lib/*.lib)
+ file(GLOB LLVM_LIBRARY_DEBUG ${LLVM_ROOT_DIR}/debug/lib/*.lib)
- foreach(LLVM_DEBUG_LIB ${LLVM_LIBRARY_DEBUG})
- get_filename_component(LIBNAME ${LLVM_DEBUG_LIB} ABSOLUTE)
- list(APPEND LLVM_LIBS debug ${LIBNAME})
- endforeach(LLVM_DEBUG_LIB)
+ foreach(LLVM_DEBUG_LIB ${LLVM_LIBRARY_DEBUG})
+ get_filename_component(LIBNAME ${LLVM_DEBUG_LIB} ABSOLUTE)
+ list(APPEND LLVM_LIBS debug ${LIBNAME})
+ endforeach(LLVM_DEBUG_LIB)
- set(LLVM_LIBRARY ${LLVM_LIBS})
- else()
- message(WARNING "LLVM debug libs not present on this system. Using release libs for debug builds.")
- set(LLVM_LIBRARY ${LLVM_LIBRARY_OPTIMIZED})
- endif()
+ set(LLVM_LIBRARY ${LLVM_LIBS})
+ else()
+ message(WARNING "LLVM debug libs not present on this system. Using release libs for debug builds.")
+ set(LLVM_LIBRARY ${LLVM_LIBRARY_OPTIMIZED})
+ endif()
endif()
if(WITH_OPENCOLORIO)
- set(OPENCOLORIO ${LIBDIR}/opencolorio)
- set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
- set(OPENCOLORIO_LIBPATH ${LIBDIR}/opencolorio/lib)
- set(OPENCOLORIO_LIBRARIES
- optimized ${OPENCOLORIO_LIBPATH}/OpenColorIO.lib
- optimized ${OPENCOLORIO_LIBPATH}/tinyxml.lib
- optimized ${OPENCOLORIO_LIBPATH}/libyaml-cpp.lib
- debug ${OPENCOLORIO_LIBPATH}/OpenColorIO_d.lib
- debug ${OPENCOLORIO_LIBPATH}/tinyxml_d.lib
- debug ${OPENCOLORIO_LIBPATH}/libyaml-cpp_d.lib
- )
- set(OPENCOLORIO_DEFINITIONS)
+ set(OPENCOLORIO ${LIBDIR}/opencolorio)
+ set(OPENCOLORIO_INCLUDE_DIRS ${OPENCOLORIO}/include)
+ set(OPENCOLORIO_LIBPATH ${LIBDIR}/opencolorio/lib)
+ set(OPENCOLORIO_LIBRARIES
+ optimized ${OPENCOLORIO_LIBPATH}/OpenColorIO.lib
+ optimized ${OPENCOLORIO_LIBPATH}/tinyxml.lib
+ optimized ${OPENCOLORIO_LIBPATH}/libyaml-cpp.lib
+ debug ${OPENCOLORIO_LIBPATH}/OpenColorIO_d.lib
+ debug ${OPENCOLORIO_LIBPATH}/tinyxml_d.lib
+ debug ${OPENCOLORIO_LIBPATH}/libyaml-cpp_d.lib
+ )
+ set(OPENCOLORIO_DEFINITIONS)
endif()
if(WITH_OPENVDB)
- set(BLOSC_LIBRARIES optimized ${LIBDIR}/blosc/lib/libblosc.lib debug ${LIBDIR}/blosc/lib/libblosc_d.lib)
- set(TBB_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/tbb_debug.lib)
- set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include)
- set(OPENVDB ${LIBDIR}/openvdb)
- set(OPENVDB_LIBPATH ${LIBDIR}/openvdb/lib)
- set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include ${TBB_INCLUDE_DIR})
- set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib ${TBB_LIBRARIES} ${BLOSC_LIBRARIES})
- set(OPENVDB_DEFINITIONS -DNOMINMAX)
+ set(BLOSC_LIBRARIES optimized ${LIBDIR}/blosc/lib/libblosc.lib debug ${LIBDIR}/blosc/lib/libblosc_d.lib)
+ set(TBB_LIBRARIES optimized ${LIBDIR}/tbb/lib/tbb.lib debug ${LIBDIR}/tbb/lib/tbb_debug.lib)
+ set(TBB_INCLUDE_DIR ${LIBDIR}/tbb/include)
+ set(OPENVDB ${LIBDIR}/openvdb)
+ set(OPENVDB_LIBPATH ${LIBDIR}/openvdb/lib)
+ set(OPENVDB_INCLUDE_DIRS ${OPENVDB}/include ${TBB_INCLUDE_DIR})
+ set(OPENVDB_LIBRARIES optimized ${OPENVDB_LIBPATH}/openvdb.lib debug ${OPENVDB_LIBPATH}/openvdb_d.lib ${TBB_LIBRARIES} ${BLOSC_LIBRARIES})
+ set(OPENVDB_DEFINITIONS -DNOMINMAX)
endif()
if(WITH_ALEMBIC)
- set(ALEMBIC ${LIBDIR}/alembic)
- set(ALEMBIC_INCLUDE_DIR ${ALEMBIC}/include)
- set(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR})
- set(ALEMBIC_LIBPATH ${ALEMBIC}/lib)
- set(ALEMBIC_LIBRARIES optimized ${ALEMBIC}/lib/alembic.lib debug ${ALEMBIC}/lib/alembic_d.lib)
- set(ALEMBIC_FOUND 1)
+ set(ALEMBIC ${LIBDIR}/alembic)
+ set(ALEMBIC_INCLUDE_DIR ${ALEMBIC}/include)
+ set(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR})
+ set(ALEMBIC_LIBPATH ${ALEMBIC}/lib)
+ set(ALEMBIC_LIBRARIES optimized ${ALEMBIC}/lib/alembic.lib debug ${ALEMBIC}/lib/alembic_d.lib)
+ set(ALEMBIC_FOUND 1)
endif()
if(WITH_MOD_CLOTH_ELTOPO)
- set(LAPACK ${LIBDIR}/lapack)
- # set(LAPACK_INCLUDE_DIR ${LAPACK}/include)
- set(LAPACK_LIBPATH ${LAPACK}/lib)
- set(LAPACK_LIBRARIES
- ${LIBDIR}/lapack/lib/libf2c.lib
- ${LIBDIR}/lapack/lib/clapack_nowrap.lib
- ${LIBDIR}/lapack/lib/BLAS_nowrap.lib
- )
+ set(LAPACK ${LIBDIR}/lapack)
+ # set(LAPACK_INCLUDE_DIR ${LAPACK}/include)
+ set(LAPACK_LIBPATH ${LAPACK}/lib)
+ set(LAPACK_LIBRARIES
+ ${LIBDIR}/lapack/lib/libf2c.lib
+ ${LIBDIR}/lapack/lib/clapack_nowrap.lib
+ ${LIBDIR}/lapack/lib/BLAS_nowrap.lib
+ )
endif()
if(WITH_IMAGE_OPENJPEG)
- set(OPENJPEG ${LIBDIR}/openjpeg)
- set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.3)
- set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/openjp2.lib)
+ set(OPENJPEG ${LIBDIR}/openjpeg)
+ set(OPENJPEG_INCLUDE_DIRS ${OPENJPEG}/include/openjpeg-2.3)
+ set(OPENJPEG_LIBRARIES ${OPENJPEG}/lib/openjp2.lib)
endif()
if(WITH_OPENSUBDIV)
- set(OPENSUBDIV_INCLUDE_DIR ${LIBDIR}/opensubdiv/include)
- set(OPENSUBDIV_LIBPATH ${LIBDIR}/opensubdiv/lib)
- set(OPENSUBDIV_LIBRARIES
- optimized ${OPENSUBDIV_LIBPATH}/osdCPU.lib
- optimized ${OPENSUBDIV_LIBPATH}/osdGPU.lib
- debug ${OPENSUBDIV_LIBPATH}/osdCPU_d.lib
- debug ${OPENSUBDIV_LIBPATH}/osdGPU_d.lib
- )
- set(OPENSUBDIV_HAS_OPENMP TRUE)
- set(OPENSUBDIV_HAS_TBB FALSE)
- set(OPENSUBDIV_HAS_OPENCL TRUE)
- set(OPENSUBDIV_HAS_CUDA FALSE)
- set(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK TRUE)
- set(OPENSUBDIV_HAS_GLSL_COMPUTE TRUE)
- windows_find_package(OpenSubdiv)
+ set(OPENSUBDIV_INCLUDE_DIR ${LIBDIR}/opensubdiv/include)
+ set(OPENSUBDIV_LIBPATH ${LIBDIR}/opensubdiv/lib)
+ set(OPENSUBDIV_LIBRARIES
+ optimized ${OPENSUBDIV_LIBPATH}/osdCPU.lib
+ optimized ${OPENSUBDIV_LIBPATH}/osdGPU.lib
+ debug ${OPENSUBDIV_LIBPATH}/osdCPU_d.lib
+ debug ${OPENSUBDIV_LIBPATH}/osdGPU_d.lib
+ )
+ set(OPENSUBDIV_HAS_OPENMP TRUE)
+ set(OPENSUBDIV_HAS_TBB FALSE)
+ set(OPENSUBDIV_HAS_OPENCL TRUE)
+ set(OPENSUBDIV_HAS_CUDA FALSE)
+ set(OPENSUBDIV_HAS_GLSL_TRANSFORM_FEEDBACK TRUE)
+ set(OPENSUBDIV_HAS_GLSL_COMPUTE TRUE)
+ windows_find_package(OpenSubdiv)
endif()
if(WITH_SDL)
- set(SDL ${LIBDIR}/sdl)
- set(SDL_INCLUDE_DIR ${SDL}/include)
- set(SDL_LIBPATH ${SDL}/lib)
- set(SDL_LIBRARY ${SDL_LIBPATH}/SDL2.lib)
+ set(SDL ${LIBDIR}/sdl)
+ set(SDL_INCLUDE_DIR ${SDL}/include)
+ set(SDL_LIBPATH ${SDL}/lib)
+ set(SDL_LIBRARY ${SDL_LIBPATH}/SDL2.lib)
endif()
# Audio IO
if(WITH_SYSTEM_AUDASPACE)
- set(AUDASPACE_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace)
- set(AUDASPACE_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace.lib)
- set(AUDASPACE_C_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace)
- set(AUDASPACE_C_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace-c.lib)
- set(AUDASPACE_PY_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace)
- set(AUDASPACE_PY_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace-py.lib)
+ set(AUDASPACE_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace)
+ set(AUDASPACE_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace.lib)
+ set(AUDASPACE_C_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace)
+ set(AUDASPACE_C_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace-c.lib)
+ set(AUDASPACE_PY_INCLUDE_DIRS ${LIBDIR}/audaspace/include/audaspace)
+ set(AUDASPACE_PY_LIBRARIES ${LIBDIR}/audaspace/lib/audaspace-py.lib)
endif()
# used in many places so include globally, like OpenGL
@@ -544,130 +544,130 @@ blender_include_dirs_sys("${PTHREADS_INCLUDE_DIRS}")
#find signtool
set(ProgramFilesX86_NAME "ProgramFiles(x86)") #env dislikes the ( )
find_program(SIGNTOOL_EXE signtool
- HINTS
- "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/10/bin/x86/"
- "$ENV{ProgramFiles}/Windows Kits/10/bin/x86/"
- "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.1/bin/x86/"
- "$ENV{ProgramFiles}/Windows Kits/8.1/bin/x86/"
- "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.0/bin/x86/"
- "$ENV{ProgramFiles}/Windows Kits/8.0/bin/x86/"
+ HINTS
+ "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/10/bin/x86/"
+ "$ENV{ProgramFiles}/Windows Kits/10/bin/x86/"
+ "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.1/bin/x86/"
+ "$ENV{ProgramFiles}/Windows Kits/8.1/bin/x86/"
+ "$ENV{${ProgramFilesX86_NAME}}/Windows Kits/8.0/bin/x86/"
+ "$ENV{ProgramFiles}/Windows Kits/8.0/bin/x86/"
)
set(WINTAB_INC ${LIBDIR}/wintab/include)
if(WITH_OPENAL)
- set(OPENAL ${LIBDIR}/openal)
- set(OPENALDIR ${LIBDIR}/openal)
- set(OPENAL_INCLUDE_DIR ${OPENAL}/include/AL)
- set(OPENAL_LIBPATH ${OPENAL}/lib)
- if(MSVC)
- set(OPENAL_LIBRARY ${OPENAL_LIBPATH}/openal32.lib)
- else()
- set(OPENAL_LIBRARY ${OPENAL_LIBPATH}/wrap_oal.lib)
- endif()
+ set(OPENAL ${LIBDIR}/openal)
+ set(OPENALDIR ${LIBDIR}/openal)
+ set(OPENAL_INCLUDE_DIR ${OPENAL}/include/AL)
+ set(OPENAL_LIBPATH ${OPENAL}/lib)
+ if(MSVC)
+ set(OPENAL_LIBRARY ${OPENAL_LIBPATH}/openal32.lib)
+ else()
+ set(OPENAL_LIBRARY ${OPENAL_LIBPATH}/wrap_oal.lib)
+ endif()
endif()
if(WITH_CODEC_SNDFILE)
- set(LIBSNDFILE ${LIBDIR}/sndfile)
- set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
- set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib) # TODO, deprecate
- set(LIBSNDFILE_LIBRARIES ${LIBSNDFILE_LIBPATH}/libsndfile-1.lib)
+ set(LIBSNDFILE ${LIBDIR}/sndfile)
+ set(LIBSNDFILE_INCLUDE_DIRS ${LIBSNDFILE}/include)
+ set(LIBSNDFILE_LIBPATH ${LIBSNDFILE}/lib) # TODO, deprecate
+ set(LIBSNDFILE_LIBRARIES ${LIBSNDFILE_LIBPATH}/libsndfile-1.lib)
endif()
if(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
- add_definitions(-D__SSE__ -D__MMX__)
+ add_definitions(-D__SSE__ -D__MMX__)
endif()
if(WITH_CYCLES_OSL)
- set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
-
- find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
- find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
- find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
- find_library(OSL_LIB_EXEC_DEBUG NAMES oslexec_d PATHS ${CYCLES_OSL}/lib)
- find_library(OSL_LIB_COMP_DEBUG NAMES oslcomp_d PATHS ${CYCLES_OSL}/lib)
- find_library(OSL_LIB_QUERY_DEBUG NAMES oslquery_d PATHS ${CYCLES_OSL}/lib)
- list(APPEND OSL_LIBRARIES
- optimized ${OSL_LIB_COMP}
- optimized ${OSL_LIB_EXEC}
- optimized ${OSL_LIB_QUERY}
- optimized ${CYCLES_OSL}/lib/pugixml.lib
- debug ${OSL_LIB_EXEC_DEBUG}
- debug ${OSL_LIB_COMP_DEBUG}
- debug ${OSL_LIB_QUERY_DEBUG}
- debug ${CYCLES_OSL}/lib/pugixml_d.lib
- )
- find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
- find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
-
- if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER)
- set(OSL_FOUND TRUE)
- else()
- message(STATUS "OSL not found")
- set(WITH_CYCLES_OSL OFF)
- endif()
+ set(CYCLES_OSL ${LIBDIR}/osl CACHE PATH "Path to OpenShadingLanguage installation")
+
+ find_library(OSL_LIB_EXEC NAMES oslexec PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_COMP NAMES oslcomp PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_QUERY NAMES oslquery PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_EXEC_DEBUG NAMES oslexec_d PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_COMP_DEBUG NAMES oslcomp_d PATHS ${CYCLES_OSL}/lib)
+ find_library(OSL_LIB_QUERY_DEBUG NAMES oslquery_d PATHS ${CYCLES_OSL}/lib)
+ list(APPEND OSL_LIBRARIES
+ optimized ${OSL_LIB_COMP}
+ optimized ${OSL_LIB_EXEC}
+ optimized ${OSL_LIB_QUERY}
+ optimized ${CYCLES_OSL}/lib/pugixml.lib
+ debug ${OSL_LIB_EXEC_DEBUG}
+ debug ${OSL_LIB_COMP_DEBUG}
+ debug ${OSL_LIB_QUERY_DEBUG}
+ debug ${CYCLES_OSL}/lib/pugixml_d.lib
+ )
+ find_path(OSL_INCLUDE_DIR OSL/oslclosure.h PATHS ${CYCLES_OSL}/include)
+ find_program(OSL_COMPILER NAMES oslc PATHS ${CYCLES_OSL}/bin)
+
+ if(OSL_INCLUDE_DIR AND OSL_LIBRARIES AND OSL_COMPILER)
+ set(OSL_FOUND TRUE)
+ else()
+ message(STATUS "OSL not found")
+ set(WITH_CYCLES_OSL OFF)
+ endif()
endif()
if(WITH_CYCLES_EMBREE)
- windows_find_package(Embree)
- if(NOT EMBREE_FOUND)
- set(EMBREE_INCLUDE_DIRS ${LIBDIR}/embree/include)
- set(EMBREE_LIBRARIES
- optimized ${LIBDIR}/embree/lib/embree3.lib
- optimized ${LIBDIR}/embree/lib/embree_avx2.lib
- optimized ${LIBDIR}/embree/lib/embree_avx.lib
- optimized ${LIBDIR}/embree/lib/embree_sse42.lib
- optimized ${LIBDIR}/embree/lib/lexers.lib
- optimized ${LIBDIR}/embree/lib/math.lib
- optimized ${LIBDIR}/embree/lib/simd.lib
- optimized ${LIBDIR}/embree/lib/sys.lib
- optimized ${LIBDIR}/embree/lib/tasking.lib
-
- debug ${LIBDIR}/embree/lib/embree3_d.lib
- debug ${LIBDIR}/embree/lib/embree_avx2_d.lib
- debug ${LIBDIR}/embree/lib/embree_avx_d.lib
- debug ${LIBDIR}/embree/lib/embree_sse42_d.lib
- debug ${LIBDIR}/embree/lib/lexers_d.lib
- debug ${LIBDIR}/embree/lib/math_d.lib
- debug ${LIBDIR}/embree/lib/simd_d.lib
- debug ${LIBDIR}/embree/lib/sys_d.lib
- debug ${LIBDIR}/embree/lib/tasking_d.lib)
- endif()
+ windows_find_package(Embree)
+ if(NOT EMBREE_FOUND)
+ set(EMBREE_INCLUDE_DIRS ${LIBDIR}/embree/include)
+ set(EMBREE_LIBRARIES
+ optimized ${LIBDIR}/embree/lib/embree3.lib
+ optimized ${LIBDIR}/embree/lib/embree_avx2.lib
+ optimized ${LIBDIR}/embree/lib/embree_avx.lib
+ optimized ${LIBDIR}/embree/lib/embree_sse42.lib
+ optimized ${LIBDIR}/embree/lib/lexers.lib
+ optimized ${LIBDIR}/embree/lib/math.lib
+ optimized ${LIBDIR}/embree/lib/simd.lib
+ optimized ${LIBDIR}/embree/lib/sys.lib
+ optimized ${LIBDIR}/embree/lib/tasking.lib
+
+ debug ${LIBDIR}/embree/lib/embree3_d.lib
+ debug ${LIBDIR}/embree/lib/embree_avx2_d.lib
+ debug ${LIBDIR}/embree/lib/embree_avx_d.lib
+ debug ${LIBDIR}/embree/lib/embree_sse42_d.lib
+ debug ${LIBDIR}/embree/lib/lexers_d.lib
+ debug ${LIBDIR}/embree/lib/math_d.lib
+ debug ${LIBDIR}/embree/lib/simd_d.lib
+ debug ${LIBDIR}/embree/lib/sys_d.lib
+ debug ${LIBDIR}/embree/lib/tasking_d.lib)
+ endif()
endif()
if (WINDOWS_PYTHON_DEBUG)
- # Include the system scripts in the blender_python_system_scripts project.
- FILE(GLOB_RECURSE inFiles "${CMAKE_SOURCE_DIR}/release/scripts/*.*" )
- ADD_CUSTOM_TARGET(blender_python_system_scripts SOURCES ${inFiles})
- foreach(_source IN ITEMS ${inFiles})
- get_filename_component(_source_path "${_source}" PATH)
- string(REPLACE "${CMAKE_SOURCE_DIR}/release/scripts/" "" _source_path "${_source_path}")
- string(REPLACE "/" "\\" _group_path "${_source_path}")
- source_group("${_group_path}" FILES "${_source}")
- endforeach()
- # Include the user scripts from the profile folder in the blender_python_user_scripts project.
- set(USER_SCRIPTS_ROOT "$ENV{appdata}/blender foundation/blender/${BLENDER_VERSION}")
- file(TO_CMAKE_PATH ${USER_SCRIPTS_ROOT} USER_SCRIPTS_ROOT)
- FILE(GLOB_RECURSE inFiles "${USER_SCRIPTS_ROOT}/scripts/*.*" )
- ADD_CUSTOM_TARGET(blender_python_user_scripts SOURCES ${inFiles})
- foreach(_source IN ITEMS ${inFiles})
- get_filename_component(_source_path "${_source}" PATH)
- string(REPLACE "${USER_SCRIPTS_ROOT}/scripts" "" _source_path "${_source_path}")
- string(REPLACE "/" "\\" _group_path "${_source_path}")
- source_group("${_group_path}" FILES "${_source}")
- endforeach()
- set_target_properties(blender_python_system_scripts PROPERTIES FOLDER "scripts")
- set_target_properties(blender_python_user_scripts PROPERTIES FOLDER "scripts")
- # Set the default debugging options for the project, only write this file once so the user
- # is free to override them at their own perril.
- set(USER_PROPS_FILE "${CMAKE_CURRENT_BINARY_DIR}/source/creator/blender.Cpp.user.props")
- if(NOT EXISTS ${USER_PROPS_FILE})
- # Layout below is messy, because otherwise the generated file will look messy.
- file(WRITE ${USER_PROPS_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>
+ # Include the system scripts in the blender_python_system_scripts project.
+ FILE(GLOB_RECURSE inFiles "${CMAKE_SOURCE_DIR}/release/scripts/*.*" )
+ ADD_CUSTOM_TARGET(blender_python_system_scripts SOURCES ${inFiles})
+ foreach(_source IN ITEMS ${inFiles})
+ get_filename_component(_source_path "${_source}" PATH)
+ string(REPLACE "${CMAKE_SOURCE_DIR}/release/scripts/" "" _source_path "${_source_path}")
+ string(REPLACE "/" "\\" _group_path "${_source_path}")
+ source_group("${_group_path}" FILES "${_source}")
+ endforeach()
+ # Include the user scripts from the profile folder in the blender_python_user_scripts project.
+ set(USER_SCRIPTS_ROOT "$ENV{appdata}/blender foundation/blender/${BLENDER_VERSION}")
+ file(TO_CMAKE_PATH ${USER_SCRIPTS_ROOT} USER_SCRIPTS_ROOT)
+ FILE(GLOB_RECURSE inFiles "${USER_SCRIPTS_ROOT}/scripts/*.*" )
+ ADD_CUSTOM_TARGET(blender_python_user_scripts SOURCES ${inFiles})
+ foreach(_source IN ITEMS ${inFiles})
+ get_filename_component(_source_path "${_source}" PATH)
+ string(REPLACE "${USER_SCRIPTS_ROOT}/scripts" "" _source_path "${_source_path}")
+ string(REPLACE "/" "\\" _group_path "${_source_path}")
+ source_group("${_group_path}" FILES "${_source}")
+ endforeach()
+ set_target_properties(blender_python_system_scripts PROPERTIES FOLDER "scripts")
+ set_target_properties(blender_python_user_scripts PROPERTIES FOLDER "scripts")
+ # Set the default debugging options for the project, only write this file once so the user
+ # is free to override them at their own perril.
+ set(USER_PROPS_FILE "${CMAKE_CURRENT_BINARY_DIR}/source/creator/blender.Cpp.user.props")
+ if(NOT EXISTS ${USER_PROPS_FILE})
+ # Layout below is messy, because otherwise the generated file will look messy.
+ file(WRITE ${USER_PROPS_FILE} "<?xml version=\"1.0\" encoding=\"utf-8\"?>
<Project DefaultTargets=\"Build\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">
- <PropertyGroup>
- <LocalDebuggerCommandArguments>-con --env-system-scripts \"${CMAKE_SOURCE_DIR}/release/scripts\" </LocalDebuggerCommandArguments>
- </PropertyGroup>
+ <PropertyGroup>
+ <LocalDebuggerCommandArguments>-con --env-system-scripts \"${CMAKE_SOURCE_DIR}/release/scripts\" </LocalDebuggerCommandArguments>
+ </PropertyGroup>
</Project>")
- endif()
+ endif()
endif()