cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
-OPTION(ENABLE_STATIC "Make static version of libtag" OFF)
+option(ENABLE_STATIC "Make static version of libtag" OFF)
+if(ENABLE_STATIC)
+ add_definitions(-DTAGLIB_STATIC)
+ set(BUILD_SHARED_LIBS OFF)
+else()
+ set(BUILD_SHARED_LIBS ON)
+endif()
+OPTION(ENABLE_STATIC_RUNTIME "Visual Studio, link with runtime statically" OFF)
-OPTION(BUILD_TESTS "Build the test suite" OFF)
-OPTION(BUILD_EXAMPLES "Build the examples" OFF)
+option(VISIBILITY_HIDDEN "Build with -fvisibility=hidden" OFF)
+if(VISIBILITY_HIDDEN)
+ add_definitions (-fvisibility=hidden)
+endif()
-OPTION(NO_ITUNES_HACKS "Disable workarounds for iTunes bugs" OFF)
-OPTION(WITH_ASF "Enable ASF tag reading/writing code" OFF)
-OPTION(WITH_MP4 "Enable MP4 tag reading/writing code" OFF)
+option(BUILD_TESTS "Build the test suite" OFF)
+option(BUILD_EXAMPLES "Build the examples" OFF)
+
+option(NO_ITUNES_HACKS "Disable workarounds for iTunes bugs" OFF)
add_definitions(-DHAVE_CONFIG_H)
+set(TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests/")
-#add some KDE specific stuff
-set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" )
-set(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Base directory for executables and libraries" FORCE)
-#
## the following are directories where stuff will be installed to
-set(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" CACHE PATH "The subdirectory to the binaries prefix (default prefix/bin)" FORCE)
-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 (CMAKE_COMPILER_IS_GNUCXX)
- if (CMAKE_SYSTEM_NAME MATCHES Linux)
- set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -ansi -Wundef -Wcast-align -Werror-implicit-function-declaration -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common")
- set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -fno-check-new -fno-common")
- endif (CMAKE_SYSTEM_NAME MATCHES Linux)
-endif (CMAKE_COMPILER_IS_GNUCXX)
-if(MSVC)
- if (MSVC_VERSION GREATER 1399)
- # If using Visual C++ 2005 (MSVC80) and greater (MSVC_VERSION=1400)
- add_definitions(/D_CRT_SECURE_NO_DEPRECATE /D_CRT_NONSTDC_NO_DEPRECATE /Zc:wchar_t-)
- endif (MSVC_VERSION GREATER 1399)
-endif(MSVC)
-if (WIN32)
- set(CMAKE_DEBUG_POSTFIX "d")
-endif (WIN32)
-
-SET(TAGLIB_LIB_MAJOR_VERSION "1")
-SET(TAGLIB_LIB_MINOR_VERSION "7")
-SET(TAGLIB_LIB_PATCH_VERSION "1")
-
-SET(TAGLIB_LIB_VERSION_STRING "${TAGLIB_LIB_MAJOR_VERSION}.${TAGLIB_LIB_MINOR_VERSION}.${TAGLIB_LIB_PATCH_VERSION}")
-
+set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")
+set(EXEC_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH "Base directory for executables and libraries" FORCE)
+set(BIN_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/bin" CACHE PATH "The subdirectory to the binaries prefix (default prefix/bin)" FORCE)
+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")
+endif()
+if (MSVC AND ENABLE_STATIC_RUNTIME)
+ foreach(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
+ string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
+ endforeach(flag_var)
+endif()
+
+set(TAGLIB_LIB_MAJOR_VERSION "1")
+set(TAGLIB_LIB_MINOR_VERSION "7")
- set(TAGLIB_LIB_PATCH_VERSION "0")
++set(TAGLIB_LIB_PATCH_VERSION "1")
+
+set(TAGLIB_LIB_VERSION_STRING "${TAGLIB_LIB_MAJOR_VERSION}.${TAGLIB_LIB_MINOR_VERSION}.${TAGLIB_LIB_PATCH_VERSION}")
+
+# 1. If the library source code has changed at all since the last update, then increment revision.
+# 2. If any interfaces have been added, removed, or changed since the last update, increment current, and set revision to 0.
+# 3. If any interfaces have been added since the last public release, then increment age.
+# 4. If any interfaces have been removed since the last public release, then set age to 0.
+set(TAGLIB_SOVERSION_CURRENT 11)
- set(TAGLIB_SOVERSION_REVISION 0)
++set(TAGLIB_SOVERSION_REVISION 1)
+set(TAGLIB_SOVERSION_AGE 10)
+
+math(EXPR TAGLIB_SOVERSION_MAJOR "${TAGLIB_SOVERSION_CURRENT} - ${TAGLIB_SOVERSION_AGE}")
+math(EXPR TAGLIB_SOVERSION_MINOR "${TAGLIB_SOVERSION_AGE}")
+math(EXPR TAGLIB_SOVERSION_PATCH "${TAGLIB_SOVERSION_REVISION}")
include(ConfigureChecks.cmake)