annotate Samples/README.md @ 1382:9d138883be66

Proper command-line parameter management for SDL sample
author Benjamin Golinvaux <bgo@osimis.io>
date Wed, 22 Apr 2020 19:55:34 +0200
parents 5b750a4e1b52
children 62dc0d737e7b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1360
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
1 General
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
2 =======
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
3 These samples assume that a recent version of Orthanc is checked out in an
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
4 `orthanc` folder next to the `orthanc-stone` folder. Let's call the top folder
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
5 the `devroot` folder. This name does not matter and is not used anywhere.
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
6
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
7 Here's the directory layout that we suggest:
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
8
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
9 ```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
10 devroot/
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
11 |
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
12 +- orthanc/
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
13 |
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
14 +- orthanc-stone/
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
15 |
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
16 ...
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
17 ```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
18
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
19 Orthanc can be retrieved with:
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
20 ```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
21 hg clone https://hg.orthanc-server.com/orthanc
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
22 ```
1378
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
23
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
24 Furthermore, the samples usually assume that an Orthanc is running locally,
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
25 without authentication, on port 8042. The samples can easily be tweaked if
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
26 your setup is different.
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
27
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
28 When Dicom resources are to be displayed, their IDs can be supplied in the
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
29 various ways suitable for the platform (command-line arguments, URL parameters
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
30 or through the GUI)
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
31
1360
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
32
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
33 WebAssembly samples
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
34 ===================
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
35
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
36 Building the WebAssembly samples require the Emscripten SDK
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
37 (https://emscripten.org/). This SDK goes far beyond the simple compilation to
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
38 the wasm (Web Assembly) bytecode and provides a comprehensive library that
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
39 eases porting native C and C++ programs and libraries. The Emscripten SDK also
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
40 makes it easy to generate the companion Javascript files requires to use a
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
41 wasm module in a web application.
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
42
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
43 Although Emscripten runs on all major platforms, Stone of Orthanc is developed
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
44 and tested with the Linux version of Emscripten.
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
45
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
46 Emscripten runs perfectly fine under the Windows Subsystem for Linux (that is
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
47 the environment used quite often by the Stone of Orthanc team)
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
48
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
49 **Important note:** The following examples **and the build scripts** will
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
50 assume that you have installed the Emscripten SDK in `~/apps/emsdk`.
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
51
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
52 The following packages should get you going (a Debian-like distribution such
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
53 as Debian or Ubuntu is assumed)
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
54
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
55 ```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
56 sudo apt-get update
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
57 sudo apt-get install -y build-essential curl wget git python cmake pkg-config
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
58 sudo apt-get install -y mercurial unzip npm ninja-build p7zip-full gettext-base
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
59 ```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
60
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
61 SingleFrameViewer
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
62 -----------------
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
63
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
64 This sample application displays a single frame of a Dicom instance that can
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
65 be loaded from Orthanc, either by using the Orthanc REST API or through the
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
66 Dicomweb server functionality of Orthanc.
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
67
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
68 This barebones sample uses plain Javascript and requires the
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
69 Emscripten toolchain and cmake, in addition to a few standard packages.
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
70
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
71 Here's how you can build it: create the following script (for instance,
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
72 `build-wasm-SingleFrameViewer.sh`) one level above the orthanc-stone repository,
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
73 thus, in the folder we have called `devroot`.
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
74
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
75 If you feel confident, you can also simply read the following script and
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
76 enter the commands interactively in the terminal.
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
77
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
78 ```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
79 #!/bin/bash
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
80
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
81 if [ ! -d "orthanc-stone" ]; then
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
82 echo "This script must be run from the folder one level above orthanc-stone"
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
83 exit 1
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
84 fi
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
85
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
86 if [[ ! $# -eq 1 ]]; then
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
87 echo "Usage:"
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
88 echo " $0 [BUILD_TYPE]"
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
89 echo ""
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
90 echo " with:"
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
91 echo " BUILD_TYPE = Debug, RelWithDebInfo or Release"
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
92 echo ""
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
93 exit 1
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
94 fi
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
95
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
96 # define the variables that we'll use
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
97 buildType=$1
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
98 buildFolderName="`pwd`/out/build-stone-wasm-SingleFrameViewer-$buildType"
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
99 installFolderName="`pwd`/out/install-stone-wasm-SingleFrameViewer-$buildType"
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
100
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
101 # configure the environment to use Emscripten
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
102 . ~/apps/emsdk/emsdk_env.sh
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
103
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
104
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
105 mkdir -p $buildFolderName
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
106
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
107 # change current folder to the build folder
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
108 pushd $buildFolderName
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
109
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
110 emcmake cmake -G "Ninja" \
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
111 -DCMAKE_BUILD_TYPE=$buildType \
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
112 -DCMAKE_INSTALL_PREFIX=$installFolderName \
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
113 -DSTATIC_BUILD=ON -DOPENSSL_NO_CAPIENG=ON -DALLOW_DOWNLOADS=ON \
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
114 ../orthanc-stone/Samples/WebAssembly/SingleFrameViewer
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
115
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
116 # perform build + installation
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
117 ninja install
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
118
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
119 # restore the original working folder
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
120 popd
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
121
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
122 echo "If all went well, the output files can be found in $installFolderName:"
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
123
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
124 ls $installFolderName```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
125 ```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
126
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
127 Simply navigate to the dev root, and execute the script:
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
128
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
129 ```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
130 ./build-wasm-SingleFrameViewer.sh RelWithDebInfo
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
131 ```
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
132
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
133 I suggest that you do *not* use the `Debug` confirmation unless you really
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
134 need it, for the additional checks that are made will lead to a very long
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
135 build time and much slower execution (more severe than with a native non-wasm
a3b453a833e2 Some real doc
Benjamin Golinvaux <bgo@osimis.io>
parents:
diff changeset
136 target)
1378
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
137
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
138 Native samples
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
139 =================
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
140
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
141 SdlSimpleViewer
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
142 ---------------
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
143
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
144 ### Windows build
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
145
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
146 Here's how to build the SdlSimpleViewer example using Visual Studio 2019
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
147 (the shell is Powershell, but the legacy shell can also be used with some
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
148 tweaks). This example is meant to be launched from the folder above
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
149 orthanc-stone.
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
150
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
151 ```
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
152 # create the build folder and navigate to it
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
153 $buildDir = "build-stone-sdlviewer-msvc16-x64"
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
154
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
155 if (-not (Test-Path $buildDir)) {
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
156 mkdir -p $buildDir | Out-Null
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
157 }
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
158
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
159 cd $buildDir
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
160
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
161 # perform the configuration
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
162 cmake -G "Visual Studio 16 2019" -A x64 `
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
163 -DMSVC_MULTIPLE_PROCESSES=ON `
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
164 -DALLOW_DOWNLOADS=ON `
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
165 -DSTATIC_BUILD=ON `
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
166 -DOPENSSL_NO_CAPIENG=ON `
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
167 ../orthanc-stone/Samples/Sdl/SimpleViewer
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
168
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
169 $solutionPath = ls -filter *.sln
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
170 Write-Host "Solution file(s) available at: $solutionPath"
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
171 ```
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
172
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
173 The initial configuration step will be quite lengthy, for CMake needs to
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
174 setup its internal cache based on your environment and build tools.
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
175
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
176 Subsequent runs will be several orders of magnitude faster!
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
177
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
178 One the solution (.sln) file is ready, you can open it using the Visual Studio
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
179 IDE and choose Build --> Build solution.
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
180
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
181 An alternative is to execute `cmake --build .` in the build folder created by
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
182 the script.
5b750a4e1b52 Doc for SDL sample
Benjamin Golinvaux <bgo@osimis.io>
parents: 1360
diff changeset
183