]> granicus.if.org Git - taglib/commitdiff
Make it possible to build an OS X framework
authorLukáš Lalinský <lalinsky@gmail.com>
Sun, 8 May 2011 13:46:19 +0000 (15:46 +0200)
committerLukáš Lalinský <lalinsky@gmail.com>
Sun, 8 May 2011 13:46:19 +0000 (15:46 +0200)
CMakeLists.txt
bindings/c/CMakeLists.txt
taglib/CMakeLists.txt

index 88894c36ca0e4f909131c3b7f8cc02f6eb51e82e..2a0992ba85dffb02f25e948b1942164261f7b66b 100644 (file)
@@ -21,6 +21,11 @@ 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})" FORCE)
 set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The subdirectory to the header prefix" FORCE)
 
+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 e9c8843f35e56602407bebbc3020bf3c4e9155c7..d6f19855f44c0e01c79c788e2d91eb531b1e32c5 100644 (file)
@@ -21,14 +21,17 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/taglib_c.pc.cmake ${CMAKE_CURRENT_BIN
 set(tag_c_HDRS tag_c.h)
 
 if(ENABLE_STATIC)
-  add_library(tag_c STATIC tag_c.cpp)
+  add_library(tag_c STATIC tag_c.cpp ${tag_c_HDRS})
   set_target_properties(tag_c PROPERTIES COMPILE_DEFINITIONS TAGLIB_STATIC)
 else()
-  add_library(tag_c SHARED tag_c.cpp)
+  add_library(tag_c SHARED tag_c.cpp ${tag_c_HDRS})
 endif()
 
 target_link_libraries(tag_c tag)
 set_target_properties(tag_c PROPERTIES PUBLIC_HEADER "${tag_c_HDRS}")
+if(BUILD_FRAMEWORK)
+  set_target_properties(tag_c PROPERTIES FRAMEWORK TRUE)
+endif()
 
 # On Solaris we need to explicitly add the C++ standard and runtime
 # libraries to the libs used by the C bindings, because those C bindings
@@ -58,6 +61,7 @@ set_target_properties(tag_c PROPERTIES
   INSTALL_NAME_DIR ${LIB_INSTALL_DIR}
 )
 install(TARGETS tag_c
+       FRAMEWORK DESTINATION ${FRAMEWORK_INSTALL_DIR}
        LIBRARY DESTINATION ${LIB_INSTALL_DIR}
        RUNTIME DESTINATION ${BIN_INSTALL_DIR}
        ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
index bd8effc3d66c75c51c12c9d32a96a8f1921b76fe..8e7a3b64a5cac5516de77f091dda6896dada3336 100644 (file)
@@ -261,10 +261,10 @@ if(WITH_MP4)
 endif()
 
 if(ENABLE_STATIC)
-  add_library(tag STATIC ${tag_LIB_SRCS})
+  add_library(tag STATIC ${tag_LIB_SRCS} ${tag_HDRS})
   set_target_properties(tag PROPERTIES COMPILE_DEFINITIONS TAGLIB_STATIC)
 else()
-  add_library(tag SHARED ${tag_LIB_SRCS})
+  add_library(tag SHARED ${tag_LIB_SRCS} ${tag_HDRS})
 endif()
 
 if(ZLIB_FOUND)
@@ -279,8 +279,12 @@ set_target_properties(tag PROPERTIES
   LINK_INTERFACE_LIBRARIES ""
   PUBLIC_HEADER "${tag_HDRS}"
 )
+if(BUILD_FRAMEWORK)
+  set_target_properties(tag PROPERTIES FRAMEWORK TRUE)
+endif()
 
 install(TARGETS tag
+       FRAMEWORK DESTINATION ${FRAMEWORK_INSTALL_DIR}
        LIBRARY DESTINATION ${LIB_INSTALL_DIR}
        RUNTIME DESTINATION ${BIN_INSTALL_DIR}
        ARCHIVE DESTINATION ${LIB_INSTALL_DIR}