view doc/docs/cmake/MolkoDefineLibrary.md @ 253:c4da052c0def

core: goodbye doxygen
author David Demelier <markand@malikania.fr>
date Thu, 03 Dec 2020 09:06:52 +0100
parents
children 9bbbabb6f077
line wrap: on
line source

# molko_define_library

Create any kind of library.

## Synopsis

```cmake
molko_define_library(
TARGET              target name
SOURCES             src1, src2, srcn
EXTERNAL            (Optional) set to true for external libraries
FOLDER              (Optional) optional subfolder to organize
TYPE                (Optional) type of library
ASSETS              (Optional) list of assets
LIBRARIES           (Optional) libraries to link
PRIVATE_FLAGS       (Optional) C flags (without -D)
PRIVATE_INCLUDES    (Optional) local includes for the target only
PUBLIC_FLAGS        (Optional) C flags (without -D)
PUBLIC_INCLUDES     (Optional) includes to share with target dependencies
)
```

Create a library and optionally install it.

The function create a new library named with the parameter *TARGET*, you
should prefix it with "lib" as its the convention within molko (e.g. libfoo),
the prefix is automatically removed.

The argument *SOURCES* should contains the C source files and *HEADERS*
should points to a directory to be installed verbatim in the include
directory.

Optional argument *EXTERNAL* should be set for targets that are not
maintained here (e.g. third party libraries embedded).

Optional argument *PRIVATE_FLAGS*, *PUBLIC_FLAGS*, *PRIVATE_INCLUDES*,
*PUBLIC_INCLUDES*, *LIBRARIES* may be passed to set compile flags, includes
and libraries respectively.

The arguments *ASSETS* contains a list of assets to be converted during the
build. The file hierarchy is conserved in the `${CMAKE_CURRENT_BINARY_DIR}`.

If *FOLDER* option is set, it is organized into its name under the IDE if
supported.