From 8f111449df9cf60a35e7f1be65248e465795926c Mon Sep 17 00:00:00 2001 From: Treata11 Date: Sat, 18 Jan 2025 23:25:50 +0330 Subject: [PATCH 1/2] Build: Add support for Apple-Frameworks builds Signed-off-by: Treata11 --- CMakeLists.txt | 4 ++++ libde265/CMakeLists.txt | 21 ++++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6066e9ff..ab7c6a81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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") diff --git a/libde265/CMakeLists.txt b/libde265/CMakeLists.txt index 79fc81f9..5a9c7a8a 100644 --- a/libde265/CMakeLists.txt +++ b/libde265/CMakeLists.txt @@ -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}) @@ -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) From c06c304962973c3ce86c2d8f25e6436329d37073 Mon Sep 17 00:00:00 2001 From: Treata11 Date: Sat, 18 Jan 2025 23:27:38 +0330 Subject: [PATCH 2/2] Ignore build directories and Finder's temp files --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 246486c5..43e64a33 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ configure *.la de265-config.h libde265.pc +*.DS_Store # MSVC *.sln @@ -45,6 +46,8 @@ libde265.pc /ltmain.sh /stamp-h1 /test-suite.log +/build +/_build # ctags tags