Mercurial > libanimone
annotate CMakeLists.txt @ 32:93224b26a0ee default tip
player: efforts towards C-ization
author | Paper <paper@tflc.us> |
---|---|
date | Mon, 10 Feb 2025 19:17:29 -0500 |
parents | 40fd3776ce9b |
children |
rev | line source |
---|---|
26
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
1 cmake_minimum_required(VERSION 3.16) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
2 project(animone LANGUAGES CXX) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
3 set(SRC_FILES |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
4 # any non-platform-specific files go here |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
5 src/animone.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
6 src/player.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
7 src/util.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
8 src/strategist.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
9 src/fd.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
10 src/a11y.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
11 src/win.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
12 ) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
13 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
14 set(LIBRARIES) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
15 set(INCLUDE_DIRS) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
16 set(DEFINES) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
17 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
18 list(APPEND DEFINES DLL_EXPORT) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
19 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
20 if(APPLE) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
21 list(APPEND DEFINES USE_MACOSX) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
22 list(APPEND SRC_FILES |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
23 # xnu stuff |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
24 src/fd/xnu.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
25 src/win/quartz.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
26 ) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
27 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
28 # ... |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
29 find_library(OBJC_LIBRARY objc REQUIRED) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
30 find_library(FOUNDATION_LIBRARY Foundation REQUIRED) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
31 find_library(COREGRAPHICS_LIBRARY CoreGraphics REQUIRED) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
32 find_library(APPLICATIONSERVICES_LIBRARY ApplicationServices REQUIRED) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
33 list(APPEND LIBRARIES ${FOUNDATION_LIBRARY} ${COREGRAPHICS_LIBRARY} ${APPLICATIONSERVICES_LIBRARY} ${OBJC_LIBRARY}) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
34 elseif(WIN32) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
35 list(APPEND DEFINES USE_WIN32) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
36 list(APPEND SRC_FILES |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
37 # win32 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
38 src/a11y/win32.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
39 src/fd/win32.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
40 src/win/win32.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
41 src/util/win32.cc |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
42 ) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
43 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
44 find_library(OLE32_LIB ole32 REQUIRED) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
45 find_library(OLEAUT32_LIB oleaut32 REQUIRED) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
46 list(APPEND LIBRARIES ${OLE32_LIB} ${OLEAUT32_LIB}) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
47 else() # NOT WIN32 AND NOT APPLE |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
48 find_library(LIBUTIL_LIB util) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
49 find_library(LIBKVM_LIB kvm) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
50 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
51 if(LINUX) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
52 list(APPEND DEFINES USE_LINUX) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
53 list(APPEND SRC_FILES src/fd/proc.cc) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
54 elseif(LIBUTIL_LIBRARY) # FreeBSD |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
55 # stupid hackarounds |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
56 get_filename_component(LIBUTIL_DIR ${LIBUTIL_LIBRARY} DIRECTORY) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
57 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
58 include(CheckLibraryExists) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
59 check_library_exists(util kinfo_getfile ${LIBUTIL_DIR} LIBUTIL_GOOD) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
60 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
61 if(LIBUTIL_GOOD) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
62 list(APPEND DEFINES USE_FREEBSD) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
63 list(APPEND LIBRARIES ${LIBUTIL_LIBRARY}) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
64 list(APPEND SRC_FILES src/fd/freebsd.cc) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
65 endif() # LIBUTIL_GOOD |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
66 elseif(LIBKVM_LIBRARY) # OpenBSD |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
67 get_filename_component(LIBKVM_DIR ${LIBKVM_LIBRARY} DIRECTORY) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
68 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
69 include(CheckLibraryExists) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
70 check_library_exists(kvm kvm_getfiles ${LIBKVM_DIR} LIBKVM_HAS_GETFILES) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
71 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
72 if(LIBKVM_HAS_GETFILES) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
73 list(APPEND DEFINES USE_OPENBSD) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
74 list(APPEND LIBRARIES ${LIBKVM_LIBRARY}) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
75 list(APPEND SRC_FILES src/fd/openbsd.cc) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
76 endif() # LIBKVM_HAS_GETFILES |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
77 endif() # LINUX |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
78 endif() # WIN32 AND APPLE |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
79 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
80 # X11 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
81 find_package(PkgConfig) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
82 if(PKG_CONFIG_FOUND) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
83 pkg_check_modules(XCB xcb xcb-res) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
84 if (XCB_FOUND) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
85 list(APPEND DEFINES USE_X11) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
86 list(APPEND LIBRARIES ${XCB_LINK_LIBRARIES}) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
87 list(APPEND INCLUDE_DIRS ${XCB_INCLUDE_DIRS}) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
88 list(APPEND SRC_FILES src/win/x11.cc) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
89 endif() # XCB_FOUND |
28 | 90 |
91 pkg_check_modules(ATSPI atspi-2) | |
92 if (ATSPI_FOUND) | |
93 list(APPEND DEFINES USE_ATSPI) | |
94 list(APPEND LIBRARIES ${ATSPI_LINK_LIBRARIES}) | |
95 list(APPEND INCLUDE_DIRS ${ATSPI_INCLUDE_DIRS}) | |
96 list(APPEND SRC_FILES src/a11y/atspi.cc) | |
97 endif() # ATSPI_FOUND | |
26
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
98 endif() # PKG_CONFIG_FOUND |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
99 |
29 | 100 add_library(animone SHARED ${SRC_FILES}) |
101 set_target_properties(animone PROPERTIES | |
102 PUBLIC_HEADER include/animone.h | |
26
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
103 CXX_STANDARD 17 |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
104 ) |
77a5ea5e996c
*: transfer back to cmake from autotools
Paper <paper@paper.us.eu.org>
parents:
diff
changeset
|
105 |
29 | 106 target_compile_definitions(animone PRIVATE ${DEFINES}) |
107 target_include_directories(animone PUBLIC include PRIVATE ${INCLUDE_DIRS}) | |
108 target_link_libraries(animone PUBLIC ${LIBRARIES}) |