У меня есть приложение Go, и оно компилируется с помощью cmake в Windows.
Я хочу установить свойства этого приложения для просмотра сведений о приложении всякий раз, когда пользователь щелкает правой кнопкой мыши на приложении->свойства-> Детали. Я хочу установить этот файл компилятора минимального ресурса.
Ниже приведен мой файл CMakeLists.txt:
cmake_minimum_required(VERSION 3.7)
include(${CMAKE_SOURCE_DIR}/src/cmake/GoLangSimple.cmake)
ADD_GO_3RDPARTY(xyz "xyz/main")
add_dependencies(xyz lmn)
set_target_properties(xyz PROPERTIES FOLDER "xyz")
Ниже приводится содержимое в GoLangSimple.cmake:
function(ADD_GO_3RDPARTY NAME PACKAGE)
SETUP_GO_PATHS(${CMAKE_CURRENT_SOURCE_DIR} "" "")
set(CGO_CFLAGS "")
add_custom_target(${NAME} ALL DEPENDS ${NAME})
if (WIN32)
add_custom_command(TARGET ${NAME}
COMMAND ${CMAKE_COMMAND} -E env GOPATH="${GOPATH}" CGO_CFLAGS=${CGO_CFLAGS} CGO_LDFLAGS="" GOROOT=${GOROOT}
${GOROOT}/bin/go build -o ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${NAME}.exe ${PACKAGE}
)
endif()
endfunction(ADD_GO_3RDPARTY)
Эта ссылка Как генерировать информацию о версиях Windows DLL с помощью CMake дает небольшую помощь, но по этой ссылке add_executable () использует для получения информации о версии. Но я использую API add_custom_command (). Пожалуйста, помогите мне поддержать информацию о версии через add_custome_command ().
Я получил решение. Сначала я сгенерировал файл versioninfo_windows.syso, используя windres -i xyz.rc -v -O coff versioninfo_windows.syso
. Поместите этот файл в каталог, в котором есть файл функции main () и собрал пакет go с помощью компилятора go, как указано в ADD_GO_3RDPARTY ().