Mercurial > molko
annotate libmlk-util/CMakeLists.txt @ 646:7e1eb7f6c049 default tip @
misc: remove .clang
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sun, 04 Feb 2024 15:24:37 +0100 |
parents | f76cada0bbb2 |
children |
rev | line source |
---|---|
447 | 1 # |
2 # CMakeLists.txt -- CMake build system for Molko's Engine | |
3 # | |
581
cedfdbc0e9a7
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
570
diff
changeset
|
4 # Copyright (c) 2020-2023 David Demelier <markand@malikania.fr> |
447 | 5 # |
6 # Permission to use, copy, modify, and/or distribute this software for any | |
7 # purpose with or without fee is hereby granted, provided that the above | |
8 # copyright notice and this permission notice appear in all copies. | |
9 # | |
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 # | |
18 | |
19 project(libmlk-util) | |
20 | |
558
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
21 include(CheckFunctionExists) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
22 include(CheckIncludeFile) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
23 include(CheckSymbolExists) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
24 |
447 | 25 set( |
26 SOURCES | |
570
aaf518c87628
util: introduce dir module
David Demelier <markand@malikania.fr>
parents:
561
diff
changeset
|
27 ${libmlk-util_SOURCE_DIR}/mlk/util/dir.c |
447 | 28 ${libmlk-util_SOURCE_DIR}/mlk/util/fmemopen.c |
29 ${libmlk-util_SOURCE_DIR}/mlk/util/openbsd/basename.c | |
30 ${libmlk-util_SOURCE_DIR}/mlk/util/openbsd/dirname.c | |
31 ${libmlk-util_SOURCE_DIR}/mlk/util/openbsd/getopt.c | |
32 ${libmlk-util_SOURCE_DIR}/mlk/util/openbsd/strlcat.c | |
33 ${libmlk-util_SOURCE_DIR}/mlk/util/openbsd/strlcpy.c | |
558
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
34 ${libmlk-util_SOURCE_DIR}/mlk/util/sysconfig.cmake.h |
557
944798a59b8a
util: introduce mlk_util_die
David Demelier <markand@malikania.fr>
parents:
447
diff
changeset
|
35 ${libmlk-util_SOURCE_DIR}/mlk/util/util.c |
584
f2737a931658
cmake: start installing
David Demelier <markand@malikania.fr>
parents:
581
diff
changeset
|
36 ) |
f2737a931658
cmake: start installing
David Demelier <markand@malikania.fr>
parents:
581
diff
changeset
|
37 |
f2737a931658
cmake: start installing
David Demelier <markand@malikania.fr>
parents:
581
diff
changeset
|
38 set( |
f2737a931658
cmake: start installing
David Demelier <markand@malikania.fr>
parents:
581
diff
changeset
|
39 HEADERS |
f2737a931658
cmake: start installing
David Demelier <markand@malikania.fr>
parents:
581
diff
changeset
|
40 ${libmlk-util_SOURCE_DIR}/mlk/util/dir.h |
447 | 41 ${libmlk-util_SOURCE_DIR}/mlk/util/util.h |
42 ) | |
43 | |
558
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
44 check_symbol_exists("PATH_MAX" "limits.h" MLK_HAVE_PATH_MAX) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
45 |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
46 check_include_file("libgen.h" MLK_HAVE_LIBGEN_H) |
570
aaf518c87628
util: introduce dir module
David Demelier <markand@malikania.fr>
parents:
561
diff
changeset
|
47 check_include_file("dirent.h" MLK_HAVE_DIRENT_H) |
558
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
48 |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
49 check_function_exists(basename MLK_HAVE_BASENAME) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
50 check_function_exists(dirname MLK_HAVE_DIRNAME) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
51 check_function_exists(fmemopen MLK_HAVE_FMEMOPEN) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
52 check_function_exists(strlcat MLK_HAVE_STRLCAT) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
53 check_function_exists(strlcpy MLK_HAVE_STRLCPY) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
54 |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
55 configure_file( |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
56 ${libmlk-util_SOURCE_DIR}/mlk/util/sysconfig.cmake.h |
561
7732e789bcdd
rpg: conditionally enable fmemopen functions
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
57 ${libmlk-util_BINARY_DIR}/mlk/util/sysconfig.h |
558
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
58 ) |
a2443afe8a1f
cmake: check for non-portable stuff
David Demelier <markand@malikania.fr>
parents:
557
diff
changeset
|
59 |
447 | 60 mlk_library( |
61 NAME libmlk-util | |
62 SOURCES ${SOURCES} | |
584
f2737a931658
cmake: start installing
David Demelier <markand@malikania.fr>
parents:
581
diff
changeset
|
63 INSTALL |
588
0bf939090d33
cmake: install all headers
David Demelier <markand@malikania.fr>
parents:
584
diff
changeset
|
64 HEADERS |
0bf939090d33
cmake: install all headers
David Demelier <markand@malikania.fr>
parents:
584
diff
changeset
|
65 ${HEADERS} |
0bf939090d33
cmake: install all headers
David Demelier <markand@malikania.fr>
parents:
584
diff
changeset
|
66 ${libmlk-util_BINARY_DIR}/mlk/util/sysconfig.h |
584
f2737a931658
cmake: start installing
David Demelier <markand@malikania.fr>
parents:
581
diff
changeset
|
67 HEADERS_DIRECTORY mlk/util |
447 | 68 INCLUDES |
69 PUBLIC | |
70 $<BUILD_INTERFACE:${libmlk-util_SOURCE_DIR}> | |
71 $<BUILD_INTERFACE:${libmlk-util_BINARY_DIR}> | |
561
7732e789bcdd
rpg: conditionally enable fmemopen functions
David Demelier <markand@malikania.fr>
parents:
558
diff
changeset
|
72 $<BUILD_INTERFACE:${libmlk-util_BINARY_DIR}/mlk/util> |
447 | 73 ) |
74 | |
588
0bf939090d33
cmake: install all headers
David Demelier <markand@malikania.fr>
parents:
584
diff
changeset
|
75 source_group(TREE ${libmlk-util_SOURCE_DIR} FILES ${HEADERS} ${SOURCES}) |
0bf939090d33
cmake: install all headers
David Demelier <markand@malikania.fr>
parents:
584
diff
changeset
|
76 source_group(build ${libmlk-util_BINARY_DIR}/mlk/util/sysconfig.h) |