/thirdparty/liblastfm2/src/CMakeLists.txt

http://github.com/tomahawk-player/tomahawk · CMake · 124 lines · 108 code · 14 blank · 2 comment · 4 complexity · d8af84d8fa2c618c73c8dcb0ba130df4 MD5 · raw file

  1. cmake_minimum_required(VERSION 2.6)
  2. # Macro to copy and rename headers
  3. macro(copy_header from to)
  4. configure_file(
  5. ${CMAKE_CURRENT_SOURCE_DIR}/${from}
  6. ${CMAKE_CURRENT_BINARY_DIR}/lastfm/${to}
  7. COPY_ONLY
  8. )
  9. endmacro(copy_header)
  10. # Copy headers
  11. copy_header(core/misc.h misc.h)
  12. copy_header(core/XmlQuery.h XmlQuery)
  13. copy_header(core/UrlBuilder.h UrlBuilder)
  14. copy_header(global.h global.h)
  15. copy_header(radio/RadioTuner.h RadioTuner)
  16. copy_header(radio/RadioStation.h RadioStation)
  17. copy_header(scrobble/Audioscrobbler.h Audioscrobbler)
  18. copy_header(scrobble/ScrobbleCache.h ScrobbleCache)
  19. copy_header(scrobble/ScrobblePoint.h ScrobblePoint)
  20. copy_header(types/AbstractType.h AbstractType)
  21. copy_header(types/Album.h Album)
  22. copy_header(types/Artist.h Artist)
  23. copy_header(types/FingerprintId.h FingerprintId)
  24. copy_header(types/Mbid.h Mbid)
  25. copy_header(types/Playlist.h Playlist)
  26. copy_header(types/Tag.h Tag)
  27. copy_header(types/Track.h Track)
  28. copy_header(types/User.h User)
  29. copy_header(types/User.h UserList)
  30. copy_header(types/Xspf.h Xspf)
  31. copy_header(ws/ws.h ws.h)
  32. copy_header(ws/InternetConnectionMonitor.h InternetConnectionMonitor)
  33. copy_header(ws/NetworkAccessManager.h NetworkAccessManager)
  34. include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
  35. set(SOURCES
  36. scrobble/ScrobbleCache.cpp
  37. scrobble/Audioscrobbler.cpp
  38. types/FingerprintId.cpp
  39. types/Artist.cpp
  40. types/Tag.cpp
  41. types/Track.cpp
  42. types/User.cpp
  43. types/Xspf.cpp
  44. types/Album.cpp
  45. types/Playlist.cpp
  46. types/Mbid.cpp
  47. radio/RadioTuner.cpp
  48. radio/RadioStation.cpp
  49. core/UrlBuilder.cpp
  50. core/misc.cpp
  51. core/XmlQuery.cpp
  52. ws/NetworkAccessManager.cpp
  53. ws/ws.cpp
  54. ws/InternetConnectionMonitor.cpp
  55. ws/NetworkConnectionMonitor.cpp
  56. )
  57. set(MOC_HEADERS
  58. scrobble/Audioscrobbler.h
  59. types/Track.h
  60. types/Xspf.h
  61. radio/RadioTuner.h
  62. ws/NetworkConnectionMonitor.h
  63. ws/InternetConnectionMonitor.h
  64. ws/NetworkAccessManager.h
  65. )
  66. if(UNIX)
  67. if(APPLE)
  68. set(SOURCES ${SOURCES} ws/mac/MNetworkConnectionMonitor_mac.cpp)
  69. set(MOC_HEADERS ${MOC_HEADERS} ws/mac/MNetworkConnectionMonitor.h)
  70. else(APPLE)
  71. set(SOURCES ${SOURCES} ws/linux/LNetworkConnectionMonitor_linux.cpp)
  72. set(MOC_HEADERS ${MOC_HEADERS} ws/linux/LNetworkConnectionMonitor.h)
  73. endif(APPLE)
  74. endif(UNIX)
  75. if(WIN32)
  76. set(SOURCES ${SOURCES} ws/win/WNetworkConnectionMonitor_win.cpp ws/win/Pac.cpp ws/win/NdisEvents.cpp )
  77. set(MOC_HEADERS ${MOC_HEADERS} ws/win/WNetworkConnectionMonitor.h)
  78. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../winhttp)
  79. endif(WIN32)
  80. qt4_wrap_cpp(MOC_SOURCES ${MOC_HEADERS})
  81. IF( WIN32 )
  82. add_library(tomahawk_lastfm2 SHARED
  83. ${SOURCES}
  84. ${MOC_SOURCES}
  85. )
  86. ELSE()
  87. add_definitions(-fPIC)
  88. add_library(tomahawk_lastfm2 STATIC
  89. ${SOURCES}
  90. ${MOC_SOURCES}
  91. )
  92. ENDIF()
  93. target_link_libraries(tomahawk_lastfm2
  94. ${QT_LIBRARIES}
  95. ${QT_QTDBUS_LIBRARY}
  96. )
  97. set_target_properties(tomahawk_lastfm2 PROPERTIES COMPILE_FLAGS "-DLASTFM_OHAI_QMAKE" )
  98. if(APPLE)
  99. target_link_libraries(tomahawk_lastfm2
  100. /System/Library/Frameworks/CoreFoundation.framework
  101. /System/Library/Frameworks/SystemConfiguration.framework
  102. )
  103. endif(APPLE)
  104. IF( WIN32 )
  105. install(TARGETS tomahawk_lastfm2
  106. RUNTIME DESTINATION bin
  107. LIBRARY DESTINATION lib${LIB_SUFFIX}
  108. ARCHIVE DESTINATION lib${LIB_SUFFIX}
  109. )
  110. ENDIF()