diff --git a/openvdb/CMakeLists.txt b/openvdb/CMakeLists.txt index 9404dbc..b4129e3 100644 --- a/openvdb/CMakeLists.txt +++ b/openvdb/CMakeLists.txt @@ -29,12 +29,13 @@ PROJECT ( OpenVDBCore ) set(CMAKE_CXX_STANDARD 11) +IF ( OPENVDB_BUILD_TOOLS ) IF ( USE_GLFW3 ) FIND_PACKAGE ( GLFW3 REQUIRED ) SET ( OPENVDB_USE_GLFW_FLAG "-DOPENVDB_USE_GLFW_3" ) IF ( UNIX AND NOT APPLE ) SET ( GLFW_DEPENDENT_LIBRARIES "X11;Xi;Xrandr;Xinerama;Xcursor;Xxf86vm" ) - ENDIF ( UNIX AND NOT APPLE ) + ENDIF () SET ( GLFW_LINK_LIBRARY ${GLFW3_glfw_LIBRARY} ) SET ( GLFW_INCLUDE_DIRECTORY ${GLFW3_INCLUDE_DIR} CACHE STRING "GLFW3 include directory") ELSE () @@ -45,12 +46,14 @@ ELSE () SET ( GLFW_LINK_LIBRARY ${GLFW_glfw_LIBRARY} ) SET ( GLFW_INCLUDE_DIRECTORY ${GLFW_INCLUDE_DIR} CACHE STRING "GLFW include directory") ENDIF () +ENDIF () -IF (WIN32) +IF ( OPENVDB_BUILD_TOOLS ) +IF ( WIN32 ) FIND_PACKAGE ( GLEW REQUIRED ) -ELSE () - FIND_PACKAGE ( Threads REQUIRED ) -ENDIF() +ENDIF () +ENDIF () +FIND_PACKAGE ( Threads REQUIRED ) # Determine OpenVDB version #define OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER 4 @@ -130,7 +133,12 @@ INCLUDE_DIRECTORIES ( SYSTEM ${BLOSC_INCLUDE_DIR} ) INCLUDE_DIRECTORIES ( SYSTEM ${CPPUNIT_INCLUDE_DIR} ) IF (WIN32) - ADD_DEFINITIONS ( -D_WIN32 -DNOMINMAX -DHALF_EXPORTS -DOPENVDB_DLL ) + ADD_DEFINITIONS ( -D__TBB_NO_IMPLICIT_LINKAGE ) + ADD_DEFINITIONS ( -D__TBBMALLOC_NO_IMPLICIT_LINKAGE ) + ADD_DEFINITIONS ( -D_WIN32 -DNOMINMAX ) + IF ( OPENVDB_SHARED ) + ADD_DEFINITIONS ( -DOPENEXR_DLL -DOPENVDB_DLL ) + ENDIF () ELSE () ADD_DEFINITIONS ( -pthread -fPIC ) ENDIF () @@ -170,16 +178,21 @@ SET ( OPENVDB_LIBRARY_SOURCE_FILES SET_SOURCE_FILES_PROPERTIES ( ${OPENVDB_LIBRARY_SOURCE_FILES} PROPERTIES - COMPILE_FLAGS "-DOPENVDB_PRIVATE -DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}" + COMPILE_FLAGS "-DOPENVDB_PRIVATE -DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} $<$:/bigobj>" ) +IF ( OPENVDB_STATIC ) ADD_LIBRARY ( openvdb_static STATIC ${OPENVDB_LIBRARY_SOURCE_FILES} ) +ENDIF () +IF ( OPENVDB_SHARED ) ADD_LIBRARY ( openvdb_shared SHARED ${OPENVDB_LIBRARY_SOURCE_FILES} ) +ENDIF () +IF ( OPENVDB_STATIC ) TARGET_LINK_LIBRARIES ( openvdb_static ${Boost_IOSTREAMS_LIBRARY} ${Boost_SYSTEM_LIBRARY} @@ -188,6 +201,8 @@ TARGET_LINK_LIBRARIES ( openvdb_static ${ZLIB_LIBRARY} ${BLOSC_blosc_LIBRARY} ) +ENDIF () +IF ( OPENVDB_SHARED ) TARGET_LINK_LIBRARIES ( openvdb_shared ${Boost_IOSTREAMS_LIBRARY} ${Boost_SYSTEM_LIBRARY} @@ -196,7 +211,9 @@ TARGET_LINK_LIBRARIES ( openvdb_shared ${ZLIB_LIBRARY} ${BLOSC_blosc_LIBRARY} ) +ENDIF () +IF ( OPENVDB_STATIC ) IF (WIN32) SET_TARGET_PROPERTIES ( openvdb_static PROPERTIES OUTPUT_NAME libopenvdb @@ -205,8 +222,10 @@ ELSE() SET_TARGET_PROPERTIES ( openvdb_static PROPERTIES OUTPUT_NAME openvdb ) -ENDIF() +ENDIF () +ENDIF () +IF ( OPENVDB_SHARED ) SET_TARGET_PROPERTIES( openvdb_shared PROPERTIES @@ -214,13 +233,15 @@ SET_TARGET_PROPERTIES( SOVERSION ${OPENVDB_MAJOR_VERSION_NUMBER}.${OPENVDB_MINOR_VERSION_NUMBER} VERSION ${OPENVDB_MAJOR_VERSION_NUMBER}.${OPENVDB_MINOR_VERSION_NUMBER}.${OPENVDB_PATCH_VERSION_NUMBER} ) +ENDIF () SET ( VDB_PRINT_SOURCE_FILES cmd/openvdb_print/main.cc ) SET_SOURCE_FILES_PROPERTIES ( ${VDB_PRINT_SOURCE_FILES} PROPERTIES - COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}" + COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} $<$:/bigobj>" ) +IF ( OPENVDB_BUILD_TOOLS ) ADD_EXECUTABLE ( vdb_print ${VDB_PRINT_SOURCE_FILES} ) @@ -236,7 +257,7 @@ TARGET_LINK_LIBRARIES ( vdb_print SET ( VDB_RENDER_SOURCE_FILES cmd/openvdb_render/main.cc ) SET_SOURCE_FILES_PROPERTIES ( ${VDB_RENDER_SOURCE_FILES} PROPERTIES - COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG}" + COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} $<$:/bigobj>" ) ADD_EXECUTABLE ( vdb_render ${VDB_RENDER_SOURCE_FILES} @@ -263,31 +284,40 @@ SET ( VDB_VIEW_SOURCE_FILES ) SET_SOURCE_FILES_PROPERTIES ( ${VDB_VIEW_SOURCE_FILES} PROPERTIES - COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} -DGL_GLEXT_PROTOTYPES=1" + COMPILE_FLAGS "-DOPENVDB_USE_BLOSC ${OPENVDB_USE_GLFW_FLAG} -DGL_GLEXT_PROTOTYPES=1 $<$:/bigobj>" ) -IF (NOT WIN32) + ADD_EXECUTABLE ( vdb_view ${VDB_VIEW_SOURCE_FILES} ) - + target_include_directories ( vdb_view SYSTEM PRIVATE ${Boost_INCLUDE_DIR} ) TARGET_LINK_LIBRARIES ( vdb_view openvdb_shared - ${Boost_THREAD_LIBRARY} + ${Boost_LIBRARIES} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} - ${COCOA_LIBRARY} - ${IOKIT_LIBRARY} - ${COREVIDEO_LIBRARY} ${GLFW_LINK_LIBRARY} ${GLFW_DEPENDENT_LIBRARIES} ${GLEW_GLEW_LIBRARY} + ) + IF (APPLE) + TARGET_LINK_LIBRARIES ( vdb_view + ${COCOA_LIBRARY} + ${IOKIT_LIBRARY} + ${COREVIDEO_LIBRARY} + ) + ENDIF () + IF (NOT WIN32) + TARGET_LINK_LIBRARIES ( vdb_view m stdc++ - ) + ) + ENDIF () ENDIF () + SET ( UNITTEST_SOURCE_FILES unittest/main.cc unittest/TestAttributeArray.cc @@ -398,7 +428,7 @@ IF ( OPENVDB_BUILD_UNITTESTS ) ADD_TEST ( vdb_unit_test vdb_test ) -ENDIF (OPENVDB_BUILD_UNITTESTS) +ENDIF () # Doxygen docmentation IF (OPENVDB_BUILD_DOCS) @@ -419,26 +449,29 @@ IF (OPENVDB_BUILD_DOCS) ENDIF () # Installation -IF ( NOT WIN32 ) +IF ( OPENVDB_BUILD_TOOLS ) INSTALL ( TARGETS vdb_view DESTINATION bin ) -ENDIF () INSTALL ( TARGETS vdb_print vdb_render DESTINATION bin ) +ENDIF () +IF ( OPENVDB_STATIC) INSTALL ( TARGETS openvdb_static DESTINATION lib ) +ENDIF () +IF ( OPENVDB_SHARED ) IF (WIN32) INSTALL ( TARGETS openvdb_shared @@ -452,6 +485,7 @@ ELSE() lib ) ENDIF () +ENDIF () INSTALL ( DIRECTORY ${PROJECT_SOURCE_DIR} DESTINATION include FILES_MATCHING PATTERN "*.h"