diff --git a/CMakeLists.txt b/CMakeLists.txt index e4f3119..9eb6d07 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,14 +1,16 @@ +cmake_minimum_required(VERSION 2.8) project(OpenColorIO) set(OCIO_VERSION_MAJOR 1) set(OCIO_VERSION_MINOR 1) set(OCIO_VERSION_PATCH 1) -cmake_minimum_required(VERSION 2.8) -set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/share/cmake) +list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/share/cmake) if(NOT DEFINED CMAKE_FIRST_RUN) SET(CMAKE_FIRST_RUN 1 CACHE INTERNAL "") endif() +set(CMAKE_CXX_STANDARD 11) + ############################################################################### ### GLOBAL ### @@ -142,11 +144,11 @@ endif(CMAKE_COMPILER_IS_GNUCXX) ############################################################################### ### Python ### -OCIOFindPython() +#OCIOFindPython() # Find Python, used for (possibly) building pyglue, and now to # construct the external project path -set(EXTDIST_ROOT ${CMAKE_BINARY_DIR}/ext/dist) +set(EXTDIST_ROOT ${PROJECT_BINARY_DIR}/ext/dist) set(EXTDIST_BINPATH ${EXTDIST_ROOT}/bin) if(PYTHON_OK) set(EXTDIST_PYTHONPATH ${EXTDIST_ROOT}/${PYTHON_VARIANT_PATH}) @@ -170,7 +172,12 @@ messageonce("Setting EXTDIST_PYTHONPATH: ${EXTDIST_PYTHONPATH}") if(USE_EXTERNAL_TINYXML) set(TINYXML_VERSION_MIN "2.6.1") - find_package(TinyXML) + find_package(TinyXML REQUIRED) + set(TINYXML_FOUND ${TinyXML_FOUND}) + set(TINYXML_LIBRARIES tinyxml::tinyxml) + set(TINYXML_VERSION "${TinyXML_VERSION}") + list(APPEND EXTERNAL_LIBRARIES ${TINYXML_LIBRARIES}) + if(TINYXML_FOUND) if(TINYXML_VERSION VERSION_EQUAL ${TINYXML_VERSION_MIN} OR TINYXML_VERSION VERSION_GREATER ${TINYXML_VERSION_MIN}) @@ -251,6 +258,13 @@ endif(USE_EXTERNAL_TINYXML) if(USE_EXTERNAL_YAML) # Set minimum yaml version for non-patched sources. set(YAML_VERSION_MIN "0.3.0") + find_package(yaml-cpp REQUIRED) + set(YAML_CPP_INCLUDE_DIRS "${CONAN_INCLUDE_DIRS_YAML-CPP}") + set(YAML_CPP_LIBRARIES yaml-cpp) + set(YAML_CPP_VERSION "${yaml-cpp_VERSION}") + list(APPEND EXTERNAL_LIBRARIES ${YAML_CPP_LIBRARIES}) + + if(0) include(FindPkgConfig) pkg_check_modules(PC_YAML_CPP REQUIRED QUIET yaml-cpp) find_path(YAML_CPP_INCLUDE_DIR yaml-cpp/yaml.h @@ -293,6 +307,7 @@ if(USE_EXTERNAL_YAML) else(YAML_CPP_FOUND) message(FATAL_ERROR "ERROR: System yaml-cpp library was not found. Make sure the library is installed and the pkg-config file exists.") endif(YAML_CPP_FOUND) + endif() else(USE_EXTERNAL_YAML) ## provide 2 ways to build this dependency set(YAML_CPP_VERSION 0.3.0) set(YAML_CPP_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/ext/dist -DYAML_CPP_BUILD_TOOLS:BOOL=FALSE -DOCIO_INLINES_HIDDEN:BOOL=${OCIO_INLINES_HIDDEN}) @@ -384,7 +399,7 @@ else() set(OCIO_INLINES_HIDDEN OFF) endif() -set(EXTERNAL_COMPILE_FLAGS "-DTIXML_USE_STL ${YAML_CPP_COMPILE_FLAGS} ${GCC_COMPILE_FLAGS}") +set(EXTERNAL_COMPILE_FLAGS "${YAML_CPP_COMPILE_FLAGS} ${GCC_COMPILE_FLAGS}") set(EXTERNAL_LINK_FLAGS "") set(EXTERNAL_LIBRARY_DIRS ${PROJECT_BINARY_DIR}/ext/dist/lib) @@ -460,7 +475,7 @@ endif() if(OCIO_BUILD_APPS AND (OCIO_BUILD_STATIC OR OCIO_BUILD_SHARED) ) # Try to find OpenImageIO (OIIO) and OpenGL stuff - OCIOFindOpenImageIO() + #OCIOFindOpenImageIO() if(OIIO_FOUND) add_subdirectory(src/apps/ocioconvert) @@ -528,7 +543,7 @@ endif() ############################################################################### ### Configure env script ### -configure_file(${CMAKE_SOURCE_DIR}/share/ocio/setup_ocio.sh.in +configure_file(${PROJECT_SOURCE_DIR}/share/ocio/setup_ocio.sh.in ${CMAKE_CURRENT_BINARY_DIR}/share/ocio/setup_ocio.sh @ONLY) INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/share/ocio/setup_ocio.sh DESTINATION share/ocio/) @@ -597,7 +612,7 @@ if(TARGET OpenColorIO_STATIC) endif() endif() install(EXPORT OpenColorIO DESTINATION cmake) -file(WRITE "${CMAKE_BINARY_DIR}/OpenColorIOConfig.cmake" +file(WRITE "${PROJECT_BINARY_DIR}/OpenColorIOConfig.cmake" " get_filename_component(OpenColorIO_DIR \"\${CMAKE_CURRENT_LIST_FILE}\" PATH) @@ -646,4 +661,4 @@ file(WRITE "${CMAKE_BINARY_DIR}/OpenColorIOConfig.cmake" message(STATUS OPENCOLORIO_FOUND=\${OPENCOLORIO_FOUND}) " ) -install(FILES "${CMAKE_BINARY_DIR}/OpenColorIOConfig.cmake" DESTINATION .) +install(FILES "${PROJECT_BINARY_DIR}/OpenColorIOConfig.cmake" DESTINATION .) diff --git a/share/cmake/OCIOMacros.cmake b/share/cmake/OCIOMacros.cmake index b9fb239..b1a206e 100644 --- a/share/cmake/OCIOMacros.cmake +++ b/share/cmake/OCIOMacros.cmake @@ -356,9 +356,9 @@ ENDMACRO() MACRO(ExtractRstCPP INFILE OUTFILE) add_custom_command( - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} OUTPUT ${OUTFILE} - COMMAND ${PYTHON} ${CMAKE_SOURCE_DIR}/share/sphinx/ExtractRstFromSourceCPP.py ${INFILE} ${OUTFILE} + COMMAND ${PYTHON} ${PROJECT_SOURCE_DIR}/share/sphinx/ExtractRstFromSourceCPP.py ${INFILE} ${OUTFILE} DEPENDS ${INFILE} COMMENT "Extracting reStructuredText from ${INFILE} (using old process)" ) @@ -366,9 +366,9 @@ ENDMACRO() MACRO(ExtractRstSimple INFILE OUTFILE) add_custom_command( - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + WORKING_DIRECTORY ${PROJECT_BINARY_DIR} OUTPUT ${OUTFILE} - COMMAND ${PYTHON} ${CMAKE_SOURCE_DIR}/share/sphinx/ExtractRstFromSourceSimple.py ${INFILE} ${OUTFILE} + COMMAND ${PYTHON} ${PROJECT_SOURCE_DIR}/share/sphinx/ExtractRstFromSourceSimple.py ${INFILE} ${OUTFILE} DEPENDS ${INFILE} COMMENT "Extracting reStructuredText from ${INFILE}" ) diff --git a/src/apps/ociobakelut/CMakeLists.txt b/src/apps/ociobakelut/CMakeLists.txt index d31b4e3..4aa1efb 100644 --- a/src/apps/ociobakelut/CMakeLists.txt +++ b/src/apps/ociobakelut/CMakeLists.txt @@ -1,6 +1,10 @@ # LCMS -include(FindPkgConfig FindPackageMessage) -pkg_check_modules(LCMS QUIET lcms2) +find_package(lcms REQUIRED) +set(LCMS_FOUND ${lcms_FOUND}) +set(LCMS_VERSION ${lcms_VERSION}) +set(LCMS_LIBRARIES ${lcms_LIBRARIES}) +set(LCMS_INCLUDE_DIR ${lcms_INCLUDE_DIR}) + if(LCMS_FOUND AND (LCMS_VERSION VERSION_EQUAL 2.1 OR LCMS_VERSION VERSION_GREATER 2.1)) FIND_PACKAGE_MESSAGE(LCMS "Found lcms: ${LCMS_LIBRARIES}" "${LCMS_INCLUDE_DIR}") @@ -29,12 +33,12 @@ else() set(LCMS_LIBRARIES ${PROJECT_BINARY_DIR}/ext/dist/lib/${CMAKE_STATIC_LIBRARY_PREFIX}lcms2${CMAKE_STATIC_LIBRARY_SUFFIX}) endif() -file(GLOB_RECURSE share_src_files "${CMAKE_SOURCE_DIR}/src/apps/share/*.cpp") +file(GLOB_RECURSE share_src_files "${PROJECT_SOURCE_DIR}/src/apps/share/*.cpp") include_directories( - ${CMAKE_SOURCE_DIR}/export/ - ${CMAKE_BINARY_DIR}/export/ - ${CMAKE_SOURCE_DIR}/src/apps/share/ + ${PROJECT_SOURCE_DIR}/export/ + ${PROJECT_BINARY_DIR}/export/ + ${PROJECT_SOURCE_DIR}/src/apps/share/ ${LCMS_INCLUDE_DIRS} ${Boost_INCLUDE_DIR} ) diff --git a/src/apps/ociocheck/CMakeLists.txt b/src/apps/ociocheck/CMakeLists.txt index 4955f4d..14b5017 100644 --- a/src/apps/ociocheck/CMakeLists.txt +++ b/src/apps/ociocheck/CMakeLists.txt @@ -1,9 +1,9 @@ -file(GLOB_RECURSE share_src_files "${CMAKE_SOURCE_DIR}/src/apps/share/*.cpp") +file(GLOB_RECURSE share_src_files "${PROJECT_SOURCE_DIR}/src/apps/share/*.cpp") include_directories( - ${CMAKE_SOURCE_DIR}/export/ - ${CMAKE_BINARY_DIR}/export/ - ${CMAKE_SOURCE_DIR}/src/apps/share/ + ${PROJECT_SOURCE_DIR}/export/ + ${PROJECT_BINARY_DIR}/export/ + ${PROJECT_SOURCE_DIR}/src/apps/share/ ${Boost_INCLUDE_DIR} ) diff --git a/src/core/CDLTransform.cpp b/src/core/CDLTransform.cpp index 8b05deb..a7d6031 100644 --- a/src/core/CDLTransform.cpp +++ b/src/core/CDLTransform.cpp @@ -126,7 +126,11 @@ OCIO_NAMESPACE_ENTER TiXmlPrinter printer; printer.SetStreamPrinting(); doc.Accept( &printer ); - return printer.Str(); + #ifdef TIXML_USE_STL + return printer.Str(); + #else + return printer.CStr(); + #endif } } diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 1eb691b..a2f099a 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -2,29 +2,29 @@ ### OCIO CORE ### include_directories( - ${CMAKE_SOURCE_DIR}/export/ - ${CMAKE_BINARY_DIR}/export/ - ${CMAKE_SOURCE_DIR}/ext/oiio/src/include + ${PROJECT_SOURCE_DIR}/export/ + ${PROJECT_BINARY_DIR}/export/ + ${PROJECT_SOURCE_DIR}/ext/oiio/src/include ${EXTERNAL_INCLUDE_DIRS} ) -file(GLOB_RECURSE core_src_files "${CMAKE_SOURCE_DIR}/src/core/*.cpp") -file(GLOB_RECURSE core_export_headers "${CMAKE_SOURCE_DIR}/export/OpenColorIO/*.h") +file(GLOB_RECURSE core_src_files "${PROJECT_SOURCE_DIR}/src/core/*.cpp") +file(GLOB_RECURSE core_export_headers "${PROJECT_SOURCE_DIR}/export/OpenColorIO/*.h") message(STATUS "Create OpenColorABI.h from OpenColorABI.h.in") -configure_file(${CMAKE_SOURCE_DIR}/export/OpenColorIO/OpenColorABI.h.in - ${CMAKE_BINARY_DIR}/export/OpenColorABI.h @ONLY) -list(APPEND core_export_headers ${CMAKE_BINARY_DIR}/export/OpenColorABI.h) +configure_file(${PROJECT_SOURCE_DIR}/export/OpenColorIO/OpenColorABI.h.in + ${PROJECT_BINARY_DIR}/export/OpenColorABI.h @ONLY) +list(APPEND core_export_headers ${PROJECT_BINARY_DIR}/export/OpenColorABI.h) # Process all warnings as errors if(WIN32) # On debug mode there are other kinds of warning... if("${CMAKE_BUILD_TYPE}" STREQUAL "Release") - set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} /WX") + # set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} /WX") endif() else() - set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} -Werror") + # set(EXTERNAL_COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS} -Werror") endif() # SHARED @@ -75,7 +75,7 @@ endif() # STATIC if(OCIO_BUILD_STATIC) - list(REMOVE_ITEM core_src_files ${CMAKE_SOURCE_DIR}/src/core/UnitTest.cpp) + list(REMOVE_ITEM core_src_files ${PROJECT_SOURCE_DIR}/src/core/UnitTest.cpp) add_library(OpenColorIO_STATIC STATIC ${EXTERNAL_OBJECTS} ${core_src_files}) add_dependencies(OpenColorIO_STATIC TINYXML_LIB YAML_CPP_LIB) if(EXTERNAL_LIBRARIES) @@ -113,7 +113,7 @@ install(FILES ${core_export_headers} # pkg-config message(STATUS "Create OpenColorIO.pc from OpenColorIO.pc.in") -configure_file(${CMAKE_SOURCE_DIR}/export/pkgconfig/OpenColorIO.pc.in +configure_file(${PROJECT_SOURCE_DIR}/export/pkgconfig/OpenColorIO.pc.in ${CMAKE_CURRENT_BINARY_DIR}/OpenColorIO.pc @ONLY) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/OpenColorIO.pc DESTINATION ${CMAKE_INSTALL_EXEC_PREFIX}/lib${LIB_SUFFIX}/pkgconfig/) diff --git a/src/core/OCIOYaml.cpp b/src/core/OCIOYaml.cpp index 68fcef6..a1c1c1d 100644 --- a/src/core/OCIOYaml.cpp +++ b/src/core/OCIOYaml.cpp @@ -1442,7 +1442,7 @@ OCIO_NAMESPACE_ENTER #ifdef OLDYAML if(node.FindValue("ocio_profile_version") == NULL) #else - if(node["ocio_profile_version"] == NULL) + if(node["ocio_profile_version"].IsNull()) #endif { std::ostringstream os;