cmake_minimum_required(VERSION 3.20) project(WindowsSetupCpp LANGUAGES CXX) enable_language(RC) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) add_executable(WindowsSetup WIN32 src/main.cpp src/util.cpp app.rc ) set_property(TARGET WindowsSetup PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$:Debug>") target_compile_definitions(WindowsSetup PRIVATE UNICODE _UNICODE WIN32_LEAN_AND_MEAN NOMINMAX ) target_compile_options(WindowsSetup PRIVATE /utf-8 /W4 /permissive- ) target_link_libraries(WindowsSetup PRIVATE user32 gdi32 gdiplus ole32 ) target_link_options(WindowsSetup PRIVATE /MANIFEST:NO) if(CMAKE_SIZEOF_VOID_P EQUAL 8) set_target_properties(WindowsSetup PROPERTIES OUTPUT_NAME "setup_x64") else() set_target_properties(WindowsSetup PROPERTIES OUTPUT_NAME "setup_x86") endif()