a mega cool windows xp app
at v0.1.1 1.7 kB view raw
1cmake_minimum_required(VERSION 3.16) 2project(ShortwaveApp CXX) 3 4# Generate compile_commands.json for editor support 5set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 6 7# Target Windows XP compatibility 8add_definitions(-DWINVER=0x0501) 9add_definitions(-D_WIN32_WINNT=0x0501) 10add_definitions(-D_WIN32_WINNT_WIN2K=0x0500) 11add_definitions(-DMINGW_HAS_SECURE_API=1) 12 13# Disable threading to avoid mcfgthread dependency 14add_compile_options(-fno-threadsafe-statics) 15add_compile_options(-D_GLIBCXX_HAS_GTHREADS=0) 16 17add_executable(ShortwaveApp WIN32 main.cpp) 18 19# Add BASS library from libs directory 20target_include_directories(ShortwaveApp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 21target_link_libraries(ShortwaveApp user32 gdi32 winmm wininet ${CMAKE_CURRENT_SOURCE_DIR}/libs/bass.lib) 22 23# Include current directory for headers 24target_include_directories(ShortwaveApp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) 25 26# Minimal static linking and avoid threading dependencies 27target_link_options(ShortwaveApp PRIVATE 28 -static-libgcc 29 -static-libstdc++ 30 -static 31 -Wl,--subsystem,windows:5.01 32) 33 34# Configurable output directory 35if(DEFINED OUTPUT_DIR) 36 set_target_properties(ShortwaveApp PROPERTIES 37 RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}" 38 RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}" 39 RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}" 40 ) 41endif() 42 43set_target_properties(ShortwaveApp PROPERTIES 44 OUTPUT_NAME "Shortwave" 45) 46 47# Configurable output directory 48if(DEFINED OUTPUT_DIR) 49 set_target_properties(ShortwaveApp PROPERTIES 50 RUNTIME_OUTPUT_DIRECTORY "${OUTPUT_DIR}" 51 RUNTIME_OUTPUT_DIRECTORY_DEBUG "${OUTPUT_DIR}" 52 RUNTIME_OUTPUT_DIRECTORY_RELEASE "${OUTPUT_DIR}" 53 ) 54endif()