Skip to content

Commit d9246bd

Browse files
#25 -- Merge branch 'win_installer' into master
2 parents c8d3c18 + a0a3ccf commit d9246bd

38 files changed

+2237
-1
lines changed

Diff for: keychain_cmd_app/CMakeLists.txt

+9
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,15 @@ else()
102102
PUBLIC "${CMAKE_SOURCE_DIR}/keychain_win/keychain_agent/include"
103103
)
104104
target_link_libraries(keychain keychain_common secmodlib keychain_agent fc_light eth-crypto ${LIB_OPENSSL} ${Boost_LIBRARIES} Crypt32.lib Userenv.lib Wtsapi32.lib)
105+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
106+
set(BUILD_TYPE_PATH Debug )
107+
else(CMAKE_BUILD_TYPE STREQUAL "Debug")
108+
set(BUILD_TYPE_PATH Release )
109+
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
110+
add_custom_command(TARGET keychain
111+
POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy
112+
${CMAKE_CURRENT_BINARY_DIR}/${BUILD_TYPE_PATH}/keychain.exe
113+
../keychain_win/keychain_service/service_installer/wsserverinstaller/wsservice/keychain.exe)
105114
else()
106115
target_link_libraries(keychain keychain_common fc_light eth-crypto ${LIB_OPENSSL} ${Boost_LIBRARIES})
107116
if(APPLE)

Diff for: keychain_lib/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ include( GetGitRevisionDescription )
77
get_git_head_revision( GIT_REFSPEC KEYCHAIN_COMMON_GIT_REVISION )
88
get_git_unix_timestamp(KEYCHAIN_COMMON_GIT_REVISION_UNIX_TIMESTAMP)
99
git_describe(KEYCHAIN_COMMON_GIT_REVISION_DESCRIPTION --tags)
10+
1011
configure_file("${CMAKE_SOURCE_DIR}/keychain_lib/src/git_revision.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/git_revision.cpp" @ONLY)
1112

1213
set(CMAKE_CXX_FLAGS "-std=c++14")

Diff for: keychain_win/keychain_gui/CMakeLists.txt

