Mercurial > minori
view dep/animia/CMakeLists.txt @ 163:44c5e6dd9488
dep/animia/osx: move GetProcessName to util/osx so we can use it in quartz
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Sat, 18 Nov 2023 00:47:40 -0500 |
parents | 61b76c7b656a |
children | 54c5d80a737e |
line wrap: on
line source
cmake_minimum_required(VERSION 3.16) project(animia LANGUAGES CXX) set(SRC_FILES # any non-platform-specific files go here src/animia.cc src/player.cc src/util.cc src/strategist.cc src/fd.cc src/win.cc ) include(CheckLanguage) set(LIBRARIES) set(INCLUDE_DIRS) set(DEFINES) if(APPLE) list(APPEND DEFINES MACOSX) list(APPEND SRC_FILES # xnu stuff src/fd/xnu.cc src/util/osx.cc ) include(CheckIncludeFile) check_include_file("CoreFoundation/CoreFoundation.h" HAVE_COREFOUNDATION) # If you're building on OS X, you most likely do have this file, but we # check anyway. if (HAVE_COREFOUNDATION) list(APPEND DEFINES HAVE_COREFOUNDATION) endif() check_language(OBJCXX) if(CMAKE_OBJCXX_COMPILER) enable_language(OBJCXX) list(APPEND SRC_FILES src/win/quartz.mm ) find_library(FOUNDATION_LIBRARY Foundation) find_library(COREGRAPHICS_LIBRARY CoreGraphics) find_library(APPKIT_LIBRARY AppKit) list(APPEND LIBRARIES ${FOUNDATION_LIBRARY} ${COREGRAPHICS_LIBRARY} ${APPKIT_LIBRARY}) else() # NOT CMAKE_OBJCXX_COMPILER message(WARNING "An Objective-C++ compiler couldn't be found! Window enumeration support will not be compiled.") endif() # CMAKE_OBJCXX_COMPILER elseif(WIN32) list(APPEND DEFINES WIN32) list(APPEND SRC_FILES # win32 src/fd/win32.cc src/win/win32.cc src/util/win32.cc ) else() # NOT WIN32 AND NOT APPLE if(LINUX) list(APPEND DEFINES LINUX) list(APPEND SRC_FILES # linux src/fd/linux.cc ) endif() # LINUX # X11 find_package(X11 COMPONENTS X11) if(X11_FOUND) list(APPEND DEFINES X11) list(APPEND SRC_FILES src/win/x11.cc ) list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS} ) list(APPEND LIBRARIES ${X11_LIBRARIES} ) else() # NOT X11_FOUND # For some systems, i.e. Debian, FindX11 fails to find X11, so we have # to use pkg_config as a fallback find_package(PkgConfig) if(PKG_CONFIG_FOUND) pkg_check_modules(X11 x11) if(X11_FOUND) list(APPEND DEFINES X11) list(APPEND SRC_FILES src/win/x11.cc ) list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS} ) list(APPEND LIBRARIES ${X11_LIBRARIES} ) endif() # X11_FOUND endif() # PKG_CONFIG_FOUND endif() # X11_FOUND endif() # WIN32 AND APPLE add_library(animia SHARED ${SRC_FILES}) set_target_properties(animia PROPERTIES PUBLIC_HEADER include/animia.h CXX_STANDARD 17 ) target_compile_definitions(animia PUBLIC ${DEFINES}) target_include_directories(animia PRIVATE include PUBLIC ${INCLUDE_DIRS}) target_link_libraries(animia PUBLIC ${LIBRARIES})