Mercurial > minori
comparison dep/animone/CMakeLists.txt @ 343:1faa72660932
*: transfer back to cmake from autotools
autotools just made lots of things more complicated than
they should have and many things broke (i.e. translations)
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Thu, 20 Jun 2024 05:56:06 -0400 |
| parents | |
| children | 886f66775f31 |
comparison
equal
deleted
inserted
replaced
| 342:adb79bdde329 | 343:1faa72660932 |
|---|---|
| 1 cmake_minimum_required(VERSION 3.16) | |
| 2 project(animone LANGUAGES CXX) | |
| 3 set(SRC_FILES | |
| 4 # any non-platform-specific files go here | |
| 5 src/animone.cc | |
| 6 src/player.cc | |
| 7 src/util.cc | |
| 8 src/strategist.cc | |
| 9 src/fd.cc | |
| 10 src/a11y.cc | |
| 11 src/win.cc | |
| 12 ) | |
| 13 | |
| 14 set(LIBRARIES) | |
| 15 set(INCLUDE_DIRS) | |
| 16 set(DEFINES) | |
| 17 | |
| 18 list(APPEND DEFINES DLL_EXPORT) | |
| 19 | |
| 20 if(APPLE) | |
| 21 list(APPEND DEFINES USE_MACOSX) | |
| 22 list(APPEND SRC_FILES | |
| 23 # xnu stuff | |
| 24 src/fd/xnu.cc | |
| 25 src/win/quartz.cc | |
| 26 ) | |
| 27 | |
| 28 # ... | |
| 29 find_library(OBJC_LIBRARY objc REQUIRED) | |
| 30 find_library(FOUNDATION_LIBRARY Foundation REQUIRED) | |
| 31 find_library(COREGRAPHICS_LIBRARY CoreGraphics REQUIRED) | |
| 32 find_library(APPLICATIONSERVICES_LIBRARY ApplicationServices REQUIRED) | |
| 33 list(APPEND LIBRARIES ${FOUNDATION_LIBRARY} ${COREGRAPHICS_LIBRARY} ${APPLICATIONSERVICES_LIBRARY} ${OBJC_LIBRARY}) | |
| 34 elseif(WIN32) | |
| 35 list(APPEND DEFINES USE_WIN32) | |
| 36 list(APPEND SRC_FILES | |
| 37 # win32 | |
| 38 src/a11y/win32.cc | |
| 39 src/fd/win32.cc | |
| 40 src/win/win32.cc | |
| 41 src/util/win32.cc | |
| 42 ) | |
| 43 | |
| 44 find_library(OLE32_LIB ole32 REQUIRED) | |
| 45 find_library(OLEAUT32_LIB oleaut32 REQUIRED) | |
| 46 list(APPEND LIBRARIES ${OLE32_LIB} ${OLEAUT32_LIB}) | |
| 47 else() # NOT WIN32 AND NOT APPLE | |
| 48 find_library(LIBUTIL_LIB util) | |
| 49 find_library(LIBKVM_LIB kvm) | |
| 50 | |
| 51 if(LINUX) | |
| 52 list(APPEND DEFINES USE_LINUX) | |
| 53 list(APPEND SRC_FILES src/fd/proc.cc) | |
| 54 elseif(LIBUTIL_LIBRARY) # FreeBSD | |
| 55 # stupid hackarounds | |
| 56 get_filename_component(LIBUTIL_DIR ${LIBUTIL_LIBRARY} DIRECTORY) | |
| 57 | |
| 58 include(CheckLibraryExists) | |
| 59 check_library_exists(util kinfo_getfile ${LIBUTIL_DIR} LIBUTIL_GOOD) | |
| 60 | |
| 61 if(LIBUTIL_GOOD) | |
| 62 list(APPEND DEFINES USE_FREEBSD) | |
| 63 list(APPEND LIBRARIES ${LIBUTIL_LIBRARY}) | |
| 64 list(APPEND SRC_FILES src/fd/freebsd.cc) | |
| 65 endif() # LIBUTIL_GOOD | |
| 66 elseif(LIBKVM_LIBRARY) # OpenBSD | |
| 67 get_filename_component(LIBKVM_DIR ${LIBKVM_LIBRARY} DIRECTORY) | |
| 68 | |
| 69 include(CheckLibraryExists) | |
| 70 check_library_exists(kvm kvm_getfiles ${LIBKVM_DIR} LIBKVM_HAS_GETFILES) | |
| 71 | |
| 72 if(LIBKVM_HAS_GETFILES) | |
| 73 list(APPEND DEFINES USE_OPENBSD) | |
| 74 list(APPEND LIBRARIES ${LIBKVM_LIBRARY}) | |
| 75 list(APPEND SRC_FILES src/fd/openbsd.cc) | |
| 76 endif() # LIBKVM_HAS_GETFILES | |
| 77 endif() # LINUX | |
| 78 endif() # WIN32 AND APPLE | |
| 79 | |
| 80 # X11 | |
| 81 find_package(PkgConfig) | |
| 82 if(PKG_CONFIG_FOUND) | |
| 83 pkg_check_modules(XCB xcb xcb-res) | |
| 84 if (XCB_FOUND) | |
| 85 list(APPEND DEFINES USE_X11) | |
| 86 list(APPEND LIBRARIES ${XCB_LINK_LIBRARIES}) | |
| 87 list(APPEND INCLUDE_DIRS ${XCB_INCLUDE_DIRS}) | |
| 88 list(APPEND SRC_FILES src/win/x11.cc) | |
| 89 endif() # XCB_FOUND | |
| 90 endif() # PKG_CONFIG_FOUND | |
| 91 | |
| 92 add_library(animia SHARED ${SRC_FILES}) | |
| 93 set_target_properties(animia PROPERTIES | |
| 94 PUBLIC_HEADER include/animia.h | |
| 95 CXX_STANDARD 17 | |
| 96 ) | |
| 97 | |
| 98 target_compile_definitions(animia PRIVATE ${DEFINES}) | |
| 99 target_include_directories(animia PUBLIC include PRIVATE ${INCLUDE_DIRS}) | |
| 100 target_link_libraries(animia PUBLIC ${LIBRARIES}) |