+12
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,15 @@ add_executable(keychain_win_gui ${KEYCHAIN_GUI_SOURCES} ${KEYCHAIN_GUI_INCLUDES}
6565

6666
target_link_libraries(keychain_win_gui Crypt32.lib Qt5::Widgets Qt5::Core Qt5::Qml Qt5::Svg keychain_common secmodlib kaitai_struct_cpp_stl_runtime fc_light ${Boost_LIBRARIES} ${LIB_OPENSSL})
6767

68+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
69+
set(BUILD_TYPE_PATH Debug )
70+
set(CMAKE_CXX_FLAGS "/EHsc")
71+
else(CMAKE_BUILD_TYPE STREQUAL "Debug")
72+
set(BUILD_TYPE_PATH Release )
73+
endif(CMAKE_BUILD_TYPE STREQUAL "Debug")
74+
75+
add_custom_command(TARGET keychain_win_gui
76+
POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy
77+
${CMAKE_CURRENT_BINARY_DIR}/${BUILD_TYPE_PATH}/keychain_win_gui.exe
78+
../keychain_service/service_installer/wsserverinstaller/wsservice/keychain_win_gui.exe)
79+

Diff for: keychain_win/keychain_service/CMakeLists.txt

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
project( KeychainWinService )
22

3+
4+
add_subdirectory(./service_installer)
5+
add_subdirectory(./service_installer/wsserverinstaller)
6+
37
cmake_minimum_required( VERSION 3.0.2 )
48

59
set(CMAKE_CXX_FLAGS "-std=c++11 /EHsc")
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
project( service_installer )
2+
3+
if(WIN32)
4+
5+
add_custom_target(deploy)
6+
find_path(WIX_PATH candle.exe)
7+
8+
if(NOT WIX_PATH)
9+
message(FATAL_ERROR "Unable to find WiX in the PATH. The WiX installer will be disabled.")
10+
else(WIX_PATH)
11+
12+
set(wixsrcpath "${CMAKE_CURRENT_SOURCE_DIR}")
13+
set(wixoutputpath "installer")
14+
message(STATUS "wixsrcpath: ${wixsrcpath}")
15+
16+
#find libcrypto.dll file inside openssl installed folder
17+
if("$ENV{OPENSSL_ROOT_DIR}" OR "${OPENSSL_ROOT_DIR}" STREQUAL "")
18+
message(FATAL_ERROR "CANNOT FIND OPENSSL LIBRARY")
19+
else()
20+
set(openssl_path "${OPENSSL_ROOT_DIR}")
21+
message(STATUS "OPENSSL PATH: ${openssl_path}")
22+
file(GLOB_RECURSE globalcrypto FOLLOW_SYMLINKS ${OPENSSL_ROOT_DIR}/bin/libcrypto*.dll)
23+
list(GET globalcrypto 0 cryptolib)
24+
message(STATUS "FOUND LIBCRYPTO: ${cryptolib}")
25+
endif()
26+
27+
#set copy files to alias
28+
set( PREBUILD_FILES
29+
"${wixsrcpath}/wix_app_entry.wxs"
30+
"${wixsrcpath}/service_manager.bat"
31+
"${wixsrcpath}/delete_service.bat"
32+
"${wixsrcpath}/license.rtf"
33+
"${wixsrcpath}/keychain_banner.jpg"
34+
"${wixsrcpath}/keychain_logo_maximal.ico"
35+
"${wixsrcpath}/keychain_logo_minimal.ico"
36+
"${wixsrcpath}/keychain_dialog_banner.jpg"
37+
${cryptolib}
38+
)
39+
40+
message(STATUS "PREBUILD FILES: ${PREBUILD_FILES}")
41+
42+
#copy files in build folder
43+
foreach( file_to_copy ${PREBUILD_FILES})
44+
add_custom_command(TARGET deploy PRE_BUILD COMMAND ${CMAKE_COMMAND}
45+
ARGS -E copy_if_different ${file_to_copy} "${wixoutputpath}")
46+
endforeach( file_to_copy )
47+
48+
#TODO
49+
#if keychain_common target will correctly build with clang-cl compiler
50+
#after that all chain of target builds will work properly
51+
#and next commands can be placed here target binary copy files
52+
#add_dependencies(deploy keychain_service_win keychain_pass_entry_app)
53+
#add_custom_command(TARGET keychain_pass_entry_app POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/debug/keychain_pass_entry_app.exe ../service_installer/installer/keychain_pass_entry_app.exe)
54+
#add_custom_command(TARGET keychain_service_win POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/debug/keychain_service_win.exe ${CMAKE_CURRENT_BINARY_DIR}/service_installer/installer/keychain_service_win.exe)
55+
56+
set(installerpath "${CMAKE_CURRENT_BINARY_DIR}/installer")
57+
58+
message(STATUS "Deploy Path: ${CMAKE_CURRENT_BINARY_DIR}")
59+
message(STATUS "Deploy installer Path: ")
60+
message(STATUS "WIX Path: ${WIX_PATH}")
61+
62+
#-bf - flag causes all of the files to be bound int the resulting .wixout/.* file.
63+
#-out - flag tells the linker where to output the .wixout/.* file
64+
#-xo - this flag tells the linker to output an XML representation of the MSI, instead of the actual MSI, required to use the -bf switch
65+
66+
add_custom_command(TARGET deploy
67+
POST_BUILD
68+
COMMAND ${WIX_PATH}/candle.exe ${installerpath}/wix_app_entry.wxs -bf -xo -out ${installerpath}/wix_app_entry.wixobj
69+
COMMAND ${WIX_PATH}/light.exe -ext WixUIExtension ${installerpath}/wix_app_entry.wixobj -out ${installerpath}/${PROJECT_NAME}.msi
70+
VERBATIM)
71+
72+
endif()
73+
endif()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
sc stop keychainservice
2+
sc delete keychainservice
Loading
Loading
Binary file not shown.
Binary file not shown.
259 Bytes
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@echo %cd%
2+
dir
3+
candle.exe wix_app_entry.wxs
4+
light.exe -ext WixUIExtension wix_app_entry.wixobj
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
keychain_service_win.exe -install
2+
sc start keychainservice
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<?xml version="1.0"?>
2+
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
3+
4+
<!-- Set product information -->
5+
<Product Id="*" UpgradeCode="{DFC12350-8A12-4C52-9342-5DB584B313BF}"
6+
Name="Install Keychain Services" Language="1033" Version="1.0.0.3"
7+
Manufacturer="Array.IO">
8+
9+
<!-- Set package and media information -->
10+
<Package Id="*" Description="pak" InstallerVersion="400" Compressed="yes" Platform = "x64" InstallScope="perMachine"/>
11+
<Media Id="1" Cabinet="setup.cab" EmbedCab="yes" />
12+
13+
<!-- Override root install directory path -->
14+
<SetDirectory Id="RootInstallDrive" Value="C:\Program Files" />
15+
16+
<!-- Fragment of sources to install -->
17+
<Directory Id="TARGETDIR" Name="SourceDir">
18+
<Directory Id="RootInstallDrive">
19+
<Directory Id="INSTALLLOCATION" Name="KeyChainService">
20+
<Component Id="Component1" DiskId="1" Guid="{DFC12350-8A12-4C52-9342-5DB584B313BA}">
21+
<File Id="File0" Name="keychain_service_win.exe" Source="keychain_service_win.exe" />
22+
</Component>
23+
<Component Id="Component2" DiskId="1" Guid="{DFC12350-8A12-4C52-9342-5DB584B313BB}">
24+
<File Id="File1" Name="keychain_pass_entry_app.exe" Source="keychain_pass_entry_app.exe" />
25+
</Component>
26+
<Component Id="Component3" DiskId="1" Guid="{DFC12350-8A12-4C52-9342-5DB584B313BC}">
27+
<File Id="File2" Name="libcrypto-1_1-x64.dll" Source="libcrypto-1_1-x64.dll" />
28+
</Component>
29+
<Component Id="Component4" DiskId="1" Guid="{DFC12350-8A12-4C52-9342-5DB584B313BD}">
30+
<File Id="File3" Name="service_manager.bat" Source="service_manager.bat" />
31+
</Component>
32+
<Component Id="Component5" DiskId="1" Guid="{DFC12350-8A12-4C52-9342-5DB584B313BE}">
33+
<File Id="File4" Name="delete_service.bat" Source="delete_service.bat" />
34+
</Component>
35+
</Directory>
36+
</Directory>
37+
</Directory>
38+
39+
<!-- Install directory source text override -->
40+
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />
41+
<UIRef Id="WixUI_InstallDir" />
42+
43+
<!-- Set custom icons and images in dialogs -->
44+
<WixVariable Id="WixUIBannerBmp" Value="keychain_banner.jpg" />
45+
<WixVariable Id="WixUIDialogBmp" Value="keychain_dialog_banner.jpg" />
46+
<WixVariable Id="WixUIExclamationIco" Value="keychain_logo_maximal.ico" />
47+
<WixVariable Id="WixUIInfoIco" Value="keychain_logo_maximal.ico" />
48+
<WixVariable Id="WixUINewIco" Value="keychain_logo_minimal.ico" />
49+
<WixVariable Id="WixUIUpIco" Value="keychain_logo_minimal.ico" />
50+
51+
<!-- License source text override -->
52+
<WixVariable Id="WixUILicenseRtf" Value="license.rtf" />
53+
54+
<!-- Group components as components referencies -->
55+
<Feature Id="InstallFeature" Title="Install Feature" Level="1">
56+
<ComponentRef Id="Component1" />
57+
<ComponentRef Id="Component2" />
58+
<ComponentRef Id="Component3" />
59+
<ComponentRef Id="Component4" />
60+
<ComponentRef Id="Component5" />
61+
</Feature>
62+
63+
<!-- Global Run Action -->
64+
<CustomAction Id="RunWrapExe" Return="ignore" Execute="deferred"
65+
FileKey="File0" ExeCommand="setup.exe param here"
66+
HideTarget="no" Impersonate="no" />
67+
68+
<!-- Additional action after installation -->
69+
<CustomAction Id="RunBat" Directory="INSTALLLOCATION"
70+
ExeCommand='"[INSTALLLOCATION]service_manager.BAT"'
71+
Execute="deferred" Impersonate="no" Return="check"/>
72+
73+
<!-- Additional action after uninstall -->
74+
<CustomAction Id="BeforeUninstallService" Directory="INSTALLLOCATION"
75+
ExeCommand='"[INSTALLLOCATION]delete_service.BAT"'
76+
Execute="deferred" Impersonate="no" Return="check"/>
77+
78+
<!-- Overall install & uninstall actions execution block -->
79+
<InstallExecuteSequence>
80+
<Custom Action="RunWrapExe" After="InstallFiles">NOT REMOVE~="ALL"</Custom>
81+
<Custom Action="RunBat" Before="InstallFinalize">NOT (REMOVE~="ALL")</Custom>
82+
<Custom Action="BeforeUninstallService" After="InstallInitialize">REMOVE="ALL"</Custom>
83+
</InstallExecuteSequence>
84+
85+
</Product>
86+
</Wix>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
project( wsservice_installer )
2+
3+
if(WIN32)
4+
5+
add_custom_target(wssdeploy)
6+
find_path(WIX_PATH candle.exe)
7+
8+
if(NOT WIX_PATH)
9+
message(FATAL_ERROR "Unable to find WiX in the PATH. The WiX installer will be disabled.")
10+
else(WIX_PATH)
11+
12+
add_dependencies(wssdeploy keychain keychain_win_gui)
13+
14+
set(outputdir "${CMAKE_CURRENT_BINARY_DIR}/wsservice")
15+
file(MAKE_DIRECTORY "${outputdir}")
16+
set(wixsrcpath "${CMAKE_CURRENT_SOURCE_DIR}")
17+
set(wixoutputpath "wsservice")
18+
message(STATUS "wixsrcpath: ${wixsrcpath}")
19+
20+
#find libcrypto.dll file inside openssl installed folder
21+
if("$ENV{OPENSSL_ROOT_DIR}" OR "${OPENSSL_ROOT_DIR}" STREQUAL "")
22+
message(FATAL_ERROR "CANNOT FIND OPENSSL LIBRARY")
23+
else()
24+
set(openssl_path "${OPENSSL_ROOT_DIR}")
25+
message(STATUS "OPENSSL PATH: ${openssl_path}")
26+
file(GLOB_RECURSE globalcrypto FOLLOW_SYMLINKS ${OPENSSL_ROOT_DIR}/bin/libcrypto-1_1-x64.dll)
27+
list(GET globalcrypto 0 cryptolib)
28+
if(globalcrypto)
29+
message(STATUS "FOUND LIBCRYPTO: ${cryptolib}")
30+
else()
31+
message(FATAL_ERROR "CANNOT FIND OPENSSL DYNAMIC LIBRARY")
32+
endif()
33+
endif()
34+
35+
#find Qt 5 dll files to link and build finally with msi
36+
set(CMAKE_AUTOMOC ON)
37+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
38+
find_package(Qt5 COMPONENTS Core Gui Widgets Qml Xml Svg REQUIRED)
39+
get_target_property(Qt5_CoreLocation Qt5::Core LOCATION)
40+
41+
message(STATUS "QT5: ${Qt5_CoreLocation}")
42+
43+
if("$ENV{Qt5_CoreLocation}" OR "${Qt5_CoreLocation}" STREQUAL "")
44+
message(FATAL_ERROR "CANNOT FIND QT5 LIBRARY")
45+
else()
46+
add_custom_command(TARGET wssdeploy POST_BUILD
47+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Core> ${CMAKE_CURRENT_BINARY_DIR}/wsservice
48+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Gui> ${CMAKE_CURRENT_BINARY_DIR}/wsservice
49+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Widgets> ${CMAKE_CURRENT_BINARY_DIR}/wsservice
50+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Qml> ${CMAKE_CURRENT_BINARY_DIR}/wsservice
51+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Xml> ${CMAKE_CURRENT_BINARY_DIR}/wsservice
52+
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:Qt5::Svg> ${CMAKE_CURRENT_BINARY_DIR}/wsservice
53+
)
54+
file(GLOB_RECURSE qtlinkplatforms FOLLOW_SYMLINKS ${Qt5_CoreLocation}/../../plugins/platforms/*.dll)
55+
file(GLOB_RECURSE qtlinkimageformats FOLLOW_SYMLINKS ${Qt5_CoreLocation}/../../plugins/imageformats/*.dll)
56+
file(GLOB_RECURSE qtlinkstyles FOLLOW_SYMLINKS ${Qt5_CoreLocation}/../../plugins/styles/*.dll)
57+
message(STATUS "QT PLATFORM FILES: ${qtlinkplatforms}")
58+
message(STATUS "QT IMAGE FORMATS FILES: ${qtlinkimageformats}")
59+
message(STATUS "QT STYLES FILES: ${qtlinkstyles}")
60+
endif()
61+
62+
#set copy files to alias
63+
set( PREBUILD_FILES
64+
"${wixsrcpath}/check_service.bat"
65+
"${wixsrcpath}/websocketwrapper.exe"
66+
"${wixsrcpath}/servicewrapper.exe"
67+
"${wixsrcpath}/servicewrapper.xml"
68+
"${wixsrcpath}/wix_wssapp_entry.wxs"
69+
"${wixsrcpath}/CustomWixUI_Mondo.wxs"
70+
"${wixsrcpath}/CustomInstallDirDlg.wxs"
71+
"${wixsrcpath}/CustomVerifyReadyDlg.wxs"
72+
"${wixsrcpath}/CustomLicenseAgreementDlg.wxs"
73+
"${wixsrcpath}/en-us.wxl"
74+
"${wixsrcpath}/wsservice_manager.bat"
75+
"${wixsrcpath}/delete_wsservice.bat"
76+
"${wixsrcpath}/wsservicerunner.bat"
77+
"${wixsrcpath}/license.rtf"
78+
"${wixsrcpath}/keychain_banner.jpg"
79+
"${wixsrcpath}/keychain_logo_maximal.ico"
80+
"${wixsrcpath}/keychain_logo_minimal.ico"
81+
"${wixsrcpath}/keychain_dialog_banner.jpg"
82+
${cryptolib}
83+
)
84+
85+
message(STATUS "PREBUILD FILES: ${PREBUILD_FILES}")
86+
87+
#set alias to demo files
88+
set( DEMO_FILES
89+
${CMAKE_CURRENT_SOURCE_DIR}/demo/index.html
90+
${CMAKE_CURRENT_SOURCE_DIR}/demo/logo.png
91+
${CMAKE_CURRENT_SOURCE_DIR}/demo/spectre.min.css
92+
${CMAKE_CURRENT_SOURCE_DIR}/demo/keychain.js)
93+
94+
#copy demo files to installer folder
95+
file(COPY ${DEMO_FILES} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/wsservice/demo/)
96+
#copy qt platform files to installer folder
97+
file(COPY ${qtlinkplatforms} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/wsservice/platforms/)
98+
#copy qt image formats files to installer folder
99+
file(COPY ${qtlinkimageformats} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/wsservice/imageformats/)
100+
#copy qt styles files to installer folder
101+
file(COPY ${qtlinkstyles} DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/wsservice/styles/)
102+
103+
#copy files in build folder
104+
foreach( file_to_copy ${PREBUILD_FILES})
105+
add_custom_command(TARGET wssdeploy PRE_BUILD COMMAND ${CMAKE_COMMAND}
106+
ARGS -E copy_if_different ${file_to_copy} "${wixoutputpath}")
107+
endforeach( file_to_copy )
108+
109+
set(installerpath "${CMAKE_CURRENT_BINARY_DIR}/wsservice")
110+
111+
message(STATUS "WSSDeploy Path: ${CMAKE_CURRENT_BINARY_DIR}")
112+
message(STATUS "WSSDeploy installer Path: ${wixoutputpath}")
113+
message(STATUS "WIX Path: ${WIX_PATH}")
114+
115+
# check if you already have a correctly defined PROCESSOR_ARCHITECTURE enviroment variable_requires
116+
#like:
117+
#Intel - 32-bit x86
118+
#Intel64 - Itanium family
119+
#AMD64 - 64-bit x86, deprecated
120+
#x64 - 64-bit x86
121+
122+
#get specific platform version to detect vcredist type
123+
set(TARGET_PLATFORM $ENV{PROCESSOR_ARCHITECTURE})
124+
message(STATUS "TARGET PLATFORM: ${TARGET_PLATFORM}")
125+
126+
#set installer version
127+
list( APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/git_version_gen" )
128+
include( GetGitRevisionDescription )
129+
git_describe(KEYCHAIN_COMMON_GIT_REVISION_DESCRIPTION --tags)
130+
SET(VERSION_REGEXP "^[0-9]+\\.[0-9]+\\-[0-9]+")
131+
string(REGEX MATCH ${VERSION_REGEXP} VERSION_STRING_GIT ${KEYCHAIN_COMMON_GIT_REVISION_DESCRIPTION})
132+
string(REGEX REPLACE "\\-" "." VERSION_STRING ${VERSION_STRING_GIT})
133+
set(installerversion ${VERSION_STRING})
134+
135+
#-bf - flag causes all of the files to be bound int the resulting .wixout/.* file.
136+
#-out - flag tells the linker where to output the .wixout/.* file
137+
#-xo - this flag tells the linker to output an XML representation of the MSI, instead of the actual MSI, required to use the -bf switch
138+
add_custom_command(TARGET wssdeploy
139+
POST_BUILD
140+
COMMAND ${WIX_PATH}/candle.exe
141+
${installerpath}/wix_wssapp_entry.wxs
142+
${installerpath}/CustomLicenseAgreementDlg.wxs
143+
${installerpath}/CustomInstallDirDlg.wxs
144+
${installerpath}/CustomWixUI_Mondo.wxs
145+
${installerpath}/CustomVerifyReadyDlg.wxs
146+
-dProcessorArchitecture=${TARGET_PLATFORM}
147+
-dvcrpath=${VCR_PATH}
148+
-dproductversion=${installerversion}
149+
-bf -xo -out ${installerpath}/
150+
COMMAND ${WIX_PATH}/light.exe
151+
-sice:ICE20
152+
-ext WixUtilExtension
153+
-ext WixUIExtension
154+
-ext WixNetfxExtension
155+
${installerpath}/wix_wssapp_entry.wixobj
156+
${installerpath}/CustomLicenseAgreementDlg.wixobj
157+
${installerpath}/CustomInstallDirDlg.wixobj
158+
${installerpath}/CustomWixUI_Mondo.wixobj
159+
${installerpath}/CustomVerifyReadyDlg.wixobj
160+
-cultures:en-us -loc ${installerpath}/en-us.wxl
161+
-out ${installerpath}/${PROJECT_NAME}.msi
162+
VERBATIM)
163+
endif()
164+
endif()

0 commit comments

Comments
 (0)