@@ -12,9 +12,16 @@ includedir = [ install-path.includedir $(prefix) ] ;
1212make enum-flags.pc : : @write-pc ;
1313install install-pc : enum-flags.pc : <location>$(libdir)/pkgconfig ;
1414
15+ make enumflags-config.cmake : : @write-cmake-config ;
16+ make enumflags-config-version.cmake : : @write-cmake-version ;
17+ install install-cmake
18+ : enumflags-config.cmake
19+ enumflags-config-version.cmake
20+ : <location>$(libdir)/cmake/enumflags-$(VERSION)
21+ ;
1522
16- alias install : install-pc ;
17- explicit install install-pc ;
23+ alias install : install-pc install-cmake ;
24+ explicit install install-pc install-cmake ;
1825
1926
2027rule write-pc ( target : sources * : properties * ) {
@@ -28,6 +35,40 @@ rule write-pc ( target : sources * : properties * ) {
2835}
2936
3037
38+ rule write-cmake-config ( target : sources * : properties * ) {
39+ write $(target)
40+ : "if(TARGET EnumFlags::EnumFlags)"
41+ " return()"
42+ "endif()"
43+ ""
44+ "add_library(EnumFlags::EnumFlags INTERFACE IMPORTED)"
45+ "set_target_properties("
46+ " EnumFlags::EnumFlags"
47+ " PROPERTIES INTERFACE_INCLUDE_DIRECTORIES \"$(includedir)\""
48+ ")"
49+ ""
50+ ;
51+ }
52+
53+
54+ rule write-cmake-version ( target : sources * : properties * ) {
55+ write $(target)
56+ : "set(PACKAGE_VERSION $(VERSION))"
57+ ""
58+ "if(NOT PACKAGE_FIND_VERSION OR PACKAGE_FIND_VERSION EQUAL $(VERSION))"
59+ " set(PACKAGE_VERSION_EXACT TRUE)"
60+ " set(PACKAGE_VERSION_COMPATIBLE TRUE)"
61+ " set(PACKAGE_VERSION_UNSUITABLE FALSE)"
62+ "else()"
63+ " set(PACKAGE_VERSION_EXACT FALSE)"
64+ " set(PACKAGE_VERSION_COMPATIBLE FALSE)"
65+ " set(PACKAGE_VERSION_UNSUITABLE TRUE)"
66+ "endif()"
67+ ""
68+ ;
69+ }
70+
71+
3172local rule write ( target : content * ) {
3273 print.output $(target) ;
3374 print.text $(content) ;
0 commit comments