I'm using wxWidgets on Windows with MinGW64 toolchain and CMake. I am confused about how to make my program DPI-awared. When using Visual Studio, "wx_dpi_aware.manifest" can simply solve the problem; However, I do not know how to use it for MinGW64 and CMake.
I have asked ChatGPT and got these useless codes:
add_custom_command(
OUTPUT ${CMAKE_CURRENT_LIST_DIR}/wx_dpi_aware.res
COMMAND windres.exe -o ${CMAKE_CURRENT_LIST_DIR}/wx_dpi_aware.res ${CMAKE_CURRENT_LIST_DIR}/wx_dpi_aware.rc
DEPENDS ${CMAKE_CURRENT_LIST_DIR}/wx_dpi_aware.rc
COMMENT "Generating resource file"
)
set_source_files_properties(${CMAKE_CURRENT_LIST_DIR}/wx_dpi_aware.res PROPERTIES
OBJECT_DEPENDS ${CMAKE_CURRENT_LIST_DIR}/wx_dpi_aware.rc
)
add_executable(myapp main.cpp ${CMAKE_CURRENT_LIST_DIR}/wx_dpi_aware.res)
And content of "wx_dpi_aware.rc" is:
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "C:/wx/3.2.2.1/include/wx/msw/wx_dpi_aware.manifest"
I know it is trying to add "wx_dpi_aware.res" as a source file, but cmake seems to ignore it (I have used "-DCMAKE_VERBOSE_MAKEFILE=ON" to see how it compiled, the result was that no "wx_dpi_aware.res" existed in the command).
Anyway, I want to make my program DPI-awared, otherwise the UI is blured under my 125% display.
My environment:
MinGW64 GCC 13.2.0 From winlibs
CMake 3.27.3
wxWidgets 3.2.2.1 Compiled by myself using CMake and GCC above