Skip to content

Commit e4fe355

Browse files
authored
Add iOS Cross-Compilation Support (#461)
* Enable Cross-Compilation for iOS. Signed-off-by: Treata11 <[email protected]> * Fix typo Replaced `TBB_USE_APPLE_FRAMEWORKS` with `IMATH_BUILD_APPLE_FRAMEWORKS`. Signed-off-by: Treata <[email protected]> * Ignore macOS finder files Signed-off-by: Treata11 <[email protected]> * Build: set FRAMEWORK property TRUE for iOS-derived builds before install Signed-off-by: Treata11 <[email protected]> * Update Framework properties Signed-off-by: Treata11 <[email protected]> --------- Signed-off-by: Treata11 <[email protected]> Signed-off-by: Treata <[email protected]>
1 parent aa28eb5 commit e4fe355

File tree

6 files changed

+55
-4
lines changed

6 files changed

+55
-4
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@
44
build/
55
_build/
66
_install/
7+
8+
.DS_Store

CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ if (BUILD_WEBSITE AND NOT IMATH_IS_SUBPROJECT)
8585
add_subdirectory(website)
8686
endif()
8787

88+
if (APPLE)
89+
option(IMATH_BUILD_APPLE_FRAMEWORKS "Build as Apple Frameworks" OFF)
90+
endif()
91+
8892
# If you want to use ctest to configure, build and
8993
# upload the results, cmake has builtin support for
9094
# submitting to CDash, or any server who speaks the

config/LibraryDefine.cmake

+22-4
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,31 @@ function(IMATH_DEFINE_LIBRARY libname)
8484
)
8585
add_library(${PROJECT_NAME}::${libname} ALIAS ${libname})
8686

87+
if (IMATH_BUILD_APPLE_FRAMEWORKS)
88+
set_target_properties(${libname} PROPERTIES
89+
FRAMEWORK TRUE
90+
FRAMEWORK_VERSION IMATH_LIB_VERSION
91+
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER com.AcademySoftwareFoundation.${libname}
92+
MACOSX_FRAMEWORK_IDENTIFIER com.AcademySoftwareFoundation.${libname}
93+
MACOSX_FRAMEWORK_BUNDLE_VERSION IMATH_LIB_VERSION
94+
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${Imath_VERSION})
95+
endif()
96+
8797
if (IMATH_INSTALL)
8898
install(TARGETS ${libname}
8999
EXPORT ${PROJECT_NAME}
90-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
91-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
92-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
93-
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
100+
RUNTIME
101+
DESTINATION ${CMAKE_INSTALL_BINDIR}
102+
LIBRARY
103+
DESTINATION ${CMAKE_INSTALL_LIBDIR}
104+
ARCHIVE
105+
DESTINATION ${CMAKE_INSTALL_LIBDIR}
106+
FRAMEWORK
107+
DESTINATION ${CMAKE_INSTALL_LIBDIR}
108+
COMPONENT runtime
109+
OPTIONAL
110+
INCLUDES
111+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
94112
PUBLIC_HEADER
95113
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${IMATH_OUTPUT_SUBDIR}
96114
)

src/Imath/CMakeLists.txt

+11
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,14 @@ imath_define_library(Imath
4747
ImathVec.h
4848
ImathVecAlgo.h
4949
)
50+
51+
if(IMATH_BUILD_APPLE_FRAMEWORKS)
52+
set_target_properties(Imath PROPERTIES
53+
FRAMEWORK TRUE
54+
FRAMEWORK_VERSION IMATH_LIB_VERSION
55+
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER github.com/AcademySoftwareFoundation/Imath
56+
OUTPUT_NAME "imath"
57+
MACOSX_FRAMEWORK_IDENTIFIER github.com/AcademySoftwareFoundation/Imath
58+
MACOSX_FRAMEWORK_BUNDLE_VERSION IMATH_LIB_VERSION
59+
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${Imath_VERSION})
60+
endif()

src/ImathTest/CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ function(DEFINE_IMATH_TESTS)
8484
endforeach()
8585
endfunction()
8686

87+
if (IMATH_BUILD_APPLE_FRAMEWORKS)
88+
add_compile_definitions(IMATH_BUILD_APPLE_FRAMEWORKS)
89+
endif()
90+
8791
define_imath_tests(
8892
testToFloat
8993
testSize

src/pybind11/PyBindImath/CMakeLists.txt

+12
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ if (IMATH_INSTALL)
7878
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
7979
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
8080
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
81+
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
8182
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
8283

8384
if(BUILD_SHARED_LIBS AND (NOT "${IMATH_LIB_SUFFIX}" STREQUAL "") AND IMATH_INSTALL_SYM_LINK)
@@ -109,3 +110,14 @@ if (IMATH_INSTALL)
109110
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${pcout} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
110111

111112
endif()
113+
114+
if(IMATH_BUILD_APPLE_FRAMEWORKS)
115+
set_target_properties(${PYBINDIMATH_LIBRARY} PROPERTIES
116+
FRAMEWORK TRUE
117+
FRAMEWORK_VERSION PYBINDIMATH_LIB_SUFFIX
118+
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER github.com/AcademySoftwareFoundation/Imath.PyBind
119+
# OUTPUT_NAME "pybind"
120+
MACOSX_FRAMEWORK_IDENTIFIER github.com/AcademySoftwareFoundation/Imath.PyBind
121+
MACOSX_FRAMEWORK_BUNDLE_VERSION PYBINDIMATH_LIB_SUFFIX
122+
MACOSX_FRAMEWORK_SHORT_VERSION_STRING ${Imath_VERSION})
123+
endif()

0 commit comments

Comments
 (0)