summaryrefslogtreecommitdiffstats
path: root/meta-agl-core/LICENSE
blob: e8758f89ca27f9a2673358e9ce8d418c0815a040 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Different components of the AGL layers are under different licenses (a mix
of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
details of the individual licenses.

All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
is MIT licensed unless otherwise stated.
Source code included in tree for individual recipes (e.g. patches) are under
the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.

License information for any other files (scripts) is either explicitly stated
or defaults to GPL version 2 only.

Individual files can contain the following style tags instead of the full
license text to identify their license:

    SPDX-License-Identifier: GPL-2.0-only
    SPDX-License-Identifier: MIT

This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/
t .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
###########################################################################
# Copyright 2015, 2016, 2017 IoT.bzh
#
# author: José Bollo <jose.bollo@iot.bzh>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###########################################################################

CMAKE_MINIMUM_REQUIRED(VERSION 3.0)

PROJECT(afb-daemon C CXX)

SET(PROJECT_NAME "AFB Daemon")
SET(PROJECT_PRETTY_NAME "Application Framework Binder Daemon")
SET(PROJECT_DESCRIPTION "Secured binder of API for clients of the Application framework")
SET(PROJECT_VERSION "4.99-EERC1")
set(PROJECT_URL "https://gerrit.automotivelinux.org/gerrit/gitweb?p=src/app-framework-binder.git;a=summary")

SET(LIBAFBWSC_VERSION "1.1")
SET(LIBAFBWSC_SOVERSION "1")

INCLUDE(FindPkgConfig)
INCLUDE(CheckIncludeFiles)
INCLUDE(CheckLibraryExists)
INCLUDE(GNUInstallDirs)
INCLUDE(CTest)

###########################################################################
# possible settings
set(AGL_DEVEL OFF CACHE BOOL "Activates developping features")
set(INCLUDE_MONITORING OFF CACHE BOOL "Activates installation of monitoring")

###########################################################################

link_libraries(-Wl,--as-needed -Wl,--gc-sections -Wl,--no-undefined)

add_compile_options(-Wall -Wextra -Wconversion)
add_compile_options(-Wno-unused-parameter) # frankly not using a parameter does it care?
add_compile_options(-Wno-sign-compare -Wno-sign-conversion)
add_compile_options(-Werror=maybe-uninitialized)
add_compile_options(-Werror=implicit-function-declaration)
add_compile_options(-ffunction-sections -fdata-sections)
add_compile_options(-fPIC)
add_compile_options(-g)

set(CMAKE_C_FLAGS_PROFILING    "-g -O2 -pg -Wp,-U_FORTIFY_SOURCE")
set(CMAKE_C_FLAGS_DEBUG        "-g -ggdb -Wp,-U_FORTIFY_SOURCE")
set(CMAKE_C_FLAGS_RELEASE      "-g -O2")
set(CMAKE_C_FLAGS_CCOV         "-g -O2 --coverage")

###########################################################################

INCLUDE(FindThreads)
FIND_PACKAGE(Threads)

PKG_CHECK_MODULES(json-c REQUIRED json-c)

CHECK_INCLUDE_FILES(magic.h HAVE_MAGIC_H)
CHECK_LIBRARY_EXISTS(magic magic_load "" HAVE_LIBMAGIC_SO)
IF(HAVE_MAGIC_H)
  IF(HAVE_LIBMAGIC_SO)
    SET(HAVE_LIBMAGIC "1")
    SET(LIBMAGIC_LDFLAGS -lmagic)
  ENDIF(HAVE_LIBMAGIC_SO)
ENDIF(HAVE_MAGIC_H)

PKG_CHECK_MODULES(libsystemd libsystemd>=222)
PKG_CHECK_MODULES(libmicrohttpd libmicrohttpd>=0.9.55)
PKG_CHECK_MODULES(openssl openssl)
PKG_CHECK_MODULES(uuid uuid)
PKG_CHECK_MODULES(cynara cynara-client)

IF(AGL_DEVEL)
	ADD_DEFINITIONS(-DAGL_DEVEL)
endif()

IF(cynara_FOUND)
	ADD_DEFINITIONS(-DBACKEND_PERMISSION_IS_CYNARA)
ENDIF(cynara_FOUND)

IF(HAVE_LIBMAGIC AND libsystemd_FOUND AND libmicrohttpd_FOUND AND openssl_FOUND AND uuid_FOUND)
  ADD_DEFINITIONS(-DUSE_MAGIC_MIME_TYPE)
ELSE()
  IF(NOT HAVE_LIBMAGIC)
    MESSAGE(WARNING "\"magic.h\" or \"libmagic.so\" missing.
    Please install the \"file-devel\" or \"libmagic-dev\" package !")
  ENDIF(NOT HAVE_LIBMAGIC)
  IF(NOT libsystemd_FOUND)
    MESSAGE(WARNING "Dependency to 'libsystemd' is missing")
  ENDIF()
  IF(NOT libmicrohttpd_FOUND)
    MESSAGE(WARNING "Dependency to 'libmicrohttpd' is missing")
  ENDIF()
  IF(NOT openssl_FOUND)
    MESSAGE(WARNING "Dependency to 'openssl' is missing")
  ENDIF()
  IF(NOT uuid_FOUND)
    MESSAGE(WARNING "Dependency to 'uuid' is missing")
  ENDIF()
  IF(NOT ONLY_DEVTOOLS)
    MESSAGE(FATAL_ERROR "Can't compile the binder, either define ONLY_DEVTOOLS or install dependencies")
  ENDIF()
ENDIF()

ADD_DEFINITIONS(-DAFB_VERSION="${PROJECT_VERSION}")

INCLUDE_DIRECTORIES(
	${INCLUDE_DIRS}
	${CMAKE_SOURCE_DIR}/include
	${json-c_INCLUDE_DIRS}
	${libsystemd_INCLUDE_DIRS}
	${libmicrohttpd_INCLUDE_DIRS}
	${uuid_INCLUDE_DIRS}
	${openssl_INCLUDE_DIRS}
	${cynara_INCLUDE_DIRS}
)

SET(link_libraries
	${CMAKE_THREAD_LIBS_INIT}
	${json-c_LDFLAGS}
	${libsystemd_LDFLAGS}
	${libmicrohttpd_LDFLAGS}
	${uuid_LDFLAGS}
	${openssl_LDFLAGS}
	${cynara_LDFLAGS}
	${LIBMAGIC_LDFLAGS}
	-ldl
	-lrt
	)

ADD_SUBDIRECTORY(src/devtools)

IF(ONLY_DEVTOOLS)
	MESSAGE(WARNING "Only DEVTOOLS are compiled, not the binder!")
ELSE()
	SET(binding_install_dir ${CMAKE_INSTALL_FULL_LIBDIR}/afb)

	###########################################################################
	# activates the monitoring by default
	if(INCLUDE_MONITORING AND NOT ONLY_DEVTOOLS)
		add_definitions(-DWITH_MONITORING_OPTION)
		INSTALL(DIRECTORY
			${CMAKE_CURRENT_SOURCE_DIR}/test/monitoring
			DESTINATION
			${binding_install_dir}
		)
	endif()

	###########################################################################

	ADD_SUBDIRECTORY(src)
	ADD_SUBDIRECTORY(src/tests)
	ADD_SUBDIRECTORY(include)
	ADD_SUBDIRECTORY(bindings)

	############################################################
	# installs the pkgconfig files
	CONFIGURE_FILE(afb-daemon.pc.in afb-daemon.pc @ONLY)
	CONFIGURE_FILE(libafbwsc.pc.in libafbwsc.pc @ONLY)

	INSTALL(FILES
	    ${CMAKE_CURRENT_BINARY_DIR}/afb-daemon.pc
	    ${CMAKE_CURRENT_BINARY_DIR}/libafbwsc.pc
	    DESTINATION
	    ${CMAKE_INSTALL_LIBDIR}/pkgconfig
	)

ENDIF()