Skip to content
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
merged 30 commits into from
Dec 10, 2018
Merged

Split architecture-specific builds to separate directories #76

merged 30 commits into from
Dec 10, 2018

Conversation

bpintea
Copy link
Collaborator

@bpintea bpintea commented Dec 7, 2018

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.

bpintea and others added 28 commits November 21, 2018 22:47
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 bpintea changed the title Feature/split build dirs per arch Split architecture-specific builds to separate directories Dec 7, 2018
@bpintea bpintea requested a review from codebrain December 7, 2018 22:23
@codebrain codebrain mentioned this pull request Dec 7, 2018
18 tasks
@bpintea bpintea mentioned this pull request 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.
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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Delete line?

Copy link
Collaborator Author

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%
@bpintea bpintea merged commit 3e8b98b into elastic:master Dec 10, 2018
@bpintea bpintea deleted the feature/split_build_dirs_per_arch branch December 10, 2018 17:06
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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants