view libcommon/CMakeLists.txt @ 98:f4d23ad4aa27

Common: refactoring class mlk::size 1. Make uniform size representation in JSON format: { "width": 100, "height": 200 } The Javascript API was using this form while an array was used in loaders. 2. Create brand new functions in util::json to parse mlk::size objects, Updated util::json::require_(u)int as well. 3. Add new tests for mlk::size object, 4. Get rid of utilities in loader as they are in util::json instead.
author David Demelier <markand@malikania.fr>
date Tue, 04 Jul 2017 13:23:15 +0200
parents 301599387b40
children 0addfab87b17
line wrap: on
line source

#
# CMakeLists.txt -- CMake build system for malikania
#
# Copyright (c) 2013-2017 Malikania Authors
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#

project(libmlk-common)

set(
    HEADERS
    ${libmlk-common_SOURCE_DIR}/malikania/game.hpp
    ${libmlk-common_SOURCE_DIR}/malikania/id.hpp
    ${libmlk-common_SOURCE_DIR}/malikania/loader.hpp
    ${libmlk-common_SOURCE_DIR}/malikania/locator.hpp
    ${libmlk-common_SOURCE_DIR}/malikania/size.hpp
    ${libmlk-common_SOURCE_DIR}/malikania/util.hpp
)

set(
    SOURCES
    ${libmlk-common_SOURCE_DIR}/malikania/loader.cpp
    ${libmlk-common_SOURCE_DIR}/malikania/locator.cpp
    ${libmlk-common_SOURCE_DIR}/malikania/util.cpp
)

if (WITH_BACKEND MATCHES "SDL")
    find_package(SDL2 REQUIRED)

    list(APPEND HEADERS ${libmlk-common_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}/sdl_util.hpp)
    list(APPEND SOURCES ${libmlk-common_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}/sdl_util.cpp)
    list(APPEND INCLUDES ${SDL2_INCLUDE_DIRS})
    list(APPEND LIBRARIES ${SDL2_LIBRARIES})
endif ()

if (WIN32)
    list(APPEND LIBRARIES ws2_32)
endif ()

malikania_define_library(
    PROJECT libmlk-common
    TARGET libmlk-common
    SOURCES ${HEADERS} ${SOURCES}
    FLAGS "MALIKANIA_COMMON_BUILD"
    PUBLIC_INCLUDES
        ${Boost_INCLUDE_DIRS}
        ${INCLUDES}
        $<BUILD_INTERFACE:${libmlk-common_SOURCE_DIR}/malikania>
        $<BUILD_INTERFACE:${libmlk-common_SOURCE_DIR}>
    LIBRARIES
        json
        ${Boost_LIBRARIES}
        ${LIBRARIES}
)