Documente Academic
Documente Profesional
Documente Cultură
include(CMakeParseArguments)
if (MSVC)
# Windows-specific build flags
include_directories(ext/glew/include)
set(extra_libs opengl32 glew)
set(extra_libs ${extra_libs}
$<$<CONFIG:Debug>:zlibstaticd>
$<$<CONFIG:RelWithDebInfo>:zlibstatic>
$<$<CONFIG:Release>:zlibstatic>
$<$<CONFIG:MinSizeRel>:zlibstatic>
)
# Statically link against the C++ runtime library, also apply these settings to
nested projects
set(CompilerFlags
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
foreach(CompilerFlag ${CompilerFlags})
string(REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}")
string(REPLACE "/MDd" "/MTd" ${CompilerFlag} "${${CompilerFlag}}")
set(CMAKE_EXTERNAL_ARGUMENTS ${CMAKE_EXTERNAL_ARGUMENTS} -D$
{CompilerFlag}:INTERNAL=${${CompilerFlag}})
endforeach()
elseif(APPLE)
# OSX-specific build flags
# Find standard libraries needed for OpenGL/GLFW
find_library(cocoa_library Cocoa)
find_library(opengl_library OpenGL)
find_library(corevideo_library CoreVideo)
find_library(iokit_library IOKit)
set(extra_libs tbb ${cocoa_library} ${opengl_library} ${corevideo_library} $
{iokit_library} z)
if(WIN32)
# Build zlib (only needed on Windows, Linux/OSX already have it)
ExternalProject_Add(zlib_p
URL "${CMAKE_SOURCE_DIR}/ext/zlib"
PREFIX "ext_build"
CMAKE_ARGS ${CMAKE_EXTERNAL_ARGUMENTS}
)
endif(WIN32)
# Build OpenEXR
ExternalProject_Add(OpenEXR_p
URL "${CMAKE_SOURCE_DIR}/ext/openexr/OpenEXR"
PREFIX "ext_build"
CMAKE_ARGS ${CMAKE_EXTERNAL_ARGUMENTS} -DILMBASE_PACKAGE_PREFIX=$
{CMAKE_BINARY_DIR}/ext_build/dist -DBUILD_SHARED_LIBS=OFF -DNAMESPACE_VERSIONING=NO
)
# Build nanogui
ExternalProject_Add(nanogui_p
URL "${CMAKE_SOURCE_DIR}/ext/nanogui"
PREFIX "ext_build"
CMAKE_ARGS ${CMAKE_EXTERNAL_ARGUMENTS}
)