Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: CI
on: [push, pull_request]
env:
BUILD_NUMBER: ${{ github.run_number }}
jobs:
windows:
name: Build on Windows
runs-on: windows-latest
strategy:
matrix:
arch: [x86,x64]
include:
- arch: x86
qt: win32_msvc2017
- arch: x64
qt: win64_msvc2017_64
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
version: '5.12.10'
arch: ${{ matrix.qt }}
- name: Setup dev env
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.arch }}
sdk: 10.0.16299.0
- name: Build
run: |
mkdir build
cd build
cmake "-GNMake Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
cmake --build . --target package
- name: Archive artifacts
uses: actions/upload-artifact@v2
with:
name: msi
path: |
build/*.msi
build/**/*.pdb
69 changes: 28 additions & 41 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,42 +1,25 @@
cmake_minimum_required(VERSION 3.1.0)

project(web-eid VERSION 19.05)
project(web-eid VERSION 21.01)

if(NOT DEFINED ENV{QTDIR})
message(FATAL_ERROR "QTDIR environment variable is not set!")
if(DEFINED ENV{Qt5_DIR})
set(ENV{QTDIR} $ENV{Qt5_DIR})
else()
message(FATAL_ERROR "QTDIR environment variable is not set!")
endif()
endif()

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_PREFIX_PATH $ENV{QTDIR}/lib/cmake)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

set(INSTALL_BIN_PATH bin)

find_package(Qt5Widgets CONFIG REQUIRED)
find_package(Qt5Network CONFIG REQUIRED)
find_package(Qt5WebSockets CONFIG REQUIRED)
find_package(Qt5Concurrent CONFIG REQUIRED)
find_package(Qt5Svg CONFIG REQUIRED)
find_package(Qt5 REQUIRED COMPONENTS Core Widgets WebSockets Concurrent Svg)

file(GLOB web-eid_SRCS src/*.cpp src/dialogs/*.h)
set(web-eid_RESOURCES src/web-eid.qrc src/translations/strings.qrc)

IF (MSVC)
add_definitions(-DUNICODE -D_UNICODE -DWIN32_LEAN_AND_MEAN)
set(LIBS winscard ncrypt crypt32 cryptui Advapi32)
endif (MSVC)

if (APPLE)
find_library(PCSC PCSC)
find_library(ServiceManagement ServiceManagement)
find_library(CoreFoundation CoreFoundation)
find_library(AppKit AppKit)

set (web-eid_SRCS src/dialogs/macosxui.mm ${web-eid_SRCS})
set(LIBS ${CoreFoundation} ${PCSC} ${ServiceManagement} ${AppKit} dl)
endif (APPLE)

foreach(plugin ${Qt5Network_PLUGINS})
get_target_property(_loc ${plugin} LOCATION)
Expand All @@ -48,48 +31,52 @@ include_directories(src src/dialogs)
add_definitions(-DVERSION="${PROJECT_VERSION}-evidos")
add_definitions(-DGIT_REVISION="")

IF (MSVC)
add_executable(web-eid WIN32 ${web-eid_SRCS} ${web-eid_RESOURCES})

elseif (APPLE)
add_executable(web-eid MACOSX_BUNDLE ${web-eid_SRCS} ${web-eid_RESOURCES})
else()
add_executable(web-eid ${web-eid_SRCS} ${web-eid_RESOURCES})
endif ()

install(TARGETS web-eid DESTINATION ${INSTALL_BIN_PATH})

add_executable(web-eid WIN32 MACOSX_BUNDLE
${web-eid_SRCS}
src/web-eid.qrc
# src/translations/strings.qrc
)
target_link_libraries(web-eid
Qt5::Widgets
Qt5::Svg
Qt5::Network
Qt5::WebSockets
Qt5::Concurrent
${LIBS})
)

if(MSVC)
target_compile_definitions(web-eid PRIVATE UNICODE _UNICODE WIN32_LEAN_AND_MEAN)
target_link_libraries(web-eid winscard ncrypt crypt32 cryptui Advapi32)
elseif(APPLE)
target_sources(web-eid PRIVATE src/dialogs/macosxui.mm)
target_link_libraries(web-eid "-framework PCSC" "-framework ServiceManagement" "-framework CoreFoundation" "-framework AppKit")
endif()

install(TARGETS web-eid DESTINATION ${INSTALL_BIN_PATH})

set(CPACK_PACKAGE_EXECUTABLES web-eid "Web eID for Windows")
set(CPACK_PACKAGE_VENDOR "Evidos")
set(CPACK_PACKAGE_DESCRIPTION "Web eID is the platform that makes your traditional eID work well on the Web.")
set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/Evidos/web-eid")

IF (WIN32)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" "LICENSE.txt" COPYONLY)
configure_file(LICENSE LICENSE.txt COPYONLY)

set(CPACK_GENERATOR WIX)
set(CPACK_WIX_UPGRADE_GUID "79730a31-61d7-4395-b91e-191279b08798")
set(CPACK_RESOURCE_FILE_LICENSE "LICENSE.txt")
#SET(CPACK_WIX_PATCH_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cpack.wixpatch")
SET(CPACK_WIX_TEMPLATE "${CMAKE_CURRENT_SOURCE_DIR}/wix.template.in")
SET(CPACK_WIX_EXTENSIONS "WixUtilExtension")

if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/wix-banner.bmp")
set(CPACK_WIX_UI_BANNER "${CMAKE_CURRENT_SOURCE_DIR}/wix-banner.bmp")
endif()

if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/wix-dialog.bmp")
set(CPACK_WIX_UI_DIALOG "${CMAKE_CURRENT_SOURCE_DIR}/wix-dialog.bmp")
endif()

include(DeployQt)
windeployqt(web-eid ${INSTALL_BIN_PATH})
endif (WIN32)
Expand Down