view libcommon/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 a47a4477f347
children 576c35ccdff6
line wrap: on
line source

#
# CMakeLists.txt -- CMake build system for malikania
#
# Copyright (c) 2013-2016 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(libcommon)

set(
    HEADERS
    ${libcommon_SOURCE_DIR}/malikania/duktape.hpp
    ${libcommon_SOURCE_DIR}/malikania/game.hpp
    ${libcommon_SOURCE_DIR}/malikania/id.hpp
    ${libcommon_SOURCE_DIR}/malikania/resources_loader.hpp
    ${libcommon_SOURCE_DIR}/malikania/resources_locator.hpp
    ${libcommon_SOURCE_DIR}/malikania/util.hpp
)

set(
    SOURCES
    ${libcommon_SOURCE_DIR}/malikania/resources_loader.cpp
    ${libcommon_SOURCE_DIR}/malikania/resources_locator.cpp
    ${libcommon_SOURCE_DIR}/malikania/util.cpp
)

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

    list(APPEND HEADERS ${libcommon_SOURCE_DIR}/malikania/${WITH_BACKEND_DIR}/sdl_util.hpp)
    list(APPEND SOURCES ${libcommon_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 libcommon
    TARGET libcommon
    SOURCES ${HEADERS} ${SOURCES}
    FLAGS "MALIKANIA_COMMON_BUILD"
    PUBLIC_INCLUDES
        ${INCLUDES}
        $<BUILD_INTERFACE:${libcommon_SOURCE_DIR}/malikania>
        $<BUILD_INTERFACE:${libcommon_SOURCE_DIR}>
    LIBRARIES
        json
        ${Boost_LIBRARIES}
        ${LIBRARIES}
)