From ba027211bece3e6ccbd8042427f5ba9b72bc99e1 Mon Sep 17 00:00:00 2001 From: Nicholas Yue Date: Wed, 9 Sep 2020 11:39:05 -0700 Subject: [PATCH 1/4] Update CMake build configuration Use VFX reference platform cmake version Use IlmBase provided config to locate package --- CMakeLists.txt | 47 ++++++++++++++++++++++++++++++++++++++++ cmake/CMakeLists.txt | 45 -------------------------------------- cmake/Modules/README.txt | 5 ----- 3 files changed, 47 insertions(+), 50 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 cmake/CMakeLists.txt delete mode 100644 cmake/Modules/README.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..08c845e --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,47 @@ +# yue.nicholas@gmail.com + +cmake_minimum_required(VERSION 3.12) + +project(PRT-IO-Library) + +# We can place facility-specific Find.cmake files in this subdirectory. Mostly used +# to specify package locations on Windows builds since there isn't a known place to look. +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/Modules/") + +find_package(IlmBase REQUIRED CONFIG) +find_package(ZLIB) + +include_directories(.) +# INCLUDE_DIRECTORIES ( ${ILMBASE_INCLUDE_DIRS} ) +# INCLUDE_DIRECTORIES ( ${ZLIB_INCLUDE_DIRS} ) + +set(REQUIRED_LINK_LIBRARIES + IlmBase::IlmBaseConfig + IlmBase::Half + ${ZLIB_LIBRARY} + ) +if ( MSVC ) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /Zi") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG") +endif() + +add_executable(example example.cpp) +target_link_libraries(example + ${REQUIRED_LINK_LIBRARIES} +) + +add_executable(example_layout example_layout.cpp) +target_link_libraries(example_layout + ${REQUIRED_LINK_LIBRARIES} +) + +add_executable(example_metadata example_metadata.cpp) +target_link_libraries(example_metadata + ${REQUIRED_LINK_LIBRARIES} +) + +install(DIRECTORY + prtio + DESTINATION + include +) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt deleted file mode 100644 index 3f6c87b..0000000 --- a/cmake/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -# yue.nicholas@gmail.com - -CMAKE_MINIMUM_REQUIRED(VERSION 2.8) - -PROJECT ( PRT-IO-Library ) - -# We can place facility-specific Find.cmake files in this subdirectory. Mostly used -# to specify package locations on Windows builds since there isn't a known place to look. -SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/Modules/") - -FIND_PACKAGE ( ILMBase ) -FIND_PACKAGE ( ZLIB ) - -INCLUDE_DIRECTORIES ( ../ ) -INCLUDE_DIRECTORIES ( ${ILMBASE_INCLUDE_DIRS} ) -INCLUDE_DIRECTORIES ( ${ZLIB_INCLUDE_DIRS} ) - -if ( MSVC ) - SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /Zi") - SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG") -endif() - -ADD_EXECUTABLE ( example ../example.cpp ) -TARGET_LINK_LIBRARIES ( example - ${Ilmbase_HALF_LIBRARY} - ${ZLIB_LIBRARY} -) - -ADD_EXECUTABLE ( example_layout ../example_layout.cpp ) -TARGET_LINK_LIBRARIES ( example_layout - ${Ilmbase_HALF_LIBRARY} - ${ZLIB_LIBRARY} -) - -ADD_EXECUTABLE ( example_metadata ../example_metadata.cpp ) -TARGET_LINK_LIBRARIES ( example_metadata - ${Ilmbase_HALF_LIBRARY} - ${ZLIB_LIBRARY} -) - -INSTALL ( DIRECTORY - ../prtio - DESTINATION - ./include -) diff --git a/cmake/Modules/README.txt b/cmake/Modules/README.txt deleted file mode 100644 index 44d1d78..0000000 --- a/cmake/Modules/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -In this folder you need to put: -* FindILMBase.cmake -* FindZLIB.cmake - -If you don't have built in support for these packages (ex. on Windows). \ No newline at end of file From 2c4ccc41162d1a44d1900ac5d9ada1327da27eaa Mon Sep 17 00:00:00 2001 From: Nicholas Yue Date: Thu, 10 Sep 2020 09:37:52 -0700 Subject: [PATCH 2/4] Port to Windows --- CMakeLists.txt | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 08c845e..51e9868 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,20 +8,38 @@ project(PRT-IO-Library) # to specify package locations on Windows builds since there isn't a known place to look. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/Modules/") -find_package(IlmBase REQUIRED CONFIG) -find_package(ZLIB) +if(USE_HOUDINI) + find_package(HDK REQUIRED) + include_directories(${HDK_INCLUDE_DIR}) + link_directories($ENV{HFS}/custom/houdini/dsolib) +else() + find_package(IlmBase REQUIRED CONFIG) + find_package(ZLIB) +endif() include_directories(.) # INCLUDE_DIRECTORIES ( ${ILMBASE_INCLUDE_DIRS} ) # INCLUDE_DIRECTORIES ( ${ZLIB_INCLUDE_DIRS} ) -set(REQUIRED_LINK_LIBRARIES - IlmBase::IlmBaseConfig - IlmBase::Half - ${ZLIB_LIBRARY} - ) +if(USE_HOUDINI) + set(REQUIRED_LINK_LIBRARIES + Half + zdll + ) +else() + set(REQUIRED_LINK_LIBRARIES + IlmBase::IlmBaseConfig + IlmBase::Half + ${ZLIB_LIBRARY} + ) +endif() + if ( MSVC ) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /Zi") + if(USE_HOUDINI) + message("HELLO") + add_definitions(-DHALF_EXPORTS -DOPENEXR_DLL) + endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /Zi") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /DEBUG") endif() From 4a32cd4b3476928a6974bdb8b8c573215fd2635a Mon Sep 17 00:00:00 2001 From: Nicholas Yue Date: Thu, 10 Sep 2020 09:41:13 -0700 Subject: [PATCH 3/4] Fix z library name on Linux for Houdini Houdini name their z library differently on different platform --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 51e9868..9274dc3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,9 +22,14 @@ include_directories(.) # INCLUDE_DIRECTORIES ( ${ZLIB_INCLUDE_DIRS} ) if(USE_HOUDINI) + if(MSVC) + set(ZLIB_LIBRARY zdll) + else() + set(ZLIB_LIBRARY z) + endif() set(REQUIRED_LINK_LIBRARIES Half - zdll + ${ZLIB_LIBRARY} ) else() set(REQUIRED_LINK_LIBRARIES From 736adfcab9c28d8d4ee968c76082599a830f2178 Mon Sep 17 00:00:00 2001 From: Nicholas Yue Date: Thu, 10 Sep 2020 09:56:39 -0700 Subject: [PATCH 4/4] More windows clean up Awaiting answer from SESI regarding Half library link errors --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9274dc3..5ec3d9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,7 @@ project(PRT-IO-Library) # We can place facility-specific Find.cmake files in this subdirectory. Mostly used # to specify package locations on Windows builds since there isn't a known place to look. -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/Modules/") +# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/Modules/") if(USE_HOUDINI) find_package(HDK REQUIRED) @@ -41,7 +41,6 @@ endif() if ( MSVC ) if(USE_HOUDINI) - message("HELLO") add_definitions(-DHALF_EXPORTS -DOPENEXR_DLL) endif() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc /Zi")