Skip to content

Commit c5eb9f1

Browse files
committed
Add support for Apple framework builds
Signed-off-by: Treata11 <[email protected]>
1 parent 310e3bd commit c5eb9f1

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

CMakeLists.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ project(OpenEXR VERSION ${OPENEXR_VERSION_MAJOR}.${OPENEXR_VERSION_MINOR}.${OPEN
3232
set(OPENEXR_VERSION_RELEASE_TYPE "-dev" CACHE STRING "Extra version tag string for OpenEXR build, such as -dev, -beta1, etc.")
3333

3434
set(OPENEXR_VERSION ${OpenEXR_VERSION})
35-
set(OPENEXR_VERSION_API "${OpenEXR_VERSION_MAJOR}_${OpenEXR_VERSION_MINOR}")
35+
set(OPENEXR_VERSION_FULL "${OpenEXR_VERSION_MAJOR}.${OpenEXR_VERSION_MINOR}.${OPENEXR_VERSION_PATCH}")
36+
set(OPENEXR_VERSION_API "${OpenEXR_VERSION_MAJOR}.${OpenEXR_VERSION_MINOR}")
37+
38+
project(OpenEXR VERSION "${OPENEXR_VERSION_FULL}" LANGUAGES C CXX)
39+
3640

3741
# The SOVERSION (i.e. numerical component of SONAME) tracks the ABI
3842
# version. Increment this number whenever, and only when, the ABI changes in
@@ -49,6 +53,9 @@ set(OPENEXR_LIB_VERSION "${OPENEXR_LIB_SOVERSION}.${OPENEXR_VERSION}") # e.g. "3
4953
option(OPENEXR_INSTALL "Install OpenEXR libraries" ON)
5054
option(OPENEXR_INSTALL_TOOLS "Install OpenEXR tools" ON)
5155
option(OPENEXR_INSTALL_DEVELOPER_TOOLS "Install OpenEXR developer tools" OFF)
56+
if (APPLE)
57+
option(OPENEXR_FRAMEWORK "Build as Apple Frameworks" OFF)
58+
endif ()
5259

5360
if(OPENEXR_INSTALL OR OPENEXR_INSTALL_TOOLS OR OPENEXR_INSTALL_DEVELOPER_TOOLS)
5461
# uninstall target

cmake/LibraryDefine.cmake

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,24 @@ function(OPENEXR_DEFINE_LIBRARY libname)
7373
OUTPUT_NAME "${libname}${OPENEXR_LIB_SUFFIX}"
7474
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
7575
)
76+
if(OPENEXR_FRAMEWORK)
77+
set_target_properties(${libname} PROPERTIES
78+
FRAMEWORK TRUE
79+
FRAMEWORK_VERSION "${OPENEXR_VERSION_FULL}"
80+
PRODUCT_BUNDLE_IDENTIFIER "github.com/AcademySoftwareFoundation/openexr/${libname}"
81+
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
82+
# PUBLIC_HEADER "${PublicHeaders}"
83+
# OUTPUT_NAME "${libname}"
84+
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
85+
XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO"
86+
XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO"
87+
MACOSX_FRAMEWORK_IDENTIFIER "github.com/AcademySoftwareFoundation/openexr/${libname}"
88+
MACOSX_FRAMEWORK_BUNDLE_VERSION "${OPENEXR_VERSION_FULL}"
89+
MACOSX_FRAMEWORK_SHORT_VERSION_STRING "${OPENEXR_VERSION_API}"
90+
MACOSX_RPATH TRUE
91+
# RESOURCE ${PublicHeaders}
92+
)
93+
endif()
7694
add_library(${PROJECT_NAME}::${libname} ALIAS ${libname})
7795

7896
if(OPENEXR_INSTALL)
@@ -81,6 +99,7 @@ function(OPENEXR_DEFINE_LIBRARY libname)
8199
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
82100
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
83101
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
102+
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT runtime OPTIONAL
84103
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
85104
PUBLIC_HEADER
86105
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${OPENEXR_OUTPUT_SUBDIR}

0 commit comments

Comments
 (0)