Skip to content

Commit

Permalink
Add support for Apple-Framework builds (#466)
Browse files Browse the repository at this point in the history
* Build: Add support for Apple-Frameworks builds

Signed-off-by: Treata11 <treata11@yahoo.com>

* Ignore build directories and Finder's temp files

---------

Signed-off-by: Treata11 <treata11@yahoo.com>
  • Loading branch information
Treata11 authored Jan 23, 2025
1 parent 01bb88b commit b67f401
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ configure
*.la
de265-config.h
libde265.pc
*.DS_Store

# MSVC
*.sln
Expand All @@ -45,6 +46,8 @@ libde265.pc
/ltmain.sh
/stamp-h1
/test-suite.log
/build
/_build

# ctags
tags
Expand Down
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ if(NOT BUILD_SHARED_LIBS)
add_definitions(-DLIBDE265_STATIC_BUILD)
endif()

if(APPLE)
option(BUILD_FRAMEWORK "Build as Apple Frameworks" OFF)
endif()

include_directories ("${PROJECT_SOURCE_DIR}")
include_directories ("${PROJECT_BINARY_DIR}")
include_directories ("${PROJECT_SOURCE_DIR}/libde265")
Expand Down
21 changes: 20 additions & 1 deletion libde265/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ if(HAVE_X86)
endif()
endif()

add_library(de265 ${libde265_sources} ${ENCODER_OBJECTS} ${X86_OBJECTS})
add_library(de265 ${libde265_sources} ${libde265_public_headers} ${ENCODER_OBJECTS} ${X86_OBJECTS})
target_link_libraries(de265 PRIVATE Threads::Threads)
target_include_directories(de265 PRIVATE ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR})

Expand All @@ -131,10 +131,29 @@ if (WIN32)
set_target_properties(de265 PROPERTIES PREFIX "lib")
endif()

if (BUILD_FRAMEWORK)
set_target_properties(de265 PROPERTIES
FRAMEWORK TRUE
FRAMEWORK_VERSION "${PROJECT_VERSION}"
PRODUCT_BUNDLE_IDENTIFIER "github.com/strukturag/libde265"
XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
# OUTPUT_NAME "de265"
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY ""
XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO"
XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO"
PUBLIC_HEADER "${libde265_public_headers}"
MACOSX_FRAMEWORK_IDENTIFIER "github.com/strukturag/libde265"
MACOSX_FRAMEWORK_BUNDLE_VERSION "${PROJECT_VERSION}"
MACOSX_RPATH TRUE)
endif()

install(TARGETS de265 EXPORT libde265Config
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
FRAMEWORK DESTINATION Library/Frameworks COMPONENT runtime OPTIONAL
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libde265
)

install(FILES ${libde265_public_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/libde265)
Expand Down

0 comments on commit b67f401

Please sign in to comment.