@@ -558,16 +558,42 @@ target_sources(${PROJECT_NAME}
558558# -------------------------
559559if (WIN32 )
560560 string (TIMESTAMP GENYCONNECT_COPYRIGHT_YEAR "%Y" )
561- set (GENYCONNECT_WINDOWS_ICON_PATH "${CMAKE_CURRENT_SOURCE_DIR} /ui/Resources/image/GenyConnect.ico" )
562- file (TO_NATIVE_PATH "${GENYCONNECT_WINDOWS_ICON_PATH} " GENYCONNECT_WINDOWS_ICON_PATH )
563- set (GENYCONNECT_WINDOWS_RC_IN "${CMAKE_CURRENT_SOURCE_DIR} /properties/Windows/app.rc.in" )
564- set (GENYCONNECT_WINDOWS_RC_OUT "${CMAKE_CURRENT_BINARY_DIR} /GenyConnect.rc" )
561+
562+ set (GENYCONNECT_WINDOWS_ICON_SOURCE
563+ "${CMAKE_CURRENT_SOURCE_DIR} /ui/Resources/image/GenyConnect.ico"
564+ )
565+
566+ if (NOT EXISTS "${GENYCONNECT_WINDOWS_ICON_SOURCE} " )
567+ message (FATAL_ERROR
568+ "Windows icon file not found: ${GENYCONNECT_WINDOWS_ICON_SOURCE} "
569+ )
570+ endif ()
571+
572+ # Important:
573+ # Do NOT use file(TO_NATIVE_PATH) here.
574+ # Windows .rc files can misinterpret backslash escapes like \a in D:\a\...
575+ file (TO_CMAKE_PATH
576+ "${GENYCONNECT_WINDOWS_ICON_SOURCE} "
577+ GENYCONNECT_WINDOWS_ICON_PATH
578+ )
579+
580+ set (GENYCONNECT_WINDOWS_RC_IN
581+ "${CMAKE_CURRENT_SOURCE_DIR} /properties/Windows/app.rc.in"
582+ )
583+
584+ set (GENYCONNECT_WINDOWS_RC_OUT
585+ "${CMAKE_CURRENT_BINARY_DIR} /GenyConnect.rc"
586+ )
587+
565588 configure_file (
566589 "${GENYCONNECT_WINDOWS_RC_IN} "
567590 "${GENYCONNECT_WINDOWS_RC_OUT} "
568591 @ONLY
569592 )
570- target_sources (${PROJECT_NAME} PRIVATE "${GENYCONNECT_WINDOWS_RC_OUT} " )
593+
594+ target_sources (${PROJECT_NAME} PRIVATE
595+ "${GENYCONNECT_WINDOWS_RC_OUT} "
596+ )
571597endif ()
572598# -------------------------
573599# Xray auto-download
0 commit comments