1ECM-FIND-MODULES(7) Extra CMake Modules ECM-FIND-MODULES(7)
2
3
4
6 ecm-find-modules - ECM Find Modules Reference
7
9 Find modules are used by the CMake find_package command to search for
10 packages that do not provide their own CMake package config files.
11 CMake provides an extensive set of find modules, and Extra CMake Mod‐
12 ules (ECM) adds to that.
13
14 To use ECM’s find modules, you need to tell CMake to find the ECM pack‐
15 age, and then add either ${ECM_MODULE_PATH} or ${ECM_FIND_MODULE_DIR}
16 to the CMAKE_MODULE_PATH variable:
17
18 find_package(ECM REQUIRED NO_MODULE)
19 set(CMAKE_MODULE_PATH ${ECM_FIND_MODULE_DIR})
20
21 Using ${ECM_MODULE_PATH} will also make the modules intended for direct
22 use by CMake scripts available (see ecm-modules(7) and ecm-kde-mod‐
23 ules(7)).
24
25 You can also make local copies of find modules using the
26 ecm_use_find_modules function from ECMUseFindModules, which is automat‐
27 ically included when ECM is found:
28
29 find_package(ECM REQUIRED NO_MODULE)
30 ecm_use_find_modules(
31 DIR "${CMAKE_BINARY_DIR}/cmake"
32 MODULES FindEGL.cmake
33 )
34 set(CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}/cmake")
35
36 This allows selective use of ECM’s find modules, and the NO_OVERRIDE
37 argument can be used to ensure that if CMake ships its own version of
38 that find module, it will be used instead.
39
41 Find7z
42 Try to find 7z.
43
44 If the 7z executable is not in your PATH, you can provide an alterna‐
45 tive name or full path location with the 7z_EXECUTABLE variable.
46
47 This will define the following variables:
48
49 7z_FOUND
50 TRUE if 7z is available
51
52 7z_EXECUTABLE
53 Path to 7z executable
54
55 If 7z_FOUND is TRUE, it will also define the following imported target:
56
57 7z::7z Path to 7z executable
58
59 Since 5.85.0.
60
61 FindCanberra
62 Try to find Canberra event sound library.
63
64 This will define the following variables:
65
66 Canberra_FOUND
67 True if (the requested version of) Canberra is available
68
69 Canberra_VERSION
70 The version of Canberra
71
72 Canberra_LIBRARIES
73 The libraries of Canberra for use with target_link_libraries()
74
75 Canberra_INCLUDE_DIRS
76 The include dirs of Canberra for use with target_include_direc‐
77 tories()
78
79 If Canberra_FOUND is TRUE, it will also define the following imported
80 target:
81
82 Canberra::Canberra
83 The Canberra library
84
85 In general we recommend using the imported target, as it is easier to
86 use. Bear in mind, however, that if the target is in the link inter‐
87 face of an exported library, it must be made available by the package
88 config file.
89
90 Since 5.56.0.
91
92 FindEGL
93 Try to find EGL.
94
95 This will define the following variables:
96
97 EGL_FOUND
98 True if (the requested version of) EGL is available
99
100 EGL_VERSION
101 The version of EGL; note that this is the API version defined in
102 the headers, rather than the version of the implementation (eg:
103 Mesa)
104
105 EGL_LIBRARIES
106 This can be passed to target_link_libraries() instead of the
107 EGL::EGL target
108
109 EGL_INCLUDE_DIRS
110 This should be passed to target_include_directories() if the
111 target is not used for linking
112
113 EGL_DEFINITIONS
114 This should be passed to target_compile_options() if the target
115 is not used for linking
116
117 If EGL_FOUND is TRUE, it will also define the following imported tar‐
118 get:
119
120 EGL::EGL
121 The EGL library
122
123 In general we recommend using the imported target, as it is easier to
124 use. Bear in mind, however, that if the target is in the link inter‐
125 face of an exported library, it must be made available by the package
126 config file.
127
128 Since pre-1.0.0.
129
130 FindGLIB2
131 Try to locate the GLib2 library. If found, this will define the fol‐
132 lowing variables:
133
134 GLIB2_FOUND
135 True if the GLib2 library is available
136
137 GLIB2_INCLUDE_DIRS
138 The GLib2 include directories
139
140 GLIB2_LIBRARIES
141 The GLib2 libraries for linking
142
143 GLIB2_INCLUDE_DIR
144 Deprecated, use GLIB2_INCLUDE_DIRS
145
146 GLIB2_LIBRARY
147 Deprecated, use GLIB2_LIBRARIES
148
149 If GLIB2_FOUND is TRUE, it will also define the following imported tar‐
150 get:
151
152 GLIB2::GLIB2
153 The GLIB2 library
154
155 Since 5.41.0.
156
157 FindGperf
158 Try to find GNU gperf.
159
160 If the gperf executable is not in your PATH, you can provide an alter‐
161 native name or full path location with the Gperf_EXECUTABLE variable.
162
163 This will define the following variables:
164
165 Gperf_FOUND
166 True if gperf is available.
167
168 Gperf_EXECUTABLE
169 The gperf executable.
170
171 Gperf_VERSION
172 The gperf version. (since 5.85)
173
174 If Gperf_FOUND is TRUE, it will also define the following imported tar‐
175 get:
176
177 GPerf::Gperf
178 The gperf executable.
179
180 and the following public function:
181
182 ecm_gperf_generate(<GperfInput> <OutputFile> <OutputVariable(|target (since 5.83))>
183 [GENERATION_FLAGS <flags>])
184
185 Run gperf on <GperfInput> to generate <OutputFile>, adding it to the
186 <OutputVariable> variable which contains the source for the target
187 where <OutputFile> is going to be built or, since KF 5.83, if the given
188 argument is a target, to the list of private sources of that target.
189 The target must not be an alias. The optional GENERATION_FLAGS argument
190 is needed to pass extra parameters to gperf (note you cannot override
191 that way the output file).
192
193 A simple invocation would be:
194
195 ecm_gperf_generate(simple.gperf ${CMAKE_CURRENT_BINARY_DIR}/simple.h MySources)
196
197 Since 5.35.0.
198
199 FindGradle
200 Provides the ability to build Android AAR libraries using Gradle.
201
202 This relies on the Qt provided Gradle, so a Qt for Android installation
203 is required.
204
205 gradle_add_aar(<target>
206 BUIDLFILE build.gradle
207 NAME <aar-name>)
208
209 This builds an Android AAR library using the given build.gradle file.
210
211 gradle_install_aar(<target>
212 DESTINATION <dest>)
213
214 Installs a Android AAR library that has been created with gra‐
215 dle_add_aar.
216
217 Since 5.76.0.
218
219 FindIcoTool
220 Try to find icotool.
221
222 If the icotool executable is not in your PATH, you can provide an al‐
223 ternative name or full path location with the IcoTool_EXECUTABLE vari‐
224 able.
225
226 This will define the following variables:
227
228 IcoTool_FOUND
229 True if icotool is available.
230
231 IcoTool_EXECUTABLE
232 The icotool executable.
233
234 If IcoTool_FOUND is TRUE, it will also define the following imported
235 target:
236
237 IcoTool::IcoTool
238 The icotool executable.
239
240 Since 5.49.
241
242 FindInotify
243 Try to find inotify on this system. This finds:
244
245 • libinotify on Unix like systems, or
246
247 • the kernel’s inotify on Linux systems.
248
249 This will define the following variables:
250
251 Inotify_FOUND
252 True if inotify is available
253
254 Inotify_LIBRARIES
255 This has to be passed to target_link_libraries()
256
257 Inotify_INCLUDE_DIRS
258 This has to be passed to target_include_directories()
259
260 On Linux, the libraries and include directories are empty, even though
261 Inotify_FOUND may be set to TRUE. This is because no special includes
262 or libraries are needed. On other systems these may be needed to use
263 inotify.
264
265 Since 5.32.0.
266
267 FindIsoCodes
268 Try to find iso-codes data files. Once done this will define:
269
270 IsoCodes_FOUND
271 Whether the system has iso-codes
272
273 IsoCodes_PREFIX
274 The location in which the iso-codes data files are found
275
276 IsoCodes_DOMAINS
277 The available domains provided by iso-codes
278
279 Since 5.80.0.
280
281 FindKF5
282 Find KDE Frameworks 5 with a single find_package() call.
283
284 This will use the package config files provided by the individual
285 frameworks. For example, if you wish to find KArchive, which presents
286 itself to CMake as KF5Archive (ie: you would do find_package(KF5Ar‐
287 chive) to find it directly), you can do
288
289 find_package(KF5 COMPONENTS Archive)
290
291 If all the required components (those given in the COMPONENTS argument,
292 but not those given in the OPTIONAL_COMPONENTS argument) are found,
293 KF5_FOUND will be set to true. Otherwise, it will be set to false.
294
295 Since pre-1.0.0.
296
297 FindLibExiv2
298 Try to find the Exiv2 library.
299
300 This will define the following variables:
301
302 LibExiv2_FOUND
303 True if (the requested version of) Exiv2 is available
304
305 LibExiv2_VERSION
306 The version of Exiv2
307
308 LibExiv2_INCLUDE_DIRS
309 The include dirs of Exiv2 for use with target_include_directo‐
310 ries()
311
312 LibExiv2_LIBRARIES
313 The Exiv2 library for use with target_link_libraries(). This
314 can be passed to target_link_libraries() instead of the
315 LibExiv2::LibExiv2 target
316
317 If LibExiv2_FOUND is TRUE, it will also define the following imported
318 target:
319
320 LibExiv2::LibExiv2
321 The Exiv2 library
322
323 In general we recommend using the imported target, as it is easier to
324 use. Bear in mind, however, that if the target is in the link inter‐
325 face of an exported library, it must be made available by the package
326 config file.
327
328 Since 5.53.0.
329
330 FindLibGit2
331 Try to find libgit2 on a Unix system.
332
333 This will define the following variables:
334
335 LIBGIT2_FOUND
336 True if (the requested version of) libgit2 is available
337
338 LIBGIT2_VERSION
339 The version of libgit2
340
341 LIBGIT2_LIBRARIES
342 This can be passed to target_link_libraries() instead of the
343 LibGit2::LibGit2 target
344
345 LIBGIT2_INCLUDE_DIRS
346 This should be passed to target_include_directories() if the
347 target is not used for linking
348
349 LIBGIT2_DEFINITIONS
350 This should be passed to target_compile_options() if the target
351 is not used for linking
352
353 If LIBGIT2_FOUND is TRUE, it will also define the following imported
354 target:
355
356 LibGit2::LibGit2
357 The libgit2 library
358
359 In general we recommend using the imported target, as it is easier to
360 use. Bear in mind, however, that if the target is in the link inter‐
361 face of an exported library, it must be made available by the package
362 config file.
363
364 Since 1.3.0.
365
366 FindLibMount
367 Try to find the libmount library (part of util-linux), once done this
368 will define:
369
370 LibMount_FOUND
371 LibMount was found on the system.
372
373 LibMount_INCLUDE_DIRS
374 The libmount include directory.
375
376 LibMount_LIBRARIES
377 The libmount libraries.
378
379 LibMount_VERSION
380 The libmount version.
381
382 If LibMount_FOUND is TRUE, it will also define the following imported
383 target:
384
385 LibMount::LibMount
386 The libmount library
387
388 Since 5.83.0
389
390 FindLibcap
391 Try to find the setcap binary and cap libraries
392
393 This will define:
394
395 Libcap_FOUND
396 system has the cap library and setcap binary
397
398 Libcap_LIBRARIES
399 cap libraries to link against
400
401 SETCAP_EXECUTABLE
402 path of the setcap binary
403
404 In addition, the following targets are defined:
405 Libcap::SetCapabilities
406
407 Since 5.80.0
408
409 FindOpenEXR
410 Try to find the OpenEXR libraries.
411
412 This will define the following variables:
413
414 OpenEXR_FOUND
415 True if OpenEXR is available
416
417 OpenEXR_LIBRARIES
418 Link to these to use OpenEXR
419
420 OpenEXR_INCLUDE_DIRS
421 Include directory for OpenEXR
422
423 OpenEXR_DEFINITIONS
424 Compiler flags required to link against OpenEXR
425
426 and the following imported targets:
427
428 OpenEXR::IlmImf
429 The OpenEXR core library
430
431 In general we recommend using the imported target, as it is easier to
432 use. Bear in mind, however, that if the target is in the link inter‐
433 face of an exported library, it must be made available by the package
434 config file.
435
436 Since pre-1.0.0.
437
438 FindPhoneNumber
439 Try to find PhoneNumber.
440
441 This is a component-based find module, which makes use of the COMPO‐
442 NENTS and OPTIONAL_COMPONENTS arguments to find_module. The following
443 components are available:
444
445 PhoneNumber GeoCoding
446
447 If no components are specified, this module will act as though all com‐
448 ponents were passed to OPTIONAL_COMPONENTS.
449
450 This module will define the following variables, independently of the
451 components searched for or found:
452
453 PhoneNumber_FOUND
454 True if (the requestion version of) PhoneNumber is available
455
456 For each searched-for components, PhoneNumber_<component>_FOUND will be
457 set to TRUE if the corresponding library was found, and FALSE other‐
458 wise. If PhoneNumber_<component>_FOUND is TRUE, the imported target
459 PhoneNumber::<component> will be defined.
460
461 Since 5.54.0.
462
463 FindPoppler
464 Try to find Poppler.
465
466 This is a component-based find module, which makes use of the COMPO‐
467 NENTS and OPTIONAL_COMPONENTS arguments to find_module. The following
468 components are available:
469
470 Core Cpp Qt5 Qt4 Glib
471
472 If no components are specified, this module will act as though all com‐
473 ponents were passed to OPTIONAL_COMPONENTS.
474
475 This module will define the following variables, independently of the
476 components searched for or found:
477
478 Poppler_FOUND
479 TRUE if (the requested version of) Poppler is available
480
481 Poppler_VERSION
482 Found Poppler version
483
484 Poppler_TARGETS
485 A list of all targets imported by this module (note that there
486 may be more than the components that were requested)
487
488 Poppler_LIBRARIES
489 This can be passed to target_link_libraries() instead of the im‐
490 ported targets
491
492 Poppler_INCLUDE_DIRS
493 This should be passed to target_include_directories() if the
494 targets are not used for linking
495
496 Poppler_DEFINITIONS
497 This should be passed to target_compile_options() if the targets
498 are not used for linking
499
500 For each searched-for components, Poppler_<component>_FOUND will be set
501 to TRUE if the corresponding Poppler library was found, and FALSE oth‐
502 erwise. If Poppler_<component>_FOUND is TRUE, the imported target Pop‐
503 pler::<component> will be defined. This module will also attempt to
504 determine Poppler_*_VERSION variables for each imported target, al‐
505 though Poppler_VERSION should normally be sufficient.
506
507 In general we recommend using the imported targets, as they are easier
508 to use and provide more control. Bear in mind, however, that if any
509 target is in the link interface of an exported library, it must be made
510 available by the package config file.
511
512 Since 5.19
513
514 FindPulseAudio
515 Try to locate the PulseAudio library. If found, this will define the
516 following variables:
517
518 PulseAudio_FOUND
519 True if the system has the PulseAudio library of at least the
520 minimum version specified by either the version parameter to
521 find_package() or the variable PulseAudio_MINIMUM_VERSION
522
523 PulseAudio_INCLUDE_DIRS
524 The PulseAudio include directory
525
526 PulseAudio_LIBRARIES
527 The PulseAudio libraries for linking
528
529 PulseAudio_MAINLOOP_LIBRARY
530 The libraries needed to use PulseAudio Mainloop
531
532 PulseAudio_VERSION
533 The version of PulseAudio that was found
534
535 PulseAudio_INCLUDE_DIR
536 Deprecated, use PulseAudio_INCLUDE_DIRS
537
538 PulseAudio_LIBRARY
539 Deprecated, use PulseAudio_LIBRARIES
540
541 If PulseAudio_FOUND is TRUE, it will also define the following imported
542 target:
543
544 PulseAudio::PulseAudio
545 The PulseAudio library
546
547 Since 5.41.0.
548
549 FindQtWaylandScanner
550 Try to find qtwaylandscanner.
551
552 If the qtwaylandscanner executable is not in your PATH, you can provide
553 an alternative name or full path location with the QtWaylandScanner_EX‐
554 ECUTABLE variable.
555
556 This will define the following variables:
557
558 QtWaylandScanner_FOUND
559 True if qtwaylandscanner is available
560
561 QtWaylandScanner_EXECUTABLE
562 The qtwaylandscanner executable.
563
564 If QtWaylandScanner_FOUND is TRUE, it will also define the following
565 imported target:
566
567 Wayland::QtScanner
568 The qtwaylandscanner executable.
569
570 This module provides the following functions to generate C++ protocol
571 implementations:
572
573 • ecm_add_qtwayland_client_protocol
574
575 • ecm_add_qtwayland_server_protocol
576
577 ecm_add_qtwayland_client_protocol(<source_files_var>
578 PROTOCOL <xmlfile>
579 BASENAME <basename>
580 [PREFIX <prefix>])
581
582 Generate C++ wrapper to Wayland client protocol files from <xmlfile>
583 XML definition for the <basename> interface and append those files to
584 <source_files_var>. Pass the <prefix> argument if the interface names
585 don’t start with qt_ or wl_.
586
587 WaylandScanner is required and will be searched for.
588
589 ecm_add_qtwayland_server_protocol(<source_files_var>
590 PROTOCOL <xmlfile>
591 BASENAME <basename>
592 [PREFIX <prefix>])
593
594 Generate C++ wrapper to Wayland server protocol files from <xmlfile>
595 XML definition for the <basename> interface and append those files to
596 <source_files_var>. Pass the <prefix> argument if the interface names
597 don’t start with qt_ or wl_.
598
599 WaylandScanner is required and will be searched for.
600
601 Since 1.4.0.
602
603 FindSasl2
604 Try to find the SASL2 library.
605
606 This will define the following variables:
607
608 Sasl2_FOUND
609 System has SASL2.
610
611 Sasl2_VERSION
612 The version of SASL2.
613
614 Sasl2_INCLUDE_DIRS
615 This should be passed to target_include_directories() if the
616 target is not used for linking.
617
618 Sasl2_LIBRARIES
619 The SASL2 library. This can be passed to target_link_li‐
620 braries() instead of the Sasl2::Sasl2 target
621
622 If Sasl2_FOUND is TRUE, the following imported target will be avail‐
623 able:
624
625 Sasl2::Sasl2
626 The SASL2 library
627
628 Since 5.41.0.
629
630 FindSeccomp
631 Try to locate the libseccomp library.
632
633 This will define the following variables:
634
635 Seccomp_FOUND
636 True if the seccomp library is available
637
638 Seccomp_INCLUDE_DIRS
639 The seccomp include directories
640
641 Seccomp_LIBRARIES
642 The seccomp libraries for linking
643
644 If Seccomp_FOUND is TRUE, it will also define the following imported
645 target:
646
647 Seccomp::Seccomp
648 The Seccomp library
649
650 Since 5.44.0.
651
652 FindSharedMimeInfo
653 Try to find the shared-mime-info package.
654
655 This will define the following variables:
656
657 SharedMimeInfo_FOUND
658 True if system has the shared-mime-info package
659
660 UPDATE_MIME_DATABASE_EXECUTABLE
661 The update-mime-database executable
662
663 and the following imported targets:
664
665 SharedMimeInfo::UpdateMimeDatabase
666 The update-mime-database executable
667
668 The follow macro is available:
669
670 update_xdg_mimetypes(<path>)
671
672 Updates the XDG mime database at install time (unless the $DESTDIR en‐
673 vironment variable is set, in which case it is up to package managers
674 to perform this task).
675
676 Since pre-1.0.0.
677
678 FindTaglib
679 Try to find the Taglib library.
680
681 This will define the following variables:
682
683 Taglib_FOUND
684 True if the system has the taglib library of at least the mini‐
685 mum version specified by the version parameter to find_package()
686
687 Taglib_INCLUDE_DIRS
688 The taglib include dirs for use with target_include_directories
689
690 Taglib_LIBRARIES
691 The taglib libraries for use with target_link_libraries()
692
693 Taglib_VERSION
694 The version of taglib that was found
695
696 If Taglib_FOUND is TRUE, it will also define the following imported
697 target:
698
699 Taglib::Taglib
700 The Taglib library
701
702 Since 5.72.0
703
704 FindUDev
705 Try to find the UDev library.
706
707 This will define the following variables:
708
709 UDev_FOUND
710 System has UDev.
711
712 UDev_INCLUDE_DIRS
713 The libudev include directory.
714
715 UDev_LIBRARIES
716 The libudev libraries.
717
718 UDev_VERSION
719 The libudev version.
720
721 If UDev_FOUND is TRUE, it will also define the following imported tar‐
722 get:
723
724 UDev::UDev
725 The UDev library
726
727 Since 5.57.0.
728
729 FindWayland
730 Try to find Wayland.
731
732 This is a component-based find module, which makes use of the COMPO‐
733 NENTS and OPTIONAL_COMPONENTS arguments to find_module. The following
734 components are available:
735
736 Client Server Cursor Egl
737
738 If no components are specified, this module will act as though all com‐
739 ponents were passed to OPTIONAL_COMPONENTS.
740
741 This module will define the following variables, independently of the
742 components searched for or found:
743
744 Wayland_FOUND
745 TRUE if (the requested version of) Wayland is available
746
747 Wayland_VERSION
748 Found Wayland version
749
750 Wayland_TARGETS
751 A list of all targets imported by this module (note that there
752 may be more than the components that were requested)
753
754 Wayland_LIBRARIES
755 This can be passed to target_link_libraries() instead of the im‐
756 ported targets
757
758 Wayland_INCLUDE_DIRS
759 This should be passed to target_include_directories() if the
760 targets are not used for linking
761
762 Wayland_DEFINITIONS
763 This should be passed to target_compile_options() if the targets
764 are not used for linking
765
766 Wayland_DATADIR
767 The core wayland protocols data directory Since 5.73.0
768
769 For each searched-for components, Wayland_<component>_FOUND will be set
770 to TRUE if the corresponding Wayland library was found, and FALSE oth‐
771 erwise. If Wayland_<component>_FOUND is TRUE, the imported target Way‐
772 land::<component> will be defined. This module will also attempt to
773 determine Wayland_*_VERSION variables for each imported target, al‐
774 though Wayland_VERSION should normally be sufficient.
775
776 In general we recommend using the imported targets, as they are easier
777 to use and provide more control. Bear in mind, however, that if any
778 target is in the link interface of an exported library, it must be made
779 available by the package config file.
780
781 Since pre-1.0.0.
782
783 FindWaylandProtocols
784 Try to find wayland-protocols on a Unix system.
785
786 This will define the following variables:
787
788 WaylandProtocols_FOUND
789 True if (the requested version of) wayland-protocols is avail‐
790 able
791
792 WaylandProtocols_VERSION
793 The version of wayland-protocols
794
795 WaylandProtocols_DATADIR
796 The wayland protocols data directory
797
798 FindWaylandScanner
799 Try to find wayland-scanner.
800
801 If the wayland-scanner executable is not in your PATH, you can provide
802 an alternative name or full path location with the WaylandScanner_EXE‐
803 CUTABLE variable.
804
805 This will define the following variables:
806
807 WaylandScanner_FOUND
808 True if wayland-scanner is available.
809
810 WaylandScanner_EXECUTABLE
811 The wayland-scanner executable.
812
813 If WaylandScanner_FOUND is TRUE, it will also define the following im‐
814 ported target:
815
816 Wayland::Scanner
817 The wayland-scanner executable.
818
819 This module provides the following functions to generate C protocol im‐
820 plementations:
821
822 • ecm_add_wayland_client_protocol
823
824 • ecm_add_wayland_server_protocol
825
826 ecm_add_wayland_client_protocol(<source_files_var>
827 PROTOCOL <xmlfile>
828 BASENAME <basename>)
829
830 Generate Wayland client protocol files from <xmlfile> XML definition
831 for the <basename> interface and append those files to
832 <source_files_var>.
833
834 ecm_add_wayland_server_protocol(<source_files_var>
835 PROTOCOL <xmlfile>
836 BASENAME <basename>)
837
838 Generate Wayland server protocol files from <xmlfile> XML definition
839 for the <basename> interface and append those files to
840 <source_files_var>.
841
842 Since 1.4.0.
843
844 FindX11_XCB
845 Try to find the X11 XCB compatibility library.
846
847 This will define the following variables:
848
849 X11_XCB_FOUND
850 True if (the requested version of) libX11-xcb is available
851
852 X11_XCB_VERSION
853 The version of libX11-xcb (this is not guaranteed to be set even
854 when X11_XCB_FOUND is true)
855
856 X11_XCB_LIBRARIES
857 This can be passed to target_link_libraries() instead of the
858 EGL::EGL target
859
860 X11_XCB_INCLUDE_DIR
861 This should be passed to target_include_directories() if the
862 target is not used for linking
863
864 X11_XCB_DEFINITIONS
865 This should be passed to target_compile_options() if the target
866 is not used for linking
867
868 If X11_XCB_FOUND is TRUE, it will also define the following imported
869 target:
870
871 X11::XCB
872 The X11 XCB compatibility library
873
874 In general we recommend using the imported target, as it is easier to
875 use. Bear in mind, however, that if the target is in the link inter‐
876 face of an exported library, it must be made available by the package
877 config file.
878
879 Since pre-1.0.0.
880
881 FindXCB
882 Try to find XCB.
883
884 This is a component-based find module, which makes use of the COMPO‐
885 NENTS and OPTIONAL_COMPONENTS arguments to find_module. The following
886 components are available:
887
888 XCB
889 ATOM AUX COMPOSITE CURSOR DAMAGE
890 DPMS DRI2 DRI3 EVENT EWMH
891 GLX ICCCM IMAGE KEYSYMS PRESENT
892 RANDR RECORD RENDER RENDERUTIL RES
893 SCREENSAVER SHAPE SHM SYNC UTIL
894 XEVIE XF86DRI XFIXES XINERAMA XINPUT
895 XKB XPRINT XTEST XV XVMC
896
897 If no components are specified, this module will act as though all com‐
898 ponents except XINPUT (which is considered unstable) were passed to OP‐
899 TIONAL_COMPONENTS.
900
901 This module will define the following variables, independently of the
902 components searched for or found:
903
904 XCB_FOUND
905 True if (the requestion version of) xcb is available
906
907 XCB_VERSION
908 Found xcb version
909
910 XCB_TARGETS
911 A list of all targets imported by this module (note that there
912 may be more than the components that were requested)
913
914 XCB_LIBRARIES
915 This can be passed to target_link_libraries() instead of the im‐
916 ported targets
917
918 XCB_INCLUDE_DIRS
919 This should be passed to target_include_directories() if the
920 targets are not used for linking
921
922 XCB_DEFINITIONS
923 This should be passed to target_compile_options() if the targets
924 are not used for linking
925
926 For each searched-for components, XCB_<component>_FOUND will be set to
927 true if the corresponding xcb library was found, and false otherwise.
928 If XCB_<component>_FOUND is true, the imported target XCB::<component>
929 will be defined. This module will also attempt to determine XCB_*_VER‐
930 SION variables for each imported target, although XCB_VERSION should
931 normally be sufficient.
932
933 In general we recommend using the imported targets, as they are easier
934 to use and provide more control. Bear in mind, however, that if any
935 target is in the link interface of an exported library, it must be made
936 available by the package config file.
937
938 Since pre-1.0.0.
939
940 Findepoxy
941 Try to find libepoxy on a Unix system.
942
943 This will define the following variables:
944
945 epoxy_FOUND
946 True if (the requested version of) libepoxy is available
947
948 epoxy_VERSION
949 The version of libepoxy
950
951 epoxy_LIBRARIES
952 This should be passed to target_link_libraries() if the target
953 is not used for linking
954
955 epoxy_INCLUDE_DIRS
956 This should be passed to target_include_directories() if the
957 target is not used for linking
958
959 epoxy_DEFINITIONS
960 This should be passed to target_compile_options() if the target
961 is not used for linking
962
963 epoxy_HAS_GLX
964 True if GLX support is available
965
966 If epoxy_FOUND is TRUE, it will also define the following imported tar‐
967 get:
968
969 epoxy::epoxy
970 The epoxy library
971
972 In general we recommend using the imported target, as it is easier to
973 use. Bear in mind, however, that if the target is in the link inter‐
974 face of an exported library, it must be made available by the package
975 config file.
976
977 Findgzip
978 Try to find gzip.
979
980 If the gzip executable is not in your PATH, you can provide an alterna‐
981 tive name or full path location with the gzip_EXECUTABLE variable.
982
983 This will define the following variables:
984
985 gzip_FOUND
986 TRUE if gzip is available
987
988 gzip_EXECUTABLE
989 Path to gzip executable
990
991 If gzip_FOUND is TRUE, it will also define the following imported tar‐
992 get:
993
994 gzip::gzip
995 Path to gzip executable
996
997 Since 5.85.0.
998
1000 ecm(7), ecm-modules(7), ecm-kde-modules(7)
1001
1003 KDE Developers
1004
1005
1006
1007
10085.88 Nov 08, 2021 ECM-FIND-MODULES(7)