-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split architecture-specific builds to separate directories #76
Merged
bpintea
merged 30 commits into
elastic:master
from
bpintea:feature/split_build_dirs_per_arch
Dec 10, 2018
Merged
Split architecture-specific builds to separate directories #76
bpintea
merged 30 commits into
elastic:master
from
bpintea:feature/split_build_dirs_per_arch
Dec 10, 2018
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Installer build is now called on two top-level build.bat targets: 'clean' and 'package'. A new parameter has been added, sign[:C+P], where C and P are the file paths to the certificate and password.
- sign the installer only if certificate is provided
Top-level 'clean' invokes now installer's 'clean'; intaller's build.bat clean would attempt to bootstrap 'packet', which should not really be needed since: - this had been done already, presumably on the recently done build that needs cleaning; - cleaning should not require an up-to-date 'packet'. Bootstrapping takes time (network connects), inconvenient in driver's development life-cycle.
Installer build is now called on two top-level build.bat targets: 'clean' and 'package'. A new parameter has been added, sign[:C+P], where C and P are the file paths to the certificate and password.
- sign the installer only if certificate is provided
Top-level 'clean' invokes now installer's 'clean'; intaller's build.bat clean would attempt to bootstrap 'packet', which should not really be needed since: - this had been done already, presumably on the recently done build that needs cleaning; - cleaning should not require an up-to-date 'packet'. Bootstrapping takes time (network connects), inconvenient in driver's development life-cycle.
…a/elasticsearch-sql-odbc into feature/integrate_installer_build
- on conflict merge one entire code block was swapped with branch local changes, which left out modifications applied in master.
- the license headers are no longer applied on auto-generated files
- align a few blocks of code to the rest of the file
The installer seems to be run by a 32 bit application, even on 64 bit platforms However, the version of the driver to install (received as parameter) provides enough information to detect the bitness.
- have the installer patch the source files with the current release string
- CMake will generate a resource file based on a template; - the .vcxproj will conditionally use, if available (this will happen on builds done by CMake, but not by VisualStudio).
- mistakenly left out from previous commit.
Change the builder to receive the driver .zip file as command line argument, rathern than have it search driver's build directory for it. This will allow building concurrently an installer for x86 and x64. This is also the reason why now cleaning is no longer a dpendency for the other targets.
Building will now happen in target platform-dependent directory: - builds\x86 and builds\x64. This allows generating two .zip files in the same source tree, with no conflicts. The installer builder is now invoked with the path the right .zip file.
bpintea
changed the title
Feature/split build dirs per arch
Split architecture-specific builds to separate directories
Dec 7, 2018
Closed
- add CMake option to strip the '32' suffix from x86 driver name. This will allow the WiX-gen'd MSI perform the installation&config.
codebrain
approved these changes
Dec 10, 2018
build.bat
Outdated
@@ -6,7 +6,7 @@ rem you may not use this file except in compliance with the Elastic License. | |||
rem | |||
|
|||
setlocal EnableExtensions EnableDelayedExpansion | |||
cls | |||
rem cls |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Delete line?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
deleted, thanks.
- s%SIGN_CERT%SIGN_PATH_CERT% - s%SIGN_PASS%SIGN_PATH_PASS%
This was referenced Dec 10, 2018
bpintea
added a commit
that referenced
this pull request
Dec 13, 2018
* trigger installer build from top-level build.bat Installer build is now called on two top-level build.bat targets: 'clean' and 'package'. A new parameter has been added, sign[:C+P], where C and P are the file paths to the certificate and password. * fix: only "release" the installer if cert is avail - sign the installer only if certificate is provided * Fix clean and help targets * Enable patchversions commandline argument * Remove version parameter from signing, not needed. * installer: only bootstrap packet if not cleaning Top-level 'clean' invokes now installer's 'clean'; intaller's build.bat clean would attempt to bootstrap 'packet', which should not really be needed since: - this had been done already, presumably on the recently done build that needs cleaning; - cleaning should not require an up-to-date 'packet'. Bootstrapping takes time (network connects), inconvenient in driver's development life-cycle. * Add clean option to reset AssemblyInfo files * Add switches for 32bit architecture * Fix version parsing * trigger installer build from top-level build.bat Installer build is now called on two top-level build.bat targets: 'clean' and 'package'. A new parameter has been added, sign[:C+P], where C and P are the file paths to the certificate and password. * fix: only "release" the installer if cert is avail - sign the installer only if certificate is provided * Fix clean and help targets * Enable patchversions commandline argument * Remove version parameter from signing, not needed. * installer: only bootstrap packet if not cleaning Top-level 'clean' invokes now installer's 'clean'; intaller's build.bat clean would attempt to bootstrap 'packet', which should not really be needed since: - this had been done already, presumably on the recently done build that needs cleaning; - cleaning should not require an up-to-date 'packet'. Bootstrapping takes time (network connects), inconvenient in driver's development life-cycle. * Add clean option to reset AssemblyInfo files * Add switches for 32bit architecture * Fix version parsing * fixes for the manual conflict merge - on conflict merge one entire code block was swapped with branch local changes, which left out modifications applied in master. * fix for conflict manual merge - the license headers are no longer applied on auto-generated files * fix tab/space indentation (only!) - align a few blocks of code to the rest of the file * fix: detect bitness of drv to install from version The installer seems to be run by a 32 bit application, even on 64 bit platforms However, the version of the driver to install (received as parameter) provides enough information to detect the bitness. * fix: installer's versioning at config time - have the installer patch the source files with the current release string * add a resource file for the DSN editor binding DLL - CMake will generate a resource file based on a template; - the .vcxproj will conditionally use, if available (this will happen on builds done by CMake, but not by VisualStudio). * changes for the DSN editor binding DLL project - mistakenly left out from previous commit. * instal. builder will now receive ZIP file as param Change the builder to receive the driver .zip file as command line argument, rathern than have it search driver's build directory for it. This will allow building concurrently an installer for x86 and x64. This is also the reason why now cleaning is no longer a dpendency for the other targets. * build.bat will now build in x86/x64 specific dirs Building will now happen in target platform-dependent directory: - builds\x86 and builds\x64. This allows generating two .zip files in the same source tree, with no conflicts. The installer builder is now invoked with the path the right .zip file. * add cfg option to have driver's name respect SFN - add CMake option to strip the '32' suffix from x86 driver name. This will allow the WiX-gen'd MSI perform the installation&config. * rename cert path vars, making the content explicit - s%SIGN_CERT%SIGN_PATH_CERT% - s%SIGN_PASS%SIGN_PATH_PASS% (cherry picked from commit 3e8b98b)
3 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR makes it possible to have both x64 and x86 builds coexist in the build/source tree.
The builds would still need to be sequential for now.
Thus it is possible to have both artifacts available for the release manager.