annotate cmake/FindSysQueue.cmake @ 648:5bd9424a523a

misc: extreme cleanup
author David Demelier <markand@malikania.fr>
date Thu, 04 Oct 2018 21:17:55 +0200
parents 01e01777ff50
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
624
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 # FindSysQueue
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 # ------------
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 #
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 # Locate and check sys/queue.h presence
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 #
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 # SYSQUEUE_FOUND - system has sys/queue.h
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 # SYSQUEUE_SLIST - queue.h has SLIST macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 # SYSQUEUE_STAILQ - queue.h has STAILQ macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 # SYSQUEUE_LIST - queue.h has LIST macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 # SYSQUEUE_TAILQ - queue.h has TAILQ macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 # SYSQUEUE_SIMPLEQ - queue.h has SIMPLEQ macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 # SYSQUEUE_CIRCLEQ - queue.h has CIRCLEQ macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 # SYSQUEUE_TAILQ - queue.h has TAILQ macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 #
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 # Some macros are not available on every systems, these variables are
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 # defined if they are found in the queue.h file
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 #
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
18 # SYSQUEUE_SLIST_FOREACH - queue.h has SLIST_FOREACH macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 # SYSQUEUE_SLIST_FOREACH_SAFE - queue.h has SLIST_FOREACH_SAFE macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 # SYSQUEUE_STAILQ_FOREACH - queue.h has STAILQ_FOREACH macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 # SYSQUEUE_STAILQ_FOREACH - queue.h has STAILQ_FOREACH_SAFE macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 # SYSQUEUE_LIST_FOREACH - queue.h has LIST_FOREACH macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 # SYSQUEUE_LIST_FOREACH_SAFE - queue.h has LIST_FOREACH_SAFE macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 # SYSQUEUE_TAILQ_FOREACH - queue.h has TAILQ_FOREACH macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 # SYSQUEUE_TAILQ_FOREACH - queue.h has TAILQ_FOREACH_SAFE macros
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 #
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
27
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 include(CheckIncludeFile)
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 include(CheckSymbolExists)
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 check_include_file(sys/queue.h SYSQUEUE_FOUND)
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 if (SYSQUEUE_FOUND)
648
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
33 foreach (type "SLIST" "STAILQ" "LIST" "TAILQ" "SIMPLEQ" "CIRCLEQ")
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
34 check_symbol_exists(${type}_HEAD sys/queue.h SYSQUEUE_${type})
624
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
35
648
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
36 if (SYSQUEUE_${type})
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
37 # Check for _FOREACH.
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
38 check_symbol_exists(
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
39 ${type}_FOREACH
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
40 sys/queue.h
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
41 SYSQUEUE_${type}_FOREACH
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
42 )
624
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
43
648
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
44 # Check for _FOREACH_SAFE.
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
45 check_symbol_exists(
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
46 ${type}_FOREACH_SAFE
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
47 sys/queue.h
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
48 SYSQUEUE_${type}_FOREACH_SAFE
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
49 )
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
50 endif ()
5bd9424a523a misc: extreme cleanup
David Demelier <markand@malikania.fr>
parents: 624
diff changeset
51 endforeach ()
624
01e01777ff50 CMake: initial import of CMake modules, closes #720
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 endif ()