Merge branch 'blender2.7'
This commit is contained in:
commit
94d88df3a8
|
@ -1122,7 +1122,10 @@ endif()
|
|||
#-----------------------------------------------------------------------------
|
||||
# Configure OpenMP.
|
||||
if(WITH_OPENMP)
|
||||
find_package(OpenMP)
|
||||
if(NOT OPENMP_CUSTOM)
|
||||
find_package(OpenMP)
|
||||
endif()
|
||||
|
||||
if(OPENMP_FOUND)
|
||||
if(NOT WITH_OPENMP_STATIC)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||
|
|
|
@ -131,6 +131,10 @@ harvest(lame/lib ffmpeg/lib "*.a")
|
|||
harvest(clang/bin llvm/bin "clang-format")
|
||||
harvest(llvm/bin llvm/bin "llvm-config")
|
||||
harvest(llvm/lib llvm/lib "libLLVM*.a")
|
||||
if(APPLE)
|
||||
harvest(openmp/lib openmp/lib "*")
|
||||
harvest(openmp/include openmp/include "*.h")
|
||||
endif()
|
||||
harvest(ogg/lib ffmpeg/lib "*.a")
|
||||
harvest(openal/include openal/include "*.h")
|
||||
if(UNIX AND NOT APPLE)
|
||||
|
|
|
@ -23,7 +23,8 @@ ExternalProject_Add(external_openmp
|
|||
URL_HASH MD5=${OPENMP_HASH}
|
||||
PREFIX ${BUILD_DIR}/openmp
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openmp ${DEFAULT_CMAKE_FLAGS}
|
||||
INSTALL_DIR ${LIBDIR}/clang
|
||||
INSTALL_COMMAND cd ${BUILD_DIR}/openmp/src/external_openmp-build && install_name_tool -id '@executable_path/../Resources/lib/libomp.dylib' runtime/src/libomp.dylib && make install
|
||||
INSTALL_PATH ${LIBDIR}/openmp
|
||||
)
|
||||
|
||||
add_dependencies(
|
||||
|
|
|
@ -385,13 +385,22 @@ if(WITH_CYCLES_EMBREE)
|
|||
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)
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} --version OUTPUT_VARIABLE COMPILER_VENDOR)
|
||||
string(SUBSTRING "${COMPILER_VENDOR}" 0 5 VENDOR_NAME) # truncate output
|
||||
if(${VENDOR_NAME} MATCHES "Apple") # Apple does not support OpenMP reliable with gcc and not with clang
|
||||
set(WITH_OPENMP OFF)
|
||||
else() # vanilla gcc or clang_omp support OpenMP
|
||||
message(STATUS "Using special OpenMP enabled compiler !") # letting find_package(OpenMP) module work for gcc
|
||||
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.
|
||||
execute_process(
|
||||
COMMAND mkdir -p ${CMAKE_BINARY_DIR}/Resources/lib
|
||||
COMMAND cp -p ${LIBDIR}/openmp/lib/libomp.dylib ${CMAKE_BINARY_DIR}/Resources/lib/libomp.dylib
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ protected:
|
|||
virtual BVHNode *widen_children_nodes(const BVHNode *root) override;
|
||||
|
||||
/* pack */
|
||||
void pack_nodes(const BVHNode *root);
|
||||
void pack_nodes(const BVHNode *root) override;
|
||||
|
||||
void pack_leaf(const BVHStackEntry& e,
|
||||
const LeafNode *leaf);
|
||||
|
@ -81,7 +81,7 @@ protected:
|
|||
uint visibility0, uint visibility1);
|
||||
|
||||
/* refit */
|
||||
void refit_nodes();
|
||||
void refit_nodes() override;
|
||||
void refit_node(int idx, bool leaf, BoundBox& bbox, uint& visibility);
|
||||
};
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ protected:
|
|||
virtual BVHNode *widen_children_nodes(const BVHNode *root) override;
|
||||
|
||||
/* pack */
|
||||
void pack_nodes(const BVHNode *root);
|
||||
void pack_nodes(const BVHNode *root) override;
|
||||
|
||||
void pack_leaf(const BVHStackEntry& e, const LeafNode *leaf);
|
||||
void pack_inner(const BVHStackEntry& e, const BVHStackEntry *en, int num);
|
||||
|
@ -81,7 +81,7 @@ protected:
|
|||
const int num);
|
||||
|
||||
/* refit */
|
||||
void refit_nodes();
|
||||
void refit_nodes() override;
|
||||
void refit_node(int idx, bool leaf, BoundBox& bbox, uint& visibility);
|
||||
};
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ protected:
|
|||
virtual BVHNode *widen_children_nodes(const BVHNode *root) override;
|
||||
|
||||
/* pack */
|
||||
void pack_nodes(const BVHNode *root);
|
||||
void pack_nodes(const BVHNode *root) override;
|
||||
|
||||
void pack_leaf(const BVHStackEntry& e, const LeafNode *leaf);
|
||||
void pack_inner(const BVHStackEntry& e, const BVHStackEntry *en, int num);
|
||||
|
@ -92,7 +92,7 @@ protected:
|
|||
const int num);
|
||||
|
||||
/* refit */
|
||||
void refit_nodes();
|
||||
void refit_nodes() override;
|
||||
void refit_node(int idx, bool leaf, BoundBox& bbox, uint& visibility);
|
||||
};
|
||||
|
||||
|
|
|
@ -203,7 +203,6 @@ struct ImBuf *imb_load_photoshop(const char *filename, int flags, char colorspac
|
|||
struct ImBuf *ibuf = NULL;
|
||||
int width, height, components;
|
||||
bool is_float, is_alpha;
|
||||
TypeDesc typedesc;
|
||||
int basesize;
|
||||
char file_colorspace[IM_MAX_SPACE];
|
||||
|
||||
|
|
|
@ -908,6 +908,13 @@ elseif(APPLE)
|
|||
blender.app/Contents/
|
||||
)
|
||||
|
||||
if(WITH_OPENMP AND OPENMP_CUSTOM)
|
||||
install(
|
||||
FILES ${LIBDIR}/openmp/lib/libomp.dylib
|
||||
DESTINATION blender.app/Contents/Resources/lib
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_LLVM AND NOT LLVM_STATIC)
|
||||
install(
|
||||
FILES ${LIBDIR}/llvm/lib/libLLVM-3.4.dylib
|
||||
|
|
Loading…
Reference in New Issue