Mercurial > minori
view CMakeLists.txt @ 80:825506f0e221
[UNFINISHED]: stuff
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Fri, 13 Oct 2023 13:15:19 -0400 |
parents | d3e9310598b1 |
children | 9b2b41f83a5e |
line wrap: on
line source
cmake_minimum_required(VERSION 3.16) project(minori LANGUAGES CXX) # this should check for the target system, rather than # the host system, for cross-compiling purposes if(APPLE) enable_language(OBJCXX) endif() set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") option(BUILD_SHARED_LIBS "Build using shared libraries" ON) option(USE_QT6 "Build with Qt 6 instead of Qt 5" OFF) add_subdirectory(dep/anitomy) add_subdirectory(dep/animia) add_subdirectory(dep/pugixml) # Fix for mingw64 list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".a") if(USE_QT6) find_package(Qt6 COMPONENTS Widgets REQUIRED) else() find_package(Qt5 COMPONENTS Widgets REQUIRED) endif() find_package(CURL REQUIRED) set(LIBRARIES ${CURL_LIBRARIES} anitomy animia ) if(USE_QT6) list(APPEND LIBRARIES ${Qt6Widgets_LIBRARIES}) else() list(APPEND LIBRARIES ${Qt5Widgets_LIBRARIES}) endif() # We need Cocoa for some OS X stuff if(APPLE) find_library(COCOA_LIBRARY Cocoa) list(APPEND LIBRARIES ${COCOA_LIBRARY}) endif() set(SRC_FILES # Main entrypoint src/main.cpp # Core files and datatype declarations... src/core/anime.cpp src/core/anime_db.cpp src/core/config.cpp src/core/date.cpp src/core/filesystem.cpp src/core/http.cpp src/core/json.cpp src/core/strings.cpp src/core/time.cpp # Main window src/gui/window.cpp src/gui/dark_theme.cpp # Main window pages src/gui/pages/anime_list.cpp src/gui/pages/now_playing.cpp src/gui/pages/statistics.cpp src/gui/pages/search.cpp src/gui/pages/seasons.cpp src/gui/pages/torrents.cpp src/gui/pages/history.cpp # Custom widgets src/gui/widgets/anime_info.cpp src/gui/widgets/poster.cpp src/gui/widgets/clickable_label.cpp src/gui/widgets/sidebar.cpp src/gui/widgets/text.cpp src/gui/widgets/optional_date.cpp # Dialogs src/gui/dialog/about.cpp src/gui/dialog/information.cpp src/gui/dialog/settings.cpp src/gui/dialog/settings/application.cpp src/gui/dialog/settings/services.cpp # Translate src/gui/translate/anime.cpp src/gui/translate/anilist.cpp # Services (only AniList for now) src/services/services.cpp src/services/anilist.cpp # Tracking src/track/media.cpp # Qt resources rc/icons.qrc dep/darkstyle/darkstyle.qrc ) if(APPLE) # Mac OS X (or OS X (or macOS)) list(APPEND SRC_FILES src/sys/osx/dark_theme.mm src/sys/osx/filesystem.mm ) elseif(WIN32) # Windows list(APPEND SRC_FILES src/sys/win32/dark_theme.cpp) endif() add_executable(minori ${SRC_FILES}) set_property(TARGET minori PROPERTY CXX_STANDARD 11) set_property(TARGET minori PROPERTY AUTOMOC ON) set_property(TARGET minori PROPERTY AUTORCC ON) target_include_directories(minori PUBLIC ${CURL_INCLUDE_DIRS} PRIVATE include dep/pugixml/src dep/animia/include dep/anitomy) if(USE_QT6) target_include_directories(minori PUBLIC ${Qt6Widgets_INCLUDE_DIRS}) else() target_include_directories(minori PUBLIC ${Qt5Widgets_INCLUDE_DIRS}) endif() target_compile_options(minori PRIVATE -Wall -Wpedantic -Wextra -Wsuggest-override -Wold-style-cast) if(APPLE) target_compile_definitions(minori PUBLIC MACOSX) elseif(WIN32) target_compile_definitions(minori PUBLIC WIN32) endif() target_link_libraries(minori ${LIBRARIES})