diff options
Diffstat (limited to 'intern/cycles/app/CMakeLists.txt')
-rw-r--r-- | intern/cycles/app/CMakeLists.txt | 76 |
1 files changed, 60 insertions, 16 deletions
diff --git a/intern/cycles/app/CMakeLists.txt b/intern/cycles/app/CMakeLists.txt index c8464899725..f6a6f96280f 100644 --- a/intern/cycles/app/CMakeLists.txt +++ b/intern/cycles/app/CMakeLists.txt @@ -12,6 +12,8 @@ set(INC set(INC_SYS ) +# NOTE: LIBRARIES contains all the libraries which are common +# across release and debug build types, stored in a linking order. set(LIBRARIES cycles_device cycles_kernel @@ -19,39 +21,83 @@ set(LIBRARIES cycles_bvh cycles_subd cycles_util - ${BOOST_LIBRARIES} - ${OPENEXR_LIBRARIES} ${BLENDER_GL_LIBRARIES} - bf_intern_glew_mx ${CYCLES_APP_GLEW_LIBRARY} - ${OPENIMAGEIO_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${ZLIB_LIBRARIES} ${TIFF_LIBRARY} + ${PTHREADS_LIBRARIES} extern_clew extern_cuew ) -add_definitions(${GL_DEFINITIONS}) - -if(WIN32) - list(APPEND LIBRARIES ${PTHREADS_LIBRARIES}) +if(WITH_CYCLES_OSL) + list(APPEND LIBRARIES cycles_kernel_osl) endif() -link_directories(${OPENIMAGEIO_LIBPATH} ${BOOST_LIBPATH} ${PNG_LIBPATH} ${JPEG_LIBPATH} ${ZLIB_LIBPATH} ${TIFF_LIBPATH}) +if(CYCLES_STANDALONE_REPOSITORY) + if(WITH_CYCLES_LOGGING) + list(APPEND LIBRARIES + ${GLOG_LIBRARIES} + ${GFLAGS_LIBRARIES} + ) + endif() +else() + list(APPEND LIBRARIES bf_intern_glew_mx) + list(APPEND LIBRARIES extern_glog) +endif() if(WITH_CYCLES_STANDALONE AND WITH_CYCLES_STANDALONE_GUI) list(APPEND LIBRARIES ${GLUT_LIBRARIES}) endif() -if(WITH_CYCLES_OSL) - list(APPEND LIBRARIES cycles_kernel_osl ${OSL_LIBRARIES} ${LLVM_LIBRARY}) -endif() +# Common configuration. + +link_directories(${OPENIMAGEIO_LIBPATH} + ${BOOST_LIBPATH} + ${PNG_LIBPATH} + ${JPEG_LIBPATH} + ${ZLIB_LIBPATH} + ${TIFF_LIBPATH} + ${OPENEXR_LIBPATH}) + +add_definitions(${GL_DEFINITIONS}) include_directories(${INC}) include_directories(SYSTEM ${INC_SYS}) +# Make sure given target is linked against proper libraries +# which varies across debug and release build types. +# +# This will also make sure dependencies of that libraries +# are sent to the linker after them. +# +# TODO(sergey): Think of a better place for this? +macro(cycles_target_link_libraries target) + target_link_libraries(${target} ${LIBRARIES}) + if(WITH_CYCLES_OSL) + target_link_libraries_decoupled(${target} OSL_LIBRARIES) + if(MSVC) + target_link_libraries_debug(${target} "${LLVM_LIBRARIES_DEBUG}") + target_link_libraries_optimized(${target} "${LLVM_LIBRARIES}") + else() + target_link_libraries(${target} ${LLVM_LIBRARIES}) + endif() + endif() + target_link_libraries_decoupled(${target} OPENIMAGEIO_LIBRARIES) + target_link_libraries_decoupled(${target} OPENEXR_LIBRARIES) + target_link_libraries( + ${target} + ${PUGIXML_LIBRARIES} + ${BOOST_LIBRARIES} + ${CMAKE_DL_LIBS} + ${PLATFORM_LINKLIBS} + ) +endmacro() + +# Application build targets + if(WITH_CYCLES_STANDALONE) set(SRC cycles_standalone.cpp @@ -59,8 +105,7 @@ if(WITH_CYCLES_STANDALONE) cycles_xml.h ) add_executable(cycles ${SRC}) - list(APPEND LIBRARIES ${PLATFORM_LINKLIBS}) - target_link_libraries(cycles ${LIBRARIES} ${CMAKE_DL_LIBS}) + cycles_target_link_libraries(cycles) if(UNIX AND NOT APPLE) set_target_properties(cycles PROPERTIES INSTALL_RPATH $ORIGIN/lib) @@ -73,11 +118,10 @@ if(WITH_CYCLES_NETWORK) cycles_server.cpp ) add_executable(cycles_server ${SRC}) - target_link_libraries(cycles_server ${LIBRARIES} ${CMAKE_DL_LIBS}) + cycles_target_link_libraries(cycles_server) if(UNIX AND NOT APPLE) set_target_properties(cycles_server PROPERTIES INSTALL_RPATH $ORIGIN/lib) endif() unset(SRC) endif() - |