Skip to content
This repository was archived by the owner on Jul 8, 2022. It is now read-only.

Commit 4791f0d

Browse files
ltjaxMarius Elvert
andauthored
Rework static/shared variants into a configure-time build-switch (#688)
Shared/static switching on windows configure/CMakeLists.txt: Don't link against msvcstub anymore on windows We don't link against that library from omniorb anymore as it is only needed as a workaround for using ominORB DLLs under MSVC++ 5.0 (due to destructor inlining issues). Co-authored-by: Marius Elvert <marius.elvert@softwareschneiderei.de>
1 parent a2ec204 commit 4791f0d

File tree

11 files changed

+327
-482
lines changed

11 files changed

+327
-482
lines changed

appveyor.yml

Lines changed: 38 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -2,78 +2,63 @@ version: 0.0.{build}
22
branches:
33
only:
44
- tango-9-lts
5+
6+
configuration:
7+
- Debug
8+
- Release
9+
510
environment:
11+
# Common variables
12+
IDL_BASE: C:\projects\tangoidl
13+
IDL_SOURCE: C:\projects\tangoidl-source
14+
615
matrix:
716
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
817
platform: x64
918
ARCH: x64-msvc15
10-
configuration: Release
1119
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
1220
MSVCVERSION: v141
1321
MSVCYEAR: "vs2017"
1422
MSVCABR: "15"
1523
VC_VER: 15.0
1624
PYTHONPATH: c:\Python37-x64\
1725
PYTHONPATHOMNI: "/cygdrive/c/Python37-x64/python"
18-
BOOST_ROOT: C:\Libraries\boost_1_63_0
19-
ZMQ_BASE: C:\projects\libzmq
20-
IDL_BASE: C:\projects\tangoidl
21-
IDL_BIN: C:\Program Files\tangoidl
22-
OMNI_BASE: C:\projects\omniORB-4.2.1
2326
PYVER: "py37"
2427
USE_PCH: ON
2528
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
2629
platform: win32
2730
ARCH: win32-msvc15
28-
configuration: Release
2931
CMAKE_GENERATOR: "Visual Studio 15 2017"
3032
MSVCVERSION: v141
3133
MSVCYEAR: "vs2017"
3234
MSVCABR: "15"
3335
VC_VER: 15.0
3436
PYTHONPATH: c:\Python37\
3537
PYTHONPATHOMNI: "/cygdrive/c/Python37/python"
36-
BOOST_ROOT: C:\Libraries\boost_1_63_0
37-
ZMQ_BASE: C:\projects\libzmq
38-
IDL_BASE: C:\projects\tangoidl
39-
IDL_BIN: C:\Program Files (x86)\tangoidl
40-
OMNI_BASE: C:\projects\omniORB-4.2.1
4138
PYVER: "py37"
4239
USE_PCH: ON
4340
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
4441
platform: x64
4542
ARCH: x64-msvc14
46-
configuration: Release
4743
CMAKE_GENERATOR: "Visual Studio 14 2015 Win64"
4844
MSVCVERSION: v140
4945
MSVCYEAR: "vs2015"
5046
MSVCABR: "14"
5147
VC_VER: 14.0
5248
PYTHONPATH: c:\Python36-x64\
5349
PYTHONPATHOMNI: "/cygdrive/c/Python36-x64/python"
54-
BOOST_ROOT: C:\Libraries\boost_1_63_0
55-
ZMQ_BASE: C:\projects\libzmq
56-
IDL_BASE: C:\projects\tangoidl
57-
IDL_BIN: C:\Program Files\tangoidl
58-
OMNI_BASE: C:\projects\omniORB-4.2.1
5950
PYVER: "py36"
6051
USE_PCH: ON
6152
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
6253
platform: win32
6354
ARCH: win32-msvc14
64-
configuration: Release
6555
CMAKE_GENERATOR: "Visual Studio 14 2015"
6656
MSVCVERSION: v140
6757
MSVCYEAR: "vs2015"
6858
MSVCABR: "14"
6959
VC_VER: 14.0
7060
PYTHONPATH: c:\Python36\
7161
PYTHONPATHOMNI: "/cygdrive/c/Python36/python"
72-
BOOST_ROOT: C:\Libraries\boost_1_63_0
73-
ZMQ_BASE: C:\projects\libzmq
74-
IDL_BASE: C:\projects\tangoidl
75-
IDL_BIN: C:\Program Files (x86)\tangoidl
76-
OMNI_BASE: C:\projects\omniORB-4.2.1
7762
PYVER: "py36"
7863
USE_PCH: ON
7964

@@ -85,8 +70,7 @@ init:
8570
#RDP from start
8671
#- ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
8772
# Tango IDL
88-
- cmd: set TANGOIDLDIR=C:\projects\tangoidl
89-
- cmd: git clone --depth 1 --quiet https://github.com/tango-controls/tango-idl %TANGOIDLDIR%
73+
- cmd: git clone --depth 1 --quiet https://github.com/tango-controls/tango-idl %IDL_SOURCE%
9074
- cmd: cd "C:\projects\"
9175
# Zmq
9276
- cmd: cd "C:\projects\"
@@ -114,8 +98,8 @@ install:
11498
- cmd: cd c:/projects/
11599
# in case of wrong directory for cloning
116100
- cmd: rename %APPVEYOR_BUILD_FOLDER% cppTango
117-
- cmd: md debug_build
118-
- cmd: xcopy "C:/projects/cppTango" "c:/projects/debug_build" /c /g /d /i /e /r /h /y
101+
- cmd: md static_build
102+
- cmd: md dynamic_build
119103
# Setting Visual Compiler
120104
- cmd: cd "C:\projects\"
121105
- cmd: if %ARCH%==win32-msvc14 call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
@@ -127,25 +111,25 @@ install:
127111
- cmd: set PYTHONPATH=%PYTHONPATH%
128112
- cmd: set PATH=%PYTHONPATH%;%PATH%
129113
# Tango IDL
130-
- cmd: cd "C:\projects\tangoidl"
131-
- cmd: cmake -G "%CMAKE_GENERATOR%" .
114+
- cmd: cd %IDL_SOURCE%
115+
- cmd: cmake -G "%CMAKE_GENERATOR%" -DCMAKE_INSTALL_PREFIX="%IDL_BASE%" .
132116
- cmd: cmake --build ./ --target install --config Debug
133117
- cmd: cmake --build ./ --target install --config Release
134118
# Tango API
135119
- cmd: cd "C:\projects\cppTango"
136-
- cmd: set BOOST_ROOT=%BOOST_ROOT%
137120
- cmd: set ZMQ_BASE=C:/projects/zeromq/
138121
- cmd: set CPPZMQ_BASE=C:/projects/zeromq/
139-
- cmd: set IDL_BASE=%IDL_BIN%
140122
- cmd: set OMNI_BASE=C:/projects/omniorb/
141123
- cmd: set PTHREAD_WIN=C:/projects/pthreads-win32/
142124
- cmd: if not defined USE_PCH set USE_PCH=OFF
143125
#- cmd: cmake -G "%CMAKE_GENERATOR%" -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -DBUILD_SHARED_LIBS=TRUE .
144-
#- cmd: cmake -G "%CMAKE_GENERATOR%" -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE .
145-
- cmd: cmake -G "%CMAKE_GENERATOR%" -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -DIDL_BASE="%IDL_BASE%" -DOMNI_BASE="%OMNI_BASE%" -DZMQ_BASE="%ZMQ_BASE%" -DCPPZMQ_BASE="%CPPZMQ_BASE%" -DPTHREAD_WIN=%PTHREAD_WIN% -DUSE_PCH=%USE_PCH% -DBUILD_TESTING=OFF .
146-
- cmd: cd c:/projects/debug_build
147-
#- cmd: cmake -G "%CMAKE_GENERATOR%" -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -DBUILD_SHARED_LIBS=TRUE -DCMAKE_BUILD_TYPE=Debug .
148-
- cmd: cmake -G "%CMAKE_GENERATOR%" -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -DCMAKE_BUILD_TYPE=Debug -DIDL_BASE="%IDL_BASE%" -DOMNI_BASE="%OMNI_BASE%" -DZMQ_BASE="%ZMQ_BASE%" -DCPPZMQ_BASE="%CPPZMQ_BASE%" -DPTHREAD_WIN=%PTHREAD_WIN% -DUSE_PCH=%USE_PCH% -DBUILD_TESTING=OFF .
126+
#- cmd: cmake -G "%CMAKE_GENERATOR%" -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -
127+
# Static builds
128+
- cmd: cd c:/projects/static_build
129+
- cmd: cmake -G "%CMAKE_GENERATOR%" -DTANGO_BUILD_SHARED=OFF -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DCMAKE_CXX_FLAGS_RELEASE="/MT" -DCMAKE_CXX_FLAGS_DEBUG="/MTd" -DIDL_BASE="%IDL_BASE%" -DOMNI_BASE="%OMNI_BASE%" -DZMQ_BASE="%ZMQ_BASE%" -DCPPZMQ_BASE="%CPPZMQ_BASE%" -DPTHREAD_WIN=%PTHREAD_WIN% -DUSE_PCH=%USE_PCH% -DBUILD_TESTING=OFF ../cppTango
130+
# Dynamic builds
131+
- cmd: cd c:/projects/dynamic_build
132+
- cmd: cmake -G "%CMAKE_GENERATOR%" -DTANGO_BUILD_SHARED=ON -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DIDL_BASE="%IDL_BASE%" -DOMNI_BASE="%OMNI_BASE%" -DZMQ_BASE="%ZMQ_BASE%" -DCPPZMQ_BASE="%CPPZMQ_BASE%" -DPTHREAD_WIN=%PTHREAD_WIN% -DUSE_PCH=OFF -DBUILD_TESTING=OFF ../cppTango
149133

150134
clone_folder: C:\projects\cppTango
151135

@@ -154,34 +138,27 @@ build:
154138
verbosity: minimal
155139

156140
build_script:
157-
- cmd: cd C:/projects/cppTango
158-
- cmake --build ./ --config Release
159-
- cmd: cd c:/projects/debug_build
160-
- cmake --build ./ --config Debug
161-
#- cmake --build ./ --target install --config Debug
162-
141+
- cmd: cd C:/projects/static_build
142+
- cmake --build ./ --config %CONFIGURATION%
143+
- cmd: cd C:/projects/dynamic_build
144+
- cmake --build ./ --config %CONFIGURATION%
163145

164146
after_build:
165-
- cmd: cd C:/projects/cppTango
166147
- cmd: set /p TANGO_LIB_VER=<VERSION
167148
- cmd: echo %TANGO_LIB_VER%
168-
# Generating installer
169-
- cmd: cpack -G WIX
170-
- cmd: cpack -G ZIP
171-
- cmd: cd c:/projects/debug_build
172-
# Generating installer
173-
- cmd: cpack -C Debug -G WIX
174-
- cmd: cpack -C Debug -G ZIP
175-
# copying debug versions for upload
176-
- cmd: cd c:/projects/debug_build
177-
- cmd: if %ARCH%==win32-msvc14 move libtango_%TANGO_LIB_VER%_v140_x86_debug.msi C:/projects/cppTango
178-
- cmd: if %ARCH%==win32-msvc14 move libtango_%TANGO_LIB_VER%_v140_x86_debug.zip C:/projects/cppTango
179-
- cmd: if %ARCH%==x64-msvc14 move libtango_%TANGO_LIB_VER%_v140_x64_debug.msi C:/projects/cppTango
180-
- cmd: if %ARCH%==x64-msvc14 move libtango_%TANGO_LIB_VER%_v140_x64_debug.zip C:/projects/cppTango
181-
- cmd: if %ARCH%==win32-msvc15 move libtango_%TANGO_LIB_VER%_v141_x86_debug.msi C:/projects/cppTango
182-
- cmd: if %ARCH%==win32-msvc15 move libtango_%TANGO_LIB_VER%_v141_x86_debug.zip C:/projects/cppTango
183-
- cmd: if %ARCH%==x64-msvc15 move libtango_%TANGO_LIB_VER%_v141_x64_debug.msi C:/projects/cppTango
184-
- cmd: if %ARCH%==x64-msvc15 move libtango_%TANGO_LIB_VER%_v141_x64_debug.zip C:/projects/cppTango
149+
# Generate and move artifacts for all variants
150+
# static
151+
- cmd: cd C:/projects/static_build
152+
- cmd: cpack -C %CONFIGURATION% -G WIX
153+
- cmd: cpack -C %CONFIGURATION% -G ZIP
154+
- cmd: move libtango_%TANGO_LIB_VER%*.msi C:/projects/cppTango
155+
- cmd: move libtango_%TANGO_LIB_VER%*.zip C:/projects/cppTango
156+
# dynamic
157+
- cmd: cd c:/projects/dynamic_build
158+
- cmd: cpack -C %CONFIGURATION% -G WIX
159+
- cmd: cpack -C %CONFIGURATION% -G ZIP
160+
- cmd: move libtango_%TANGO_LIB_VER%*.msi C:/projects/cppTango
161+
- cmd: move libtango_%TANGO_LIB_VER%*.zip C:/projects/cppTango
185162

186163

187164
on_finish:
@@ -193,7 +170,6 @@ on_failure:
193170
# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
194171

195172
artifacts:
196-
- path: ./*.exe
197173
- path: ./*.zip
198174
- path: ./*.msi
199175

configure/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ if(OMNI_BASE)
5050
link_directories(${OMNI_BASE}/lib/x86_win32/)
5151
include_directories($ENV{OMNI_BASE}/include)
5252
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
53-
set(OMNIORB_PKG_LIBRARIES_DYN "omniORB4_rtd.lib;omniDynamic4_rtd.lib;omnithread_rtd.lib;COS4_rtd.lib;msvcstubd.lib")
54-
set(OMNIORB_PKG_LIBRARIES_STA "omniORB4d.lib;omniDynamic4d.lib;omnithreadd.lib;COS4d.lib;msvcstubd.lib")
53+
set(OMNIORB_PKG_LIBRARIES_DYN "omniORB4_rtd.lib;omniDynamic4_rtd.lib;omnithread_rtd.lib;COS4_rtd.lib")
54+
set(OMNIORB_PKG_LIBRARIES_STA "omniORB4d.lib;omniDynamic4d.lib;omnithreadd.lib;COS4d.lib")
5555
else()
56-
set(OMNIORB_PKG_LIBRARIES_DYN "omniORB4_rt.lib;omniDynamic4_rt.lib;omnithread_rt.lib;COS4_rt.lib;msvcstub.lib")
57-
set(OMNIORB_PKG_LIBRARIES_STA "omniORB4.lib;omniDynamic4.lib;omnithread.lib;COS4.lib;msvcstub.lib")
56+
set(OMNIORB_PKG_LIBRARIES_DYN "omniORB4_rt.lib;omniDynamic4_rt.lib;omnithread_rt.lib;COS4_rt.lib")
57+
set(OMNIORB_PKG_LIBRARIES_STA "omniORB4.lib;omniDynamic4.lib;omnithread.lib;COS4.lib")
5858
endif()
5959
else(WIN32)
6060
set(OMNIIDL_PATH ${OMNI_BASE}/bin/)

0 commit comments

Comments
 (0)