Files

205 lines
8.6 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 384cb65..6181a06 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,7 @@ SET(PROJECT_VERSION 5.1.0)
# 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(musicbrainz5_SOVERSION_CURRENT 1)
+SET(musicbrainz5_SOVERSION_CURRENT 2)
SET(musicbrainz5_SOVERSION_REVISION 0)
SET(musicbrainz5_SOVERSION_AGE 0)
@@ -18,6 +18,17 @@ MATH(EXPR musicbrainz5_SOVERSION_PATCH "${musicbrainz5_SOVERSION_REVISION}")
SET(musicbrainz5_VERSION ${musicbrainz5_SOVERSION_MAJOR}.${musicbrainz5_SOVERSION_MINOR}.${musicbrainz5_SOVERSION_PATCH})
SET(musicbrainz5_SOVERSION ${musicbrainz5_SOVERSION_MAJOR})
+SET(musicbrainz5c_SOVERSION_CURRENT 2)
+SET(musicbrainz5c_SOVERSION_REVISION 0)
+SET(musicbrainz5c_SOVERSION_AGE 0)
+
+MATH(EXPR musicbrainz5c_SOVERSION_MAJOR "${musicbrainz5c_SOVERSION_CURRENT} - ${musicbrainz5c_SOVERSION_AGE}")
+MATH(EXPR musicbrainz5c_SOVERSION_MINOR "${musicbrainz5c_SOVERSION_AGE}")
+MATH(EXPR musicbrainz5c_SOVERSION_PATCH "${musicbrainz5c_SOVERSION_REVISION}")
+
+SET(musicbrainz5c_VERSION ${musicbrainz5c_SOVERSION_MAJOR}.${musicbrainz5c_SOVERSION_MINOR}.${musicbrainz5c_SOVERSION_PATCH})
+SET(musicbrainz5c_SOVERSION ${musicbrainz5c_SOVERSION_MAJOR})
+
SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
FIND_PACKAGE(Neon REQUIRED)
FIND_PACKAGE(LibXml2 REQUIRED)
@@ -29,12 +40,13 @@ SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Install
SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Installation prefix for C header files" FORCE)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libmusicbrainz5.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5.pc)
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.cmake ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile)
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_SOURCE_DIR}/config.h)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libmusicbrainz5cc.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5cc.pc)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.cmake ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/include/config.h)
FILE(GLOB headers ${CMAKE_CURRENT_SOURCE_DIR}/include/musicbrainz5/*.h)
INSTALL(FILES ${headers} ${CMAKE_CURRENT_BINARY_DIR}/include/musicbrainz5/mb5_c.h DESTINATION ${INCLUDE_INSTALL_DIR}/musicbrainz5)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5.pc ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5cc.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(tests)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index bdcc991..71ca411 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -3,7 +3,6 @@ INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_BINARY_DIR}/../include
${LIBXML2_INCLUDE_DIR}
)
-LINK_LIBRARIES(musicbrainz5 ${NEON_LIBRARIES} ${LIBXML2_LIBRARIES})
ADD_EXECUTABLE(cdlookup cdlookup.cc)
ADD_EXECUTABLE(cdlookup_c cdlookup_c.c)
@@ -11,6 +10,13 @@ ADD_EXECUTABLE(search search.cc)
ADD_EXECUTABLE(search_c search_c.c)
ADD_EXECUTABLE(collections collections.cc)
+TARGET_LINK_LIBRARIES(cdlookup musicbrainz5cc)
+TARGET_LINK_LIBRARIES(cdlookup_c musicbrainz5)
+TARGET_LINK_LIBRARIES(search musicbrainz5cc)
+TARGET_LINK_LIBRARIES(search_c musicbrainz5)
+TARGET_LINK_LIBRARIES(cdlookup musicbrainz5cc)
+TARGET_LINK_LIBRARIES(collections musicbrainz5)
+
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic-errors")
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../.git)
diff --git a/libmusicbrainz5.pc.cmake b/libmusicbrainz5.pc.cmake
index b9cb903..633e231 100644
--- a/libmusicbrainz5.pc.cmake
+++ b/libmusicbrainz5.pc.cmake
@@ -7,7 +7,7 @@ Name: ${PROJECT_NAME}
Description: The Musicbrainz Client Library.
URL: http://musicbrainz.org/doc/libmusicbrainz
Version: ${PROJECT_VERSION}
-Requires.private: neon >= 0.25 libxml-2.0
+Requires.private: ${PROJECT_NAME}cc
Libs: -L${LIB_INSTALL_DIR} -lmusicbrainz5
Cflags: -I${INCLUDE_INSTALL_DIR}
diff --git a/libmusicbrainz5cc.pc.cmake b/libmusicbrainz5cc.pc.cmake
new file mode 100644
index 0000000..224fa7a
--- /dev/null
+++ b/libmusicbrainz5cc.pc.cmake
@@ -0,0 +1,13 @@
+prefix=${CMAKE_INSTALL_PREFIX}
+exec_prefix=${EXEC_INSTALL_PREFIX}
+libdir=${LIB_INSTALL_DIR}
+includedir=${INCLUDE_INSTALL_DIR}
+
+Name: ${PROJECT_NAME}cc
+Description: The Musicbrainz Client Library.
+URL: http://musicbrainz.org/doc/libmusicbrainz
+Version: ${PROJECT_VERSION}
+Requires.private: neon >= 0.25 libxml-2.0
+Libs: -L${LIB_INSTALL_DIR} -lmusicbrainz5cc
+Cflags: -I${INCLUDE_INSTALL_DIR}
+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c91a565..9492920 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -7,12 +7,13 @@ INCLUDE_DIRECTORIES(
${LIBXML2_INCLUDE_DIR}
)
-SET(_sources Alias.cc Annotation.cc Artist.cc ArtistCredit.cc Attribute.cc CDStub.cc Collection.cc
+SET(_sources_cc Alias.cc Annotation.cc Artist.cc ArtistCredit.cc Attribute.cc CDStub.cc Collection.cc
Disc.cc Entity.cc FreeDBDisc.cc HTTPFetch.cc ISRC.cc Label.cc LabelInfo.cc Lifespan.cc List.cc
- mb5_c.cc Medium.cc MediumList.cc Message.cc Metadata.cc NameCredit.cc NonMBTrack.cc PUID.cc
+ Medium.cc MediumList.cc Message.cc Metadata.cc NameCredit.cc NonMBTrack.cc PUID.cc
Query.cc Rating.cc Recording.cc Relation.cc RelationList.cc Release.cc ReleaseGroup.cc Tag.cc
TextRepresentation.cc Track.cc UserRating.cc UserTag.cc Work.cc xmlParser.cc
RelationListList.cc ISWCList.cc ISWC.cc SecondaryType.cc SecondaryTypeList.cc IPI.cc)
+SET(_sources_c mb5_c.cc)
# when crosscompiling import the executable targets from a file
IF(CMAKE_CROSSCOMPILING)
@@ -41,14 +42,21 @@ ADD_CUSTOM_COMMAND(
ADD_CUSTOM_TARGET(src_gen DEPENDS mb5_c.h)
-ADD_LIBRARY(musicbrainz5 SHARED ${_sources})
+ADD_LIBRARY(musicbrainz5cc SHARED ${_sources_cc})
+ADD_LIBRARY(musicbrainz5 SHARED ${_sources_c})
-SET_TARGET_PROPERTIES(musicbrainz5 PROPERTIES
+SET_TARGET_PROPERTIES(musicbrainz5cc PROPERTIES
VERSION ${musicbrainz5_VERSION}
SOVERSION ${musicbrainz5_SOVERSION}
DEFINE_SYMBOL MB_API_EXPORTS
)
+SET_TARGET_PROPERTIES(musicbrainz5 PROPERTIES
+ VERSION ${musicbrainz5c_VERSION}
+ SOVERSION ${musicbrainz5c_SOVERSION}
+ DEFINE_SYMBOL MB_API_EXPORTS
+)
+
if(CMAKE_BUILD_TYPE STREQUAL Debug)
SET_TARGET_PROPERTIES(musicbrainz5 PROPERTIES
DEFINE_SYMBOL _MB5_DEBUG_
@@ -58,7 +66,8 @@ if(CMAKE_BUILD_TYPE STREQUAL Debug)
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
endif(CMAKE_BUILD_TYPE STREQUAL Debug)
-TARGET_LINK_LIBRARIES(musicbrainz5 ${NEON_LIBRARIES} ${LIBXML2_LIBRARIES})
+TARGET_LINK_LIBRARIES(musicbrainz5cc ${NEON_LIBRARIES} ${LIBXML2_LIBRARIES})
+TARGET_LINK_LIBRARIES(musicbrainz5 musicbrainz5cc)
IF(WIN32)
TARGET_LINK_LIBRARIES(musicbrainz5 wsock32 winmm ws2_32)
@@ -72,4 +81,4 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
#set_source_files_properties(mb5_c.cc PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
-INSTALL(TARGETS musicbrainz5 DESTINATION ${LIB_INSTALL_DIR})
+INSTALL(TARGETS musicbrainz5cc musicbrainz5 DESTINATION ${LIB_INSTALL_DIR})
diff --git a/src/c-int-source-funcs.inc b/src/c-int-source-funcs.inc
index fdf2d56..2e3834a 100644
--- a/src/c-int-source-funcs.inc
+++ b/src/c-int-source-funcs.inc
@@ -90,7 +90,7 @@
#include "musicbrainz5/Work.h"
#include "musicbrainz5/WorkList.h"
-std::string GetMapName(std::map<std::string,std::string> Map, int Item)
+static std::string GetMapName(std::map<std::string,std::string> Map, int Item)
{
std::string Ret;
@@ -112,7 +112,7 @@ std::string GetMapName(std::map<std::string,std::string> Map, int Item)
return Ret;
}
-std::string GetMapValue(std::map<std::string,std::string> Map, int Item)
+static std::string GetMapValue(std::map<std::string,std::string> Map, int Item)
{
std::string Ret;
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 9d87908..3fba4e8 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -3,9 +3,10 @@ INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_BINARY_DIR}/../include
${LIBXML2_INCLUDE_DIR}
)
-LINK_LIBRARIES(musicbrainz5 ${NEON_LIBRARIES} ${LIBXML2_LIBRARIES})
ADD_EXECUTABLE(mbtest mbtest.cc)
ADD_EXECUTABLE(ctest ctest.c)
+TARGET_LINK_LIBRARIES(mbtest musicbrainz5cc)
+TARGET_LINK_LIBRARIES(ctest musicbrainz5)
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -pedantic-errors")