Changes for page PBA-cbs bootstrapping of portable C++ project
Last modified by christoph_lechleitner@iteg_at on 2018-01-03 03.50:49
From version 1.1
edited by christoph_lechleitner@iteg_at
on 2012-07-20 05.08:42
on 2012-07-20 05.08:42
Change comment:
There is no comment for this version
To version 2.1
edited by christoph_lechleitner@iteg_at
on 2012-07-20 06.31:00
on 2012-07-20 06.31:00
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -PBA-cbs bootstrapping of portable C /C++ project1 +PBA-cbs bootstrapping of portable C++ project - Content
-
... ... @@ -1,5 +1,113 @@ 1 - Iampreparinga fullexampletobecheckedoutorexported from public svn.1 +Setting up a portable C++ project still is a pain in the ass, especially if it shall be portable. 2 2 3 - Soon ...3 +When trying to automate it in some way, we came to the conclusion that a full example in a public subversion repository is a good solutions because it's easy to use for you and easy to maintain for us. 4 4 5 +=== {{id name="PBA-cbsbootstrappingofportableC++project-HowTo..."/}}HowTo ... === 6 + 7 +These are the steps for an ultra fast bootstrapping of a portable project relying on pba-cbs and [[our incarnation of the MinGW cross compilation toolchain>>doc:MINGW64.WebHome]]. 8 + 9 +===== {{id name="PBA-cbsbootstrappingofportableC++project-Prepare"/}}Prepare ===== 10 + 11 +Just to avoid frustration: You need the {{code language="none"}}pba-cbs{{/code}} package installed, using i.e. the {{code language="none"}}pba{{/code}} debsource from [[https:~~/~~/deb.clazzes.org>>url:https://deb.clazzes.org||shape="rect"]]. 12 + 13 +{{code language="none"}}pba-cbs{{/code}} depends on required packages, but do not forget {{code language="none"}}subversion{{/code}}, {{code language="none"}}gcc{{/code}}, ... 14 + 15 +===== {{id name="PBA-cbsbootstrappingofportableC++project-Retrievethesceleton"/}}Retrieve the sceleton ===== 16 + 17 +Decide for the main name of your app: 18 + 19 +{{code language="none"}} 20 +MYAPPNAME="myapp" 21 +{{/code}} 22 + 23 +Export our example from public svn: 24 + 25 +{{code language="none"}} 26 +svn export "https://svn.clazzes.org/svn/pba/trunk/pba-helloworld-portable" $MYAPPNAME 27 +{{/code}} 28 + 29 +===== {{id name="PBA-cbsbootstrappingofportableC++project-Renameandsearch'n'replace"/}}Rename and search'n'replace ===== 30 + 31 +Rename some stuff and have the inlcude files adapted: 32 + 33 +{{code language="none"}} 34 +cd $MYAPPNAME 35 + 36 +scripts/rename_main_files.sh $MYAPPNAME 37 +{{/code}} 38 + 39 +===== {{id name="PBA-cbsbootstrappingofportableC++project-Adaptdebianinformation..."/}}Adapt debian information ... ===== 40 + 41 +If you want debian-packages, edit them, change my name and e-mail to yours and adapt the description: 42 + 43 +{{code language="none"}} 44 +$EDITOR debian*/control debian*/changelog 45 +{{/code}} 46 + 47 +===== {{id name="PBA-cbsbootstrappingofportableC++project-...ordropdebian/"/}}... or drop debian/ ===== 48 + 49 +If you do not want debian packages, just remove the debian directory: 50 + 51 +{{code language="none"}} 52 +rm -rf debian* 53 +{{/code}} 54 + 55 +===== {{id name="PBA-cbsbootstrappingofportableC++project-AdapttheWindowsrctemplate..."/}}Adapt the Windows rc template ... ===== 56 + 57 +If you want windows binaries, edit the resoure template: 58 + 59 +{{code language="none"}} 60 +$EDITOR src/*.rc 61 +{{/code}} 62 + 63 +Do not forget to change the icon, too! 64 + 65 +===== {{id name="PBA-cbsbootstrappingofportableC++project-...orremoveit"/}}... or remove it ===== 66 + 67 +If you do not want windows binaries, remove it: 68 + 69 +((( 70 +{{code language="none"}} 71 +rm src/*.rc 72 +{{/code}} 73 + 74 +In most cases you just broke the windows build! 75 + 76 +===== {{id name="PBA-cbsbootstrappingofportableC++project-Optional:Activatesvnoranotherrevisioncontrol"/}}Optional: Activate svn or another revision control ===== 77 +))) 78 + 79 +Now (and before any build activity) is a very good time to put your project under subversion control: 80 + 81 +{{code language="none"}} 82 +svn add . 83 +{{/code}} 84 + 85 +You might also want to fill {{code language="none"}}svn:ignore{{/code}} properties of some directories: 86 + 87 +{{code language="none"}} 88 +scripts/set_svn_ignore.sh 89 +{{/code}} 90 + 91 +===== {{id name="PBA-cbsbootstrappingofportableC++project-Optional:buildit"/}}Optional: build it ===== 92 + 93 +To produce a debian package, just: 94 + 95 +{{code language="none"}} 96 +pba-build -u 97 + 98 +# or dpkg-build* 99 +{{/code}} 100 + 101 +We will soon add {{code language="none"}}debian-mingw-*/{{/code}} directories and NSIS installers, for now for Windows just use make: 102 + 103 +{{code language="none"}} 104 +make -C build/win32/release/ 105 + 106 +make -C build/win64/release/ 107 +{{/code}} 108 + 5 5 110 + 111 + 112 + 113 +
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -65917 11 +659172 - Title
-
... ... @@ -1,1 +1,1 @@ 1 -PBA-cbs bootstrapping of portable C /C++ project1 +PBA-cbs bootstrapping of portable C++ project - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://clazzes.atlassian.net/wiki/spaces/PBA/pages/65917 1/PBA-cbs bootstrapping of portable C/C++ project1 +https://clazzes.atlassian.net/wiki/spaces/PBA/pages/659172/PBA-cbs bootstrapping of portable C++ project