diff libclient/CMakeLists.txt @ 49:2804ae55c70f

CMake: big cleanup, closes #598
author David Demelier <markand@malikania.fr>
date Fri, 09 Dec 2016 13:28:45 +0100
parents 3be179ba3226
children 4bc4732fa1dd
line wrap: on
line diff
--- a/libclient/CMakeLists.txt	Thu Dec 08 20:19:02 2016 +0100
+++ b/libclient/CMakeLists.txt	Fri Dec 09 13:28:45 2016 +0100
@@ -16,56 +16,68 @@
 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #
 
+project(libclient)
+
 set(
     HEADERS
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/animation.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/animator.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/color.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/font.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/image.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/line.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/point.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/rectangle.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/size.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/sprite.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/window.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/${WITH_BACKEND_DIRECTORY}/font_backend.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/${WITH_BACKEND_DIRECTORY}/image_backend.hpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/${WITH_BACKEND_DIRECTORY}/window_backend.hpp
+    ${libclient_SOURCE_DIR}/malikania/animation.hpp
+    ${libclient_SOURCE_DIR}/malikania/animator.hpp
+    ${libclient_SOURCE_DIR}/malikania/color.hpp
+    ${libclient_SOURCE_DIR}/malikania/font.hpp
+    ${libclient_SOURCE_DIR}/malikania/image.hpp
+    ${libclient_SOURCE_DIR}/malikania/line.hpp
+    ${libclient_SOURCE_DIR}/malikania/point.hpp
+    ${libclient_SOURCE_DIR}/malikania/rectangle.hpp
+    ${libclient_SOURCE_DIR}/malikania/size.hpp
+    ${libclient_SOURCE_DIR}/malikania/sprite.hpp
+    ${libclient_SOURCE_DIR}/malikania/window.hpp
+    ${libclient_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}/font_backend.hpp
+    ${libclient_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}/image_backend.hpp
+    ${libclient_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}/window_backend.hpp
 )
 
 set(
     SOURCES
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/animator.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/client_resources_loader.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/color.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/font.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/image.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/sprite.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/window.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/${WITH_BACKEND_DIRECTORY}/font_backend.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/${WITH_BACKEND_DIRECTORY}/image_backend.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/malikania/${WITH_BACKEND_DIRECTORY}/window_backend.cpp
+    ${libclient_SOURCE_DIR}/malikania/animator.cpp
+    ${libclient_SOURCE_DIR}/malikania/client_resources_loader.cpp
+    ${libclient_SOURCE_DIR}/malikania/color.cpp
+    ${libclient_SOURCE_DIR}/malikania/font.cpp
+    ${libclient_SOURCE_DIR}/malikania/image.cpp
+    ${libclient_SOURCE_DIR}/malikania/sprite.cpp
+    ${libclient_SOURCE_DIR}/malikania/window.cpp
+    ${libclient_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}/font_backend.cpp
+    ${libclient_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}/image_backend.cpp
+    ${libclient_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}/window_backend.cpp
 )
 
-find_package(SDL2 REQUIRED)
-find_package(SDL2_image REQUIRED)
-find_package(SDL2_ttf REQUIRED)
+if (WITH_BACKEND MATCHES "SDL")
+    find_package(SDL2 REQUIRED)
+    find_package(SDL2_image REQUIRED)
+    find_package(SDL2_ttf REQUIRED)
 
-malikania_create_library(
+    list(
+        APPEND
+        INCLUDES
+            ${SDL2_INCLUDE_DIRS}
+            ${SDL2_IMAGE_INCLUDE_DIRS}
+            ${SDL2_TTF_INCLUDE_DIRS}
+    )
+    list(
+        APPEND
+        LIBRARIES
+            ${SDL2_LIBRARIES}
+            ${SDL2_IMAGE_LIBRARIES}
+            ${SDL2_TTF_LIBRARIES}
+    )
+endif ()
+
+malikania_define_library(
     PROJECT libclient
     TARGET libclient
     SOURCES ${HEADERS} ${SOURCES}
     PUBLIC_INCLUDES
-        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/malikania>
-        ${SDL2_INCLUDE_DIRS}
-        ${SDL2_IMAGE_INCLUDE_DIRS}
-        ${SDL2_TTF_INCLUDE_DIRS}
-    LIBRARIES
-        libcommon
-        ${SDL2_LIBRARIES}
-        ${SDL2_IMAGE_LIBRARIES}
-        ${SDL2_TTF_LIBRARIES}
+        $<BUILD_INTERFACE:${libclient_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}>
+        $<BUILD_INTERFACE:${libclient_SOURCE_DIR}/malikania>
+        ${INCLUDES}
+    LIBRARIES libcommon ${LIBRARIES}
 )
-
-target_compile_definitions(libclient PUBLIC ${DEFINITIONS})