Enable MinSizeRel builds to produce a Windows executable. Added a sleep interval in the focus monitor loop to decrease CPU usage during execution, improving performance efficiency.
51 lines
1.5 KiB
CMake
51 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.30)
|
|
project(Toolbox)
|
|
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
set(saucer_no_version_check ON)
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
option(BUILD_SHARED_LIBS "Build as shared library" ON)
|
|
|
|
add_subdirectory(lib/c_tray)
|
|
add_subdirectory(lib/json)
|
|
add_subdirectory(lib/cppcodec)
|
|
add_subdirectory(lib/saucer)
|
|
add_subdirectory(lib/lua)
|
|
add_subdirectory(lib/sol2)
|
|
|
|
include_directories(inc)
|
|
include_directories(lib/json/include/nlohmann)
|
|
#include_directories(out_embed)
|
|
|
|
if(WIN32)
|
|
set(RESOURCE_FILES toolbox.rc)
|
|
endif()
|
|
|
|
# Header-Datei einbinden
|
|
include_directories(lib/c_tray)
|
|
|
|
# Plattformabhängige Einstellungen
|
|
if(WIN32)
|
|
set(PLATFORM_SOURCES lib/c_tray/tray_windows.c)
|
|
set(LIBS shell32)
|
|
elseif(APPLE)
|
|
set(PLATFORM_SOURCES lib/c_tray/tray_darwin.m)
|
|
find_library(COCOA_LIBRARY Cocoa)
|
|
set(LIBS ${COCOA_LIBRARY})
|
|
elseif(UNIX)
|
|
set(PLATFORM_SOURCES lib/c_tray/tray_linux.c)
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(APPINDICATOR REQUIRED appindicator3-0.1)
|
|
include_directories(${APPINDICATOR_INCLUDE_DIRS})
|
|
set(LIBS ${APPINDICATOR_LIBRARIES})
|
|
endif()
|
|
|
|
file(GLOB_RECURSE SOURCES "src/*.cpp" "inc/*.h")
|
|
add_executable(Toolbox main.cpp ${SOURCES} ${RESOURCE_FILES} ${PLATFORM_SOURCES})
|
|
|
|
target_include_directories(${PROJECT_NAME} PRIVATE "out_embed")
|
|
target_link_libraries(Toolbox PRIVATE saucer::saucer sol2::sol2 lua tray nlohmann_json cppcodec)
|
|
|
|
if(WIN32 AND (CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "MinSizeRel"))
|
|
set_target_properties(Toolbox PROPERTIES WIN32_EXECUTABLE TRUE)
|
|
endif() |