Adding comments as documentation for each target.
[staging/xdg-launcher.git] / templates / service / binding / CMakeLists.txt
1 ###########################################################################
2 # Copyright 2015, 2016, 2017 IoT.bzh
3 #
4 # author: Romain Forlot <romain.forlot@iot.bzh>
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #     http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 ###########################################################################
18
19 # Project target list
20 # --------------------
21 # Add target to project dependency list. Name specified as argument will be
22 # added to the project target list and the variable ${TARGET_NAME} become
23 # available with that value.
24 PROJECT_TARGET_ADD(xxx-service)
25
26         # Define project Targets
27         add_library(${TARGET_NAME} MODULE
28                 ${TARGET_NAME}-hat.c
29                 ${TARGET_NAME}-cb.c
30         )
31
32         # Targets properties
33         # ------------------
34         # Target properties will be used to build package tree that will be
35         # built using project_package_build.
36         # OUTPUT_NAME:  Depends what is the name of your  output file, it is
37         # mandatory to specify which is its name with target the property
38         # OUTPUT_NAME for your target. If file name is same of your target then
39         # use variable ${TARGET_NAME}.
40         # LABELS: Choose between "BINDING", "HTDOCS", "EXECUTABLE" depending of
41         # the type of your target.
42         # PREFIX: This prefix will be added on the output file name specify with
43         # OUTPUT_NAME. By default, there isn't PREFIX on target except on
44         # library target with is "lib".
45         SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
46                 PREFIX "afs-"
47                 LABELS "BINDING"
48                 LINK_FLAGS ${BINDINGS_LINK_FLAG}
49                 OUTPUT_NAME ${TARGET_NAME})
50
51         # Link
52         # ----
53         # Library dependencies (include updates automatically). Linked to the
54         # target.
55         TARGET_LINK_LIBRARIES(${TARGET_NAME}
56                 ${link_libraries})
57
58         # Include
59         # -------
60         # Define target includes search and dependencies. Choose between PUBLIC,
61         # PRIVATE or INTERFACE. PRIVATE and PUBLIC items will populate the
62         # INCLUDE_DIRECTORIES property of <target>. PUBLIC and INTERFACE items
63         # will populate the INTERFACE_INCLUDE_DIRECTORIES property of <target>.
64         # The following arguments specify include directories.
65         # INTERFACE_INCLUDE_DIRECTORIES will be read at the
66         # TARGET_LINK_LIBRARIES step for others targets that link against this
67         TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME}
68                 PUBLIC  ${CMAKE_CURRENT_SOURCE_DIR})
69