Mercurial > malikania
view cmake/function/MalikaniaDefineDatabase.cmake @ 110:119bcc5a727e
Misc: replace copyrights, closes #655
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 05 Sep 2017 14:06:31 +0200 |
parents | f8c6d2244795 |
children | 4b292c20124c |
line wrap: on
line source
# # MalikaniaDefineDatabase.cmake -- CMake build system for malikania # # Copyright (c) 2013-2017 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. # # # malikania_define_database # ------------------------ # # malikania_define_database( # NAME The target name # SOURCES The sources # FLAGS (Optional) List of flags # INCLUDES (Optional) List of includes only for building the library # LIBRARIES (Optional) List of libraries to link against # ) # # Create a shared library that is dynamically loadable. # include(CMakeParseArguments) include(${CMAKE_CURRENT_LIST_DIR}/MalikaniaVeraCheck.cmake) function(malikania_define_database) set(singleArgs NAME) set(multiArgs SOURCES FLAGS INCLUDES LIBRARIES) cmake_parse_arguments(DB "" "${singleArgs}" "${multiArgs}" ${ARGN}) if (NOT DB_NAME) message(FATAL_ERROR "Missing NAME parameter") endif () if (NOT DB_SOURCES) message(FATAL_ERROR "Missing SOURCES parameter") endif () add_library(db-${DB_NAME} MODULE ${DB_SOURCES}) target_link_libraries( db-${DB_NAME} libmlk-server ${DB_LIBRARIES} ) target_include_directories( db-${DB_NAME} PRIVATE ${DB_INCLUDES} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ) target_compile_definitions(db-${DB_NAME} PRIVATE ${DB_FLAGS}) set_target_properties( db-${DB_NAME} PROPERTIES OUTPUT_NAME ${DB_NAME} RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin PREFIX "" ) foreach (c ${CMAKE_CONFIGURATION_TYPES}) string(TOUPPER ${c} config) set_target_properties( db-${DB_NAME} PROPERTIES OUTPUT_NAME_${c} ${DB_NAME} RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${c} ) endforeach () malikania_vera_check(${DB_NAME} "${DB_SOURCES}") endfunction()