view cmake/MalikaniaOptions.cmake @ 165:3e3040d085b5

Misc: reset to a new target Malikania is no longer a MMORPG engine but only a game. Creating an engine is too feature specific and hard to provide customizations without complex code. We also don't ship any Javascript bindings anymore and will use Qt 5 and QML for client side to avoid reinventing a UI toolkit. The server side is less impacted and will only take modifications in the database code which now has explicit PostgreSQL runtime dependency instead of writing a complex generic database backend.
author David Demelier <markand@malikania.fr>
date Tue, 19 Jun 2018 21:01:01 +0200
parents 4b292c20124c
children 3107ce017c3a
line wrap: on
line source

#
# CMakeLists.txt -- CMake build system for malikania
#
# Copyright (c) 2013-2018 David Demelier <markand@malikania.fr>
#
# 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.
#

#
# Options for development.
# -------------------------------------------------------------------
#

option(WITH_VERA "Enable vera++ analyzer" On)
option(WITH_TESTS "Enable unit tests" On)

find_program(VERA_EXECUTABLE vera++)

if (VERA_EXECUTABLE)
    if (WITH_VERA)
        execute_process(
            COMMAND ${VERA_EXECUTABLE} --version
            OUTPUT_VARIABLE VERA_VERSION
        )

        if (${VERA_VERSION} VERSION_LESS "1.3.0")
            malikania_setg(WITH_VERA Off)
            malikania_setg(WITH_VERA_MSG "No (1.3.0 or greater required)")
        else ()
            malikania_setg(WITH_VERA_MSG "Yes")
        endif () 
    else ()
        malikania_setg(WITH_VERA Off)
        malikania_setg(WITH_VERA_MSG "No (disabled by user)")
    endif ()
else ()
    malikania_setg(WITH_VERA Off)
    malikania_setg(WITH_VERA_MSG "No (vera++ not found)")
endif ()

if (NOT WITH_TESTS)
    malikania_setg(WITH_TESTS_MSG "No (disabled by user)")
else ()
    malikania_setg(WITH_TESTS_MSG "Yes")
endif ()

#
# Options for unit tests
# -------------------------------------------------------------------
#

set(WITH_TEST_PGSQL_HOST "localhost"
    CACHE STRING "Hostname for PostgreSQL driver")
set(WITH_TEST_PGSQL_PORT "5432"
    CACHE STRING "Port for PostgreSQL driver")
set(WITH_TEST_PGSQL_DATABASE "malikaniadb"
    CACHE STRING "Database for PostgreSQL driver")
set(WITH_TEST_PGSQL_USER "malikania"
    CACHE STRING "Username for PostgreSQL driver")

#
# Targets to build
# -------------------------------------------------------------------
#
# The following options are available:
#    WITH_LIBCLIENT    - Build the client library.
#    WITH_LIBSERVER    - Build the server library.
#

option(WITH_LIBCLIENT "Build libclient" On)
option(WITH_LIBSERVER "Build libserver" On)

configure_file(
    ${malikania_SOURCE_DIR}/cmake/internal/sysconfig-tests.hpp.in
    ${malikania_BINARY_DIR}/sysconfig-tests.hpp
)