[Bf-blender-cvs] [199cf442fba] temp-precompiled-linux: CMake: Linux, Hard-code all paths to pre-compiled libraries
Sergey Sharybin
noreply at git.blender.org
Tue Feb 4 18:46:56 CET 2020
Commit: 199cf442fbaf6d46756070aab8562fb6dcf7a516
Author: Sergey Sharybin
Date: Tue Feb 4 18:14:02 2020 +0100
Branches: temp-precompiled-linux
https://developer.blender.org/rB199cf442fbaf6d46756070aab8562fb6dcf7a516
CMake: Linux, Hard-code all paths to pre-compiled libraries
Due to lack of standard in how FindFOO modules work, and, possibly, how
CMake's find helpers work as well, it was possible that system-wide
libraries are used.
This change ensures that all libraries are used from their pre-compiled
location.
===================================================================
M build_files/cmake/platform/platform_unix.cmake
A build_files/cmake/platform/platform_unix_package.cmake
A build_files/cmake/platform/platform_unix_precompiled.cmake
===================================================================
diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake
index e09287f05d9..1dddc208aa1 100644
--- a/build_files/cmake/platform/platform_unix.cmake
+++ b/build_files/cmake/platform/platform_unix.cmake
@@ -43,26 +43,6 @@ if(NOT DEFINED LIBDIR)
unset(LIBDIR_CENTOS7_ABI)
endif()
-if(EXISTS ${LIBDIR})
- message(STATUS "Using pre-compiled LIBDIR: ${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)
- set(Boost_NO_BOOST_CMAKE ON)
- set(BOOST_ROOT ${LIBDIR}/boost)
- set(BOOST_LIBRARYDIR ${LIBDIR}/boost/lib)
- set(Boost_NO_SYSTEM_PATHS ON)
-endif()
-
-if(WITH_STATIC_LIBS)
- 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)
@@ -72,391 +52,19 @@ macro(find_package_wrapper)
endif()
endmacro()
-find_package_wrapper(JPEG REQUIRED)
-find_package_wrapper(PNG REQUIRED)
-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()
-endif()
-
-if(WITH_SYSTEM_EIGEN3)
- 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)
-
- # 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()
-endif()
-
-if(WITH_IMAGE_OPENJPEG)
- 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()
-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()
-endif()
-
-if(WITH_OPENAL)
- 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()
-endif()
-
-if(WITH_JACK)
- 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 SNDFILE_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()
-
- 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
-
- 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()
-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()
-endif()
-
-if(WITH_MEM_JEMALLOC)
- 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()
-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()
-endif()
-
-if(WITH_OPENVDB)
- find_package_wrapper(OpenVDB)
- find_package_wrapper(Blosc)
- if(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)
-
- 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()
-endif()
-
-if(WITH_USD)
- find_package_wrapper(USD)
-
- if(NOT USD_FOUND)
- set(WITH_USD 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")
-
- if(Boost_USE_STATIC_LIBS AND WITH_BOOST_ICU)
- find_package(IcuLinux)
- list(APPEND BOOST_LIBRARIES ${ICU_LIBRARIES})
- endif()
-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()
-endif()
-
-if(WITH_OPENCOLORIO)
- find_package_wrapper(OpenColorIO)
-
- 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()
-endif()
-
-if(WITH_CYCLES_EMBREE)
- find_package(Embree 3.2.4 REQUIRED)
-endif()
-
-if(WITH_OPENIMAGEDENOISE)
- find_package_wrapper(OpenImageDenoise)
-
- if(NOT OPENIMAGEDENOISE_FOUND)
- set(WITH_OP
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list