tweaks for wine and yarn for gui

* allow specifying a custom yarn binary for building the gui using -DYARN= cmake option
* unset DISPLAY when calling wine because i hate popups
* do not rebuild gui when building for windows
* by setting the magical undocumented env var USE_SYSTEM_7ZA to 'true' we can have the pile of npm bullshit code use our system's local 7z binary instead of the probably not backdoored binary from npm, yes for real. i hate nodejs so god damn much you have no fucking idea
* allow providing a custom gui from a zip file via -DGUI_ZIP_FILE cmake option
pull/1969/head
Jeff 2 years ago committed by Jeff Becker
parent d846bab0e1
commit e981c9f899
No known key found for this signature in database
GPG Key ID: 025C02EE3A092F2D

@ -317,7 +317,6 @@ if(NOT TARGET uninstall)
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif() endif()
if(BUILD_PACKAGE)
if(BUILD_PACKAGE AND NOT APPLE)
include(cmake/installer.cmake) include(cmake/installer.cmake)
endif() endif()

@ -1,4 +1,3 @@
set(default_build_gui OFF) set(default_build_gui OFF)
set(default_gui_target pack) set(default_gui_target pack)
if(APPLE) if(APPLE)
@ -15,12 +14,13 @@ set(GUI_YARN_EXTRA_OPTS "" CACHE STRING "extra options to pass into the yarn bui
if (BUILD_GUI) if (BUILD_GUI)
message(STATUS "Building lokinet-gui") message(STATUS "Building lokinet-gui")
if(NOT YARN)
find_program(YARN NAMES yarn yarnpkg REQUIRED) find_program(YARN NAMES yarn yarnpkg REQUIRED)
endif()
message(STATUS "Building lokinet-gui with yarn ${YARN}, target ${GUI_YARN_TARGET}") message(STATUS "Building lokinet-gui with yarn ${YARN}, target ${GUI_YARN_TARGET}")
set(wine_env) set(wine_env)
if(WIN32) if(WIN32)
set(wine_env WINEDEBUG=-all "WINEPREFIX=${PROJECT_BINARY_DIR}/wineprefix") set(wine_env USE_SYSTEM_7ZA=true DISPLAY= WINEDEBUG=-all "WINEPREFIX=${PROJECT_BINARY_DIR}/wineprefix")
endif() endif()
add_custom_target(lokinet-gui add_custom_target(lokinet-gui
@ -48,17 +48,25 @@ if (BUILD_GUI)
elseif(WIN32) elseif(WIN32)
file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/gui") file(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/gui")
add_custom_target(copy_gui ALL option(GUI_ZIP_FILE "custom lokinet gui for windows from zip file" OFF)
DEPENDS lokinet lokinet-gui if(GUI_ZIP_FILE)
# FIXME: we really shouldn't be building inside the source directory but this is npm... message(STATUS "using custom lokinet gui from ${GUI_ZIP_FILE}")
COMMAND ${CMAKE_COMMAND} -E copy_if_different execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ${GUI_ZIP_FILE}
WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
else()
add_custom_command(OUTPUT "${PROJECT_BINARY_DIR}/gui/lokinet-gui.exe"
DEPENDS lokinet lokinet-gui
# FIXME: we really shouldn't be building inside the source directory but this is npm...
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${PROJECT_SOURCE_DIR}/gui/release/Lokinet-GUI_portable.exe" "${PROJECT_SOURCE_DIR}/gui/release/Lokinet-GUI_portable.exe"
"${PROJECT_BINARY_DIR}/gui/lokinet-gui.exe" "${PROJECT_BINARY_DIR}/gui/lokinet-gui.exe"
) )
add_custom_target(assemble_gui ALL
DEPENDS ${PROJECT_BINARY_DIR}/gui/lokinet-gui.exe)
endif()
else() else()
message(FATAL_ERROR "Building/bundling the GUI from this repository is not supported on this platform") message(FATAL_ERROR "Building/bundling the GUI from this repository is not supported on this platform")
endif() endif()
else() else()
message(STATUS "Not building lokinet-gui") message(STATUS "not building gui")
endif() endif()

Loading…
Cancel
Save