]> granicus.if.org Git - taglib/commitdiff
Fix #667: Compiled TagLib framework for OS X fails at codesign.
authorHao Xi <kevin@picturekeeper.com>
Thu, 8 Dec 2016 04:53:40 +0000 (12:53 +0800)
committerHao Xi <kevin@picturekeeper.com>
Thu, 8 Dec 2016 04:53:40 +0000 (12:53 +0800)
CMakeLists.txt
ConfigureChecks.cmake
taglib/CMakeLists.txt

index a59efc9dbc6f0913cf4e79acbbfee4e1881ba7be..bbd7d7cc0b89b61e22c83bbcad2b9cc4f3628ea0 100644 (file)
@@ -13,6 +13,14 @@ if(DEFINED ENABLE_STATIC)
 endif()
 
 option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
+if(APPLE)
+  option(BUILD_FRAMEWORK "Build an OS X framework" OFF)
+  if(BUILD_FRAMEWORK)
+    set(BUILD_SHARED_LIBS ON)
+    #set(CMAKE_MACOSX_RPATH 1)
+    set(FRAMEWORK_INSTALL_DIR "/Library/Frameworks" CACHE STRING "Directory to install frameworks to.")
+  endif()
+endif()
 if(NOT BUILD_SHARED_LIBS)
   add_definitions(-DTAGLIB_STATIC)
 endif()
@@ -48,11 +56,6 @@ set(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" CACHE PATH "The subdirectory to
 set(LIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})")
 set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The subdirectory to the header prefix")
 
-if(APPLE)
-  option(BUILD_FRAMEWORK "Build an OS X framework" OFF)
-  set(FRAMEWORK_INSTALL_DIR "/Library/Frameworks" CACHE STRING "Directory to install frameworks to.")
-endif()
-
 if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
index ee4fdc2ef8795fc345900a3bf786695b33a06f29..fe365711cdeb612a997045123ac81a24a1c76223 100644 (file)
@@ -54,11 +54,16 @@ check_cxx_source_compiles("
 " HAVE_STD_ATOMIC)
 
 if(NOT HAVE_STD_ATOMIC)
-  find_package(Boost COMPONENTS atomic)
-  if(Boost_ATOMIC_FOUND)
-    set(HAVE_BOOST_ATOMIC 1)
-  else()
-    set(HAVE_BOOST_ATOMIC 0)
+  
+  # We will not find BOOST_ATOMIC on macOS when BUILD_FRAMEWORK is set, since we don't want to link
+  # to `libboost_atomic-mt.dylib` within `tag.framework`. 
+  if(NOT BUILD_FRAMEWORK)
+    find_package(Boost COMPONENTS atomic)
+    if(Boost_ATOMIC_FOUND)
+      set(HAVE_BOOST_ATOMIC 1)
+    else()
+      set(HAVE_BOOST_ATOMIC 0)
+    endif()
   endif()
 
   if(NOT HAVE_BOOST_ATOMIC)
index 000f79378563b643cb36915bbbc6c5de38255b37..70ff8d1b21369140256b856944dc1a9fdaa90260 100644 (file)
@@ -365,7 +365,13 @@ set_target_properties(tag PROPERTIES
   PUBLIC_HEADER "${tag_HDRS}"
 )
 if(BUILD_FRAMEWORK)
-  set_target_properties(tag PROPERTIES FRAMEWORK TRUE)
+  unset(INSTALL_NAME_DIR)
+  set_target_properties(tag PROPERTIES 
+      FRAMEWORK TRUE
+      MACOSX_RPATH 1
+      VERSION "A"
+      SOVERSION "A"
+      )
 endif()
 
 install(TARGETS tag