qtbindings 4.8.6.3 → 4.8.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/COPYING.LIB.txt +510 -510
- data/COPYING.txt +286 -286
- data/KNOWN_ISSUES.txt +17 -17
- data/bin/rbqtapi +0 -0
- data/bin/rbrcc +0 -0
- data/bin/rbuic4 +0 -0
- data/bin/smokeapi +0 -0
- data/bin/smokedeptool +0 -0
- data/examples/designer/calculatorbuilder/calculatorbuilder.qrc +5 -5
- data/examples/designer/calculatorbuilder/calculatorform.rb +60 -60
- data/examples/designer/calculatorbuilder/calculatorform.ui +299 -299
- data/examples/designer/calculatorbuilder/main.rb +34 -34
- data/examples/designer/calculatorbuilder/makefile +2 -2
- data/examples/designer/calculatorform/calculatorform.rb +46 -46
- data/examples/designer/calculatorform/calculatorform.ui +277 -277
- data/examples/designer/calculatorform/main.rb +32 -32
- data/examples/designer/calculatorform/makefile +3 -3
- data/examples/desktop/screenshot/main.rb +32 -32
- data/examples/desktop/screenshot/screenshot.rb +157 -157
- data/examples/desktop/systray/images/bad.svg +64 -64
- data/examples/desktop/systray/images/heart.svg +55 -55
- data/examples/desktop/systray/images/trash.svg +58 -58
- data/examples/desktop/systray/main.rb +41 -41
- data/examples/desktop/systray/makefile +2 -2
- data/examples/desktop/systray/systray.qrc +7 -7
- data/examples/desktop/systray/window.rb +219 -219
- data/examples/dialogs/complexwizard/complexwizard.rb +140 -140
- data/examples/dialogs/complexwizard/licensewizard.rb +294 -294
- data/examples/dialogs/complexwizard/main.rb +31 -31
- data/examples/dialogs/configdialog/configdialog.rb +109 -109
- data/examples/dialogs/configdialog/main.rb +31 -31
- data/examples/dialogs/configdialog/pages.rb +140 -140
- data/examples/dialogs/extension/finddialog.rb +89 -89
- data/examples/dialogs/extension/main.rb +31 -31
- data/examples/dialogs/findfiles/main.rb +32 -32
- data/examples/dialogs/findfiles/window.rb +177 -177
- data/examples/dialogs/simplewizard/classwizard.rb +374 -374
- data/examples/dialogs/simplewizard/main.rb +31 -31
- data/examples/dialogs/simplewizard/simplewizard.rb +110 -110
- data/examples/dialogs/standarddialogs/dialog.rb +340 -340
- data/examples/dialogs/standarddialogs/main.rb +31 -31
- data/examples/dialogs/tabdialog/main.rb +38 -38
- data/examples/dialogs/tabdialog/tabdialog.rb +178 -178
- data/examples/draganddrop/draggableicons/dragwidget.rb +125 -125
- data/examples/draganddrop/draggableicons/main.rb +41 -41
- data/examples/draganddrop/draggabletext/draglabel.rb +51 -51
- data/examples/draganddrop/draggabletext/dragwidget.rb +94 -94
- data/examples/draganddrop/draggabletext/main.rb +33 -33
- data/examples/draganddrop/draggabletext/words.txt +41 -41
- data/examples/draganddrop/dropsite/dropsitewidget.rb +99 -99
- data/examples/draganddrop/dropsite/dropsitewindow.rb +114 -114
- data/examples/draganddrop/dropsite/main.rb +33 -33
- data/examples/draganddrop/fridgemagnets/draglabel.rb +78 -78
- data/examples/draganddrop/fridgemagnets/dragwidget.rb +130 -130
- data/examples/draganddrop/fridgemagnets/main.rb +33 -33
- data/examples/draganddrop/fridgemagnets/words.txt +48 -48
- data/examples/draganddrop/puzzle/main.rb +33 -33
- data/examples/draganddrop/puzzle/mainwindow.rb +136 -136
- data/examples/draganddrop/puzzle/pieceslist.rb +95 -95
- data/examples/draganddrop/puzzle/puzzlewidget.rb +190 -190
- data/examples/graphicsview/collidingmice/main.rb +53 -53
- data/examples/graphicsview/collidingmice/makefile +2 -2
- data/examples/graphicsview/collidingmice/mice.qrc +5 -5
- data/examples/graphicsview/collidingmice/mouse.rb +176 -176
- data/examples/graphicsview/dragdroprobot/coloritem.rb +86 -86
- data/examples/graphicsview/dragdroprobot/main.rb +57 -57
- data/examples/graphicsview/dragdroprobot/makefile +2 -2
- data/examples/graphicsview/dragdroprobot/robot.qrc +5 -5
- data/examples/graphicsview/dragdroprobot/robot.rb +246 -246
- data/examples/itemviews/chart/chart.qrc +5 -5
- data/examples/itemviews/chart/main.rb +33 -33
- data/examples/itemviews/chart/mainwindow.rb +151 -151
- data/examples/itemviews/chart/makefile +2 -2
- data/examples/itemviews/chart/mydata.cht +8 -8
- data/examples/itemviews/chart/pieview.rb +516 -516
- data/examples/itemviews/chart/qtdata.cht +14 -14
- data/examples/itemviews/dirview/main.rb +39 -39
- data/examples/itemviews/pixelator/imagemodel.rb +51 -51
- data/examples/itemviews/pixelator/images.qrc +5 -5
- data/examples/itemviews/pixelator/main.rb +34 -34
- data/examples/itemviews/pixelator/mainwindow.rb +218 -218
- data/examples/itemviews/pixelator/makefile +3 -3
- data/examples/itemviews/pixelator/pixeldelegate.rb +67 -67
- data/examples/itemviews/puzzle/main.rb +36 -36
- data/examples/itemviews/puzzle/mainwindow.rb +143 -143
- data/examples/itemviews/puzzle/piecesmodel.rb +174 -174
- data/examples/itemviews/puzzle/puzzlewidget.rb +192 -192
- data/examples/itemviews/simpledommodel/domitem.rb +62 -62
- data/examples/itemviews/simpledommodel/dommodel.rb +139 -139
- data/examples/itemviews/simpledommodel/main.rb +33 -33
- data/examples/itemviews/simpledommodel/mainwindow.rb +66 -66
- data/examples/itemviews/simpletreemodel/default.txt +40 -40
- data/examples/itemviews/simpletreemodel/main.rb +41 -41
- data/examples/itemviews/simpletreemodel/makefile +2 -2
- data/examples/itemviews/simpletreemodel/simpletreemodel.qrc +5 -5
- data/examples/itemviews/simpletreemodel/treeitem.rb +67 -67
- data/examples/itemviews/simpletreemodel/treemodel.rb +164 -164
- data/examples/itemviews/sortingmodel/default.txt +40 -40
- data/examples/itemviews/sortingmodel/main.rb +53 -53
- data/examples/itemviews/sortingmodel/treeitem.rb +73 -73
- data/examples/itemviews/sortingmodel/treemodel.rb +166 -166
- data/examples/itemviews/spinboxdelegate/main.rb +47 -47
- data/examples/itemviews/spinboxdelegate/spinboxdelegate.rb +62 -62
- data/examples/killerfilter/killerfilter.rb +55 -55
- data/examples/layouts/basiclayouts/dialog.rb +110 -110
- data/examples/layouts/basiclayouts/main.rb +31 -31
- data/examples/layouts/borderlayout/borderlayout.rb +190 -190
- data/examples/layouts/borderlayout/main.rb +32 -32
- data/examples/layouts/borderlayout/window.rb +52 -52
- data/examples/layouts/flowlayouts/flowlayout.rb +108 -108
- data/examples/layouts/flowlayouts/main.rb +32 -32
- data/examples/layouts/flowlayouts/window.rb +43 -43
- data/examples/mainwindows/application/main.rb +32 -32
- data/examples/mainwindows/application/mainwindow.rb +285 -285
- data/examples/mainwindows/dockwidgets/main.rb +32 -32
- data/examples/mainwindows/dockwidgets/mainwindow.rb +302 -302
- data/examples/mainwindows/mdi/main.rb +32 -32
- data/examples/mainwindows/mdi/mainwindow.rb +363 -363
- data/examples/mainwindows/mdi/mdichild.rb +152 -152
- data/examples/mainwindows/menus/main.rb +32 -32
- data/examples/mainwindows/menus/mainwindow.rb +327 -327
- data/examples/mainwindows/recentfiles/main.rb +32 -32
- data/examples/mainwindows/recentfiles/mainwindow.rb +258 -258
- data/examples/mainwindows/sdi/main.rb +32 -32
- data/examples/mainwindows/sdi/mainwindow.rb +335 -335
- data/examples/network/broadcastreceiver/main.rb +32 -32
- data/examples/network/broadcastreceiver/receiver.rb +64 -64
- data/examples/network/broadcastsender/main.rb +32 -32
- data/examples/network/broadcastsender/sender.rb +72 -72
- data/examples/network/fortuneclient/client.rb +149 -149
- data/examples/network/fortuneclient/main.rb +32 -32
- data/examples/network/fortuneserver/main.rb +32 -32
- data/examples/network/fortuneserver/server.rb +88 -88
- data/examples/network/ftp/ftpwindow.rb +259 -259
- data/examples/network/ftp/main.rb +32 -32
- data/examples/network/http/httpwindow.rb +187 -187
- data/examples/network/http/main.rb +32 -32
- data/examples/network/loopback/dialog.rb +163 -163
- data/examples/network/loopback/main.rb +32 -32
- data/examples/opengl/grabber/glwidget.rb +265 -265
- data/examples/opengl/grabber/main.rb +32 -32
- data/examples/opengl/grabber/mainwindow.rb +189 -189
- data/examples/opengl/hellogl/glwidget.rb +226 -226
- data/examples/opengl/hellogl/main.rb +32 -32
- data/examples/opengl/hellogl/window.rb +66 -66
- data/examples/opengl/textures/glwidget.rb +151 -151
- data/examples/opengl/textures/main.rb +32 -32
- data/examples/opengl/textures/window.rb +77 -77
- data/examples/painting/basicdrawing/main.rb +32 -32
- data/examples/painting/basicdrawing/renderarea.rb +166 -166
- data/examples/painting/basicdrawing/window.rb +215 -215
- data/examples/painting/concentriccircles/circlewidget.rb +88 -88
- data/examples/painting/concentriccircles/main.rb +32 -32
- data/examples/painting/concentriccircles/window.rb +72 -72
- data/examples/painting/fontsampler/main.rb +32 -32
- data/examples/painting/fontsampler/mainwindow.rb +369 -369
- data/examples/painting/fontsampler/mainwindowbase.ui +136 -136
- data/examples/painting/fontsampler/makefile +8 -8
- data/examples/painting/fontsampler/previewdialog.rb +257 -257
- data/examples/painting/fontsampler/previewdialogbase.ui +224 -224
- data/examples/painting/fontsampler/previewlabel.rb +43 -43
- data/examples/painting/imagecomposition/imagecomposer.rb +152 -152
- data/examples/painting/imagecomposition/imagecomposition.qrc +6 -6
- data/examples/painting/imagecomposition/main.rb +33 -33
- data/examples/painting/imagecomposition/makefile +2 -2
- data/examples/painting/painterpaths/main.rb +32 -32
- data/examples/painting/painterpaths/renderarea.rb +97 -97
- data/examples/painting/painterpaths/window.rb +247 -247
- data/examples/painting/svgviewer/files/bubbles.svg +212 -212
- data/examples/painting/svgviewer/files/cubic.svg +77 -77
- data/examples/painting/svgviewer/files/spheres.svg +79 -79
- data/examples/painting/svgviewer/main.rb +38 -38
- data/examples/painting/svgviewer/mainwindow.rb +99 -99
- data/examples/painting/svgviewer/makefile +2 -2
- data/examples/painting/svgviewer/svgview.rb +156 -156
- data/examples/painting/svgviewer/svgviewer.qrc +6 -6
- data/examples/painting/svgviewer/svgwindow.rb +87 -87
- data/examples/painting/transformations/main.rb +32 -32
- data/examples/painting/transformations/renderarea.rb +127 -127
- data/examples/painting/transformations/window.rb +153 -153
- data/examples/passivepopup/passivepopup.rb +38 -38
- data/examples/qdbus/chat/chat.rb +146 -146
- data/examples/qdbus/chat/chat_adaptor.rb +12 -12
- data/examples/qdbus/chat/chat_interface.rb +13 -13
- data/examples/qdbus/chat/chatmainwindow.ui +184 -184
- data/examples/qdbus/chat/chatsetnickname.ui +145 -145
- data/examples/qdbus/chat/makefile +8 -8
- data/examples/qdbus/complexpingpong/complexping.rb +92 -92
- data/examples/qdbus/complexpingpong/complexpong.rb +83 -83
- data/examples/qdbus/complexpingpong/ping-common.rb +1 -1
- data/examples/qdbus/listnames/listnames.rb +69 -69
- data/examples/qdbus/pingpong/ping-common.rb +1 -1
- data/examples/qdbus/pingpong/ping.rb +52 -52
- data/examples/qdbus/pingpong/pong.rb +55 -55
- data/examples/qdbus/remotecontrolledcar/car/car.rb +151 -151
- data/examples/qdbus/remotecontrolledcar/car/main.rb +50 -50
- data/examples/qdbus/remotecontrolledcar/controller/controller.rb +66 -66
- data/examples/qdbus/remotecontrolledcar/controller/controller.ui +61 -61
- data/examples/qdbus/remotecontrolledcar/controller/main.rb +32 -32
- data/examples/qdbus/remotecontrolledcar/controller/makefile +2 -2
- data/examples/qtscribble/scribble.rb +270 -270
- data/examples/richtext/calendar/main.rb +33 -33
- data/examples/richtext/calendar/mainwindow.rb +173 -173
- data/examples/richtext/orderform/detailsdialog.rb +130 -130
- data/examples/richtext/orderform/main.rb +34 -34
- data/examples/richtext/orderform/mainwindow.rb +194 -194
- data/examples/richtext/syntaxhighlighter/examples/example +79 -79
- data/examples/richtext/syntaxhighlighter/highlighter.rb +90 -90
- data/examples/richtext/syntaxhighlighter/main.rb +34 -34
- data/examples/richtext/syntaxhighlighter/mainwindow.rb +105 -105
- data/examples/ruboids/LICENSE.txt +58 -58
- data/examples/ruboids/Manifest +26 -26
- data/examples/ruboids/README +53 -53
- data/examples/ruboids/TODO +29 -29
- data/examples/ruboids/boids.properties +33 -33
- data/examples/ruboids/generateManifest.rb +42 -42
- data/examples/ruboids/release.rb +152 -152
- data/examples/ruboids/ruboids/Boid.rb +141 -141
- data/examples/ruboids/ruboids/BoidView.rb +159 -159
- data/examples/ruboids/ruboids/Camera.rb +24 -24
- data/examples/ruboids/ruboids/CameraDialog.rb +218 -218
- data/examples/ruboids/ruboids/Canvas.rb +143 -143
- data/examples/ruboids/ruboids/Cloud.rb +61 -61
- data/examples/ruboids/ruboids/CloudView.rb +54 -54
- data/examples/ruboids/ruboids/Flock.rb +47 -47
- data/examples/ruboids/ruboids/Graphics.rb +278 -278
- data/examples/ruboids/ruboids/Params.rb +87 -87
- data/examples/ruboids/ruboids/Point.rb +153 -153
- data/examples/ruboids/ruboids/Thing.rb +34 -34
- data/examples/ruboids/ruboids/Triangle.rb +21 -21
- data/examples/ruboids/ruboids/View.rb +88 -88
- data/examples/ruboids/ruboids/World.rb +82 -82
- data/examples/ruboids/ruboids/WorldWindow.rb +52 -52
- data/examples/ruboids/ruboids/info.rb +12 -12
- data/examples/ruboids/ruboids/ruboids.rb +29 -29
- data/examples/threading/main_thread.rb +19 -19
- data/examples/tutorial/t1/t1.rb +10 -10
- data/examples/tutorial/t10/cannon.rb +72 -72
- data/examples/tutorial/t10/lcdrange.rb +45 -45
- data/examples/tutorial/t10/t10.rb +55 -55
- data/examples/tutorial/t11/cannon.rb +123 -124
- data/examples/tutorial/t11/lcdrange.rb +45 -45
- data/examples/tutorial/t11/t11.rb +65 -65
- data/examples/tutorial/t12/cannon.rb +157 -158
- data/examples/tutorial/t12/lcdrange.rb +58 -59
- data/examples/tutorial/t12/t12.rb +65 -66
- data/examples/tutorial/t13/cannon.rb +206 -208
- data/examples/tutorial/t13/gamebrd.rb +112 -113
- data/examples/tutorial/t13/lcdrange.rb +59 -60
- data/examples/tutorial/t13/t13.rb +11 -11
- data/examples/tutorial/t14/cannon.rb +262 -263
- data/examples/tutorial/t14/gamebrd.rb +122 -123
- data/examples/tutorial/t14/lcdrange.rb +61 -63
- data/examples/tutorial/t14/t14.rb +11 -11
- data/examples/tutorial/t2/t2.rb +16 -16
- data/examples/tutorial/t3/t3.rb +17 -18
- data/examples/tutorial/t4/t4.rb +23 -25
- data/examples/tutorial/t5/t5.rb +35 -37
- data/examples/tutorial/t6/t6.rb +48 -52
- data/examples/tutorial/t7/lcdrange.rb +32 -32
- data/examples/tutorial/t7/t7.rb +40 -42
- data/examples/tutorial/t8/cannon.rb +37 -38
- data/examples/tutorial/t8/lcdrange.rb +45 -45
- data/examples/tutorial/t8/t8.rb +43 -43
- data/examples/tutorial/t9/cannon.rb +44 -45
- data/examples/tutorial/t9/lcdrange.rb +46 -46
- data/examples/tutorial/t9/t9.rb +43 -43
- data/examples/widgets/analogclock/analogclock.rb +94 -94
- data/examples/widgets/analogclock/main.rb +9 -9
- data/examples/widgets/calculator/button.rb +45 -45
- data/examples/widgets/calculator/calculator.rb +382 -382
- data/examples/widgets/calculator/main.rb +32 -32
- data/examples/widgets/charactermap/characterwidget.rb +109 -109
- data/examples/widgets/charactermap/main.rb +32 -32
- data/examples/widgets/charactermap/mainwindow.rb +118 -118
- data/examples/widgets/digitalclock/digitalclock.rb +30 -30
- data/examples/widgets/digitalclock/main.rb +9 -9
- data/examples/widgets/groupbox/main.rb +32 -32
- data/examples/widgets/groupbox/window.rb +134 -134
- data/examples/widgets/icons/iconpreviewarea.rb +110 -110
- data/examples/widgets/icons/iconsizespinbox.rb +39 -39
- data/examples/widgets/icons/imagedelegate.rb +73 -73
- data/examples/widgets/icons/main.rb +32 -32
- data/examples/widgets/icons/mainwindow.rb +351 -351
- data/examples/widgets/imageviewer/imageviewer.rb +219 -219
- data/examples/widgets/imageviewer/main.rb +32 -32
- data/examples/widgets/lineedits/main.rb +32 -32
- data/examples/widgets/lineedits/window.rb +199 -199
- data/examples/widgets/movie/main.rb +32 -32
- data/examples/widgets/movie/movieplayer.rb +201 -201
- data/examples/widgets/screenshot/main.rb +32 -32
- data/examples/widgets/screenshot/screenshot.rb +154 -154
- data/examples/widgets/scribble/main.rb +32 -32
- data/examples/widgets/scribble/mainwindow.rb +202 -202
- data/examples/widgets/scribble/scribblearea.rb +154 -154
- data/examples/widgets/sliders/main.rb +32 -32
- data/examples/widgets/sliders/slidersgroup.rb +97 -97
- data/examples/widgets/sliders/window.rb +124 -124
- data/examples/widgets/spinboxes/main.rb +32 -32
- data/examples/widgets/spinboxes/window.rb +213 -213
- data/examples/widgets/tetrix/main.rb +33 -33
- data/examples/widgets/tetrix/tetrixboard.rb +346 -346
- data/examples/widgets/tetrix/tetrixpiece.rb +135 -135
- data/examples/widgets/tetrix/tetrixwindow.rb +88 -88
- data/examples/widgets/tooltips/main.rb +32 -32
- data/examples/widgets/tooltips/shapeitem.rb +31 -31
- data/examples/widgets/tooltips/sortingbox.rb +222 -222
- data/examples/widgets/wiggly/dialog.rb +48 -48
- data/examples/widgets/wiggly/main.rb +9 -9
- data/examples/widgets/wiggly/wigglywidget.rb +75 -75
- data/examples/widgets/windowflags/controllerwindow.rb +195 -195
- data/examples/widgets/windowflags/main.rb +32 -32
- data/examples/widgets/windowflags/previewwindow.rb +103 -103
- data/examples/xml/dombookmarks/frank.xbel +230 -230
- data/examples/xml/dombookmarks/jennifer.xbel +93 -93
- data/examples/xml/dombookmarks/main.rb +34 -34
- data/examples/xml/dombookmarks/mainwindow.rb +129 -129
- data/examples/xml/dombookmarks/xbeltree.rb +172 -172
- data/examples/xml/saxbookmarks/frank.xbel +230 -230
- data/examples/xml/saxbookmarks/jennifer.xbel +93 -93
- data/examples/xml/saxbookmarks/main.rb +34 -34
- data/examples/xml/saxbookmarks/mainwindow.rb +144 -144
- data/examples/xml/saxbookmarks/xbelgenerator.rb +95 -95
- data/examples/xml/saxbookmarks/xbelhandler.rb +122 -122
- data/ext/cmake/modules/BasicFindPackageVersion.cmake.in +30 -30
- data/ext/cmake/modules/CMakeCSharpCompiler.cmake.in +7 -7
- data/ext/cmake/modules/CMakeCSharpInformation.cmake +366 -366
- data/ext/cmake/modules/CMakeDetermineCSharpCompiler.cmake +85 -85
- data/ext/cmake/modules/CMakeTestCSharpCompiler.cmake +1 -1
- data/ext/cmake/modules/FindLibraryWithDebug.cmake +113 -113
- data/ext/cmake/modules/FindMono.cmake +36 -36
- data/ext/cmake/modules/FindPHP5.cmake +179 -179
- data/ext/cmake/modules/FindPerlMore.cmake +78 -78
- data/ext/cmake/modules/FindPhonon.cmake +71 -71
- data/ext/cmake/modules/FindQImageBlitz.cmake +51 -51
- data/ext/cmake/modules/FindQScintilla.cmake +57 -57
- data/ext/cmake/modules/FindQwt5.cmake +104 -104
- data/ext/cmake/modules/FindRuby.cmake +279 -279
- data/ext/cmake/modules/FindSmoke.cmake +78 -78
- data/ext/cmake/modules/MacroLogFeature.cmake +146 -146
- data/ext/cmake/modules/MacroOptionalAddBindings.cmake +47 -47
- data/ext/cmake/modules/MacroOptionalFindPackage.cmake +28 -28
- data/ext/cmake/modules/MacroPushRequiredVars.cmake +47 -47
- data/ext/cmake/modules/MacroWriteBasicCMakeVersionFile.cmake +22 -22
- data/ext/cmake/modules/SmokeConfig.cmake.in +109 -109
- data/ext/generator/CMakeLists.txt +38 -38
- data/ext/generator/cmake/BasicFindPackageVersion.cmake.in +30 -30
- data/ext/generator/cmake/CMakeLists.txt +24 -24
- data/ext/generator/cmake/FindLibraryWithDebug.cmake +113 -113
- data/ext/generator/cmake/FindPhonon.cmake +71 -71
- data/ext/generator/cmake/FindQImageBlitz.cmake +51 -51
- data/ext/generator/cmake/FindQScintilla.cmake +57 -57
- data/ext/generator/cmake/FindQwt5.cmake +104 -104
- data/ext/generator/cmake/HandleImportedTargetsInCMakeRequiredLibraries.cmake +85 -85
- data/ext/generator/cmake/MacroLogFeature.cmake +146 -146
- data/ext/generator/cmake/MacroOptionalAddBindings.cmake +47 -47
- data/ext/generator/cmake/MacroOptionalFindPackage.cmake +28 -28
- data/ext/generator/cmake/MacroWriteBasicCMakeVersionFile.cmake +22 -22
- data/ext/generator/cmake/SmokeConfig.cmake.in +109 -109
- data/ext/generator/config.h +25 -25
- data/ext/generator/generator_export.h +31 -31
- data/ext/generator/generatorenvironment.cpp +52 -52
- data/ext/generator/generatorenvironment.h +35 -35
- data/ext/generator/generatorpreprocessor.cpp +303 -303
- data/ext/generator/generatorpreprocessor.h +83 -83
- data/ext/generator/generators/CMakeLists.txt +4 -4
- data/ext/generator/generators/dump/CMakeLists.txt +15 -15
- data/ext/generator/generators/dump/generator_dump.cpp +36 -36
- data/ext/generator/generators/smoke/CMakeLists.txt +18 -18
- data/ext/generator/generators/smoke/generator_smoke.cpp +240 -240
- data/ext/generator/generators/smoke/globals.h +140 -140
- data/ext/generator/generators/smoke/helpers.cpp +793 -793
- data/ext/generator/generators/smoke/writeClasses.cpp +502 -502
- data/ext/generator/generators/smoke/writeSmokeDataFile.cpp +754 -754
- data/ext/generator/generatorvisitor.cpp +922 -922
- data/ext/generator/generatorvisitor.h +119 -119
- data/ext/generator/name_compiler.cpp +205 -205
- data/ext/generator/name_compiler.h +76 -76
- data/ext/generator/options.cpp +33 -33
- data/ext/generator/options.h +46 -46
- data/ext/generator/parser/CMakeLists.txt +50 -50
- data/ext/generator/parser/ast.cpp +21 -21
- data/ext/generator/parser/ast.h +923 -923
- data/ext/generator/parser/astutilities.h +65 -65
- data/ext/generator/parser/codegenerator.cpp +867 -867
- data/ext/generator/parser/codegenerator.h +180 -180
- data/ext/generator/parser/codemodel_fwd.h +76 -76
- data/ext/generator/parser/commentformatter.cpp +54 -54
- data/ext/generator/parser/commentformatter.h +45 -45
- data/ext/generator/parser/commentparser.cpp +109 -109
- data/ext/generator/parser/commentparser.h +84 -84
- data/ext/generator/parser/control.cpp +40 -40
- data/ext/generator/parser/control.h +51 -51
- data/ext/generator/parser/cppparser_export.h +33 -33
- data/ext/generator/parser/default_visitor.cpp +470 -470
- data/ext/generator/parser/default_visitor.h +116 -116
- data/ext/generator/parser/dumptree.cpp +146 -146
- data/ext/generator/parser/dumptree.h +50 -50
- data/ext/generator/parser/indexedstring.cpp +213 -213
- data/ext/generator/parser/indexedstring.h +147 -147
- data/ext/generator/parser/kdevelop-parser-rev +1 -1
- data/ext/generator/parser/kdevvarlengtharray.h +346 -346
- data/ext/generator/parser/lexer.cpp +964 -964
- data/ext/generator/parser/lexer.h +308 -308
- data/ext/generator/parser/listnode.cpp +20 -20
- data/ext/generator/parser/listnode.h +97 -97
- data/ext/generator/parser/memorypool.cpp +20 -20
- data/ext/generator/parser/memorypool.h +41 -41
- data/ext/generator/parser/name_compiler.cpp +190 -190
- data/ext/generator/parser/name_compiler.h +77 -77
- data/ext/generator/parser/parser.cpp +4708 -4708
- data/ext/generator/parser/parser.h +290 -290
- data/ext/generator/parser/parsesession.cpp +106 -106
- data/ext/generator/parser/parsesession.h +87 -87
- data/ext/generator/parser/problem.h +21 -21
- data/ext/generator/parser/rpp/CMakeLists.txt +45 -45
- data/ext/generator/parser/rpp/Makefile.am +13 -13
- data/ext/generator/parser/rpp/anchor.h +51 -51
- data/ext/generator/parser/rpp/appendedlist.h +363 -363
- data/ext/generator/parser/rpp/chartools.cpp +146 -146
- data/ext/generator/parser/rpp/chartools.h +99 -99
- data/ext/generator/parser/rpp/macrorepository.cpp +44 -44
- data/ext/generator/parser/rpp/macrorepository.h +59 -59
- data/ext/generator/parser/rpp/pp-configuration +86 -86
- data/ext/generator/parser/rpp/pp-engine.h +267 -267
- data/ext/generator/parser/rpp/pp-environment.cpp +271 -271
- data/ext/generator/parser/rpp/pp-environment.h +119 -119
- data/ext/generator/parser/rpp/pp-internal.cpp +38 -38
- data/ext/generator/parser/rpp/pp-internal.h +37 -37
- data/ext/generator/parser/rpp/pp-location.cpp +191 -191
- data/ext/generator/parser/rpp/pp-location.h +89 -89
- data/ext/generator/parser/rpp/pp-macro-expander.cpp +568 -568
- data/ext/generator/parser/rpp/pp-macro-expander.cpp.orig +558 -558
- data/ext/generator/parser/rpp/pp-macro-expander.h +130 -130
- data/ext/generator/parser/rpp/pp-macro.cpp +153 -153
- data/ext/generator/parser/rpp/pp-macro.h +176 -176
- data/ext/generator/parser/rpp/pp-scanner.cpp +311 -311
- data/ext/generator/parser/rpp/pp-scanner.h +97 -97
- data/ext/generator/parser/rpp/pp-stream.cpp +425 -425
- data/ext/generator/parser/rpp/pp-stream.h +183 -183
- data/ext/generator/parser/rpp/preprocessor.cpp +65 -65
- data/ext/generator/parser/rpp/preprocessor.h +80 -80
- data/ext/generator/parser/rpp/rpp.pri +2 -2
- data/ext/generator/parser/rpp/test/t001.cpp +23 -23
- data/ext/generator/parser/rpp/test/t002.cpp +15 -15
- data/ext/generator/parser/rpp/test/t003.cpp +10 -10
- data/ext/generator/parser/rpp/test/t004.cpp +9 -9
- data/ext/generator/parser/rpp/test/t005.cpp +10 -10
- data/ext/generator/parser/rpp/test/t006.cpp +10 -10
- data/ext/generator/parser/rpp/test/t007.cpp +6 -6
- data/ext/generator/parser/rpp/test/t008.cpp +6 -6
- data/ext/generator/parser/rpp/test/t009.cpp +5 -5
- data/ext/generator/parser/rpp/test/t010.cpp +15 -15
- data/ext/generator/parser/rpp/test/t011.cpp +9 -9
- data/ext/generator/parser/rpp/tests/CMakeLists.txt +17 -17
- data/ext/generator/parser/rpp/tests/main.cpp +69 -69
- data/ext/generator/parser/rxx.pri +50 -50
- data/ext/generator/parser/rxx_allocator.h +128 -128
- data/ext/generator/parser/safetycounter.h +57 -57
- data/ext/generator/parser/simplecursor.h +74 -74
- data/ext/generator/parser/stringhelpers.cpp +577 -577
- data/ext/generator/parser/stringhelpers.h +118 -118
- data/ext/generator/parser/symbol.h +140 -140
- data/ext/generator/parser/tests/CMakeLists.txt +46 -46
- data/ext/generator/parser/tests/test_generator.cpp +259 -259
- data/ext/generator/parser/tests/test_parser.cpp +474 -474
- data/ext/generator/parser/tests/test_pool.cpp +109 -109
- data/ext/generator/parser/tests/test_pool.h +35 -35
- data/ext/generator/parser/tests/testconfig.h.cmake +4 -4
- data/ext/generator/parser/tokens.cpp +367 -367
- data/ext/generator/parser/tokens.h +148 -148
- data/ext/generator/parser/type_compiler.cpp +135 -135
- data/ext/generator/parser/type_compiler.h +68 -68
- data/ext/generator/parser/visitor.cpp +115 -115
- data/ext/generator/parser/visitor.h +138 -138
- data/ext/generator/smoke.h +557 -557
- data/ext/generator/smokegen_string.h +43 -43
- data/ext/generator/type.cpp +204 -204
- data/ext/generator/type.h +497 -497
- data/ext/generator/type_compiler.cpp +277 -277
- data/ext/generator/type_compiler.h +80 -80
- data/ext/ruby/CMakeLists.txt +64 -64
- data/ext/ruby/qtdeclarative/CMakeLists.txt +17 -17
- data/ext/ruby/qtdeclarative/qtdeclarative.cpp +67 -67
- data/ext/ruby/qtdeclarative/qtdeclarative.rb +17 -17
- data/ext/ruby/qtdeclarative/qtdeclarativehandlers.cpp +36 -36
- data/ext/ruby/qtruby/AUTHORS +54 -54
- data/ext/ruby/qtruby/COPYING +355 -355
- data/ext/ruby/qtruby/COPYING.LIB +510 -510
- data/ext/ruby/qtruby/ChangeLog +3732 -3732
- data/ext/ruby/qtruby/INSTALL +79 -79
- data/ext/ruby/qtruby/README +264 -264
- data/ext/ruby/qtruby/TODO +8 -8
- data/ext/ruby/qtruby/bin/rbqtapi +152 -152
- data/ext/ruby/qtruby/rails_support/CMakeLists.txt +1 -1
- data/ext/ruby/qtruby/rails_support/active_item_model.rb +234 -234
- data/ext/ruby/qtruby/rails_support/active_table_model.rb +122 -122
- data/ext/ruby/qtruby/src/marshall_basetypes.h +208 -208
- data/ext/ruby/qtruby/src/marshall_complex.h +175 -175
- data/ext/ruby/qtruby/src/marshall_macros.h +647 -647
- data/ext/ruby/qtruby/src/marshall_types.cpp +815 -815
- data/ext/ruby/qtruby/src/marshall_types.h +240 -240
- data/ext/ruby/qtruby/src/qtruby.cpp +1 -1
- data/ext/ruby/qtruby/test/opoverloading.rb +46 -46
- data/ext/ruby/qtruby/test/unittests.rb +151 -151
- data/ext/ruby/qtruby/tools/rbrcc/main.cpp +173 -173
- data/ext/ruby/qtruby/tools/rbrcc/rbrcc.pro +14 -14
- data/ext/ruby/qtruby/tools/rbrcc/rcc.cpp +648 -648
- data/ext/ruby/qtruby/tools/rbrcc/rcc.h +165 -165
- data/ext/ruby/qtruby/tools/rbuic/LICENSE.GPL +280 -280
- data/ext/ruby/qtruby/tools/rbuic/TODO +4 -4
- data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.cpp +106 -106
- data/ext/ruby/qtruby/tools/rbuic/customwidgetsinfo.h +95 -95
- data/ext/ruby/qtruby/tools/rbuic/databaseinfo.cpp +102 -102
- data/ext/ruby/qtruby/tools/rbuic/databaseinfo.h +85 -85
- data/ext/ruby/qtruby/tools/rbuic/driver.cpp +384 -384
- data/ext/ruby/qtruby/tools/rbuic/driver.h +141 -141
- data/ext/ruby/qtruby/tools/rbuic/rbuic.pri +23 -23
- data/ext/ruby/qtruby/tools/rbuic/rbuic4.pro +43 -43
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.cpp +150 -150
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbextractimages.h +83 -83
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.cpp +217 -217
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwritedeclaration.h +85 -85
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.cpp +185 -185
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondata.h +86 -86
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.cpp +88 -88
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteicondeclaration.h +83 -83
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.cpp +126 -126
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteiconinitialization.h +87 -87
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.cpp +2478 -2478
- data/ext/ruby/qtruby/tools/rbuic/ruby/rbwriteinitialization.h +314 -314
- data/ext/ruby/qtruby/tools/rbuic/ruby/ruby.pri +18 -18
- data/ext/ruby/qtruby/tools/rbuic/treewalker.cpp +318 -318
- data/ext/ruby/qtruby/tools/rbuic/treewalker.h +139 -139
- data/ext/ruby/qtruby/tools/rbuic/ui4.cpp +7623 -7623
- data/ext/ruby/qtruby/tools/rbuic/ui4.h +3180 -3180
- data/ext/ruby/qtruby/tools/rbuic/utils.h +125 -125
- data/ext/ruby/qtruby/tools/rbuic/validator.cpp +100 -100
- data/ext/ruby/qtruby/tools/rbuic/validator.h +80 -80
- data/ext/ruby/qtscript/CMakeLists.txt +19 -19
- data/ext/ruby/qtscript/qtscript.cpp +83 -83
- data/ext/ruby/qtscript/qtscript.rb +40 -40
- data/ext/ruby/qtscript/qtscripthandlers.cpp +37 -37
- data/ext/ruby/qtscript/smokedata.cpp +1403 -1403
- data/ext/ruby/qttest/CMakeLists.txt +18 -18
- data/ext/ruby/qttest/ChangeLog +9 -9
- data/ext/ruby/qttest/examples/myfirsttest.rb +30 -30
- data/ext/ruby/qttest/qttest.cpp +83 -83
- data/ext/ruby/qttest/qttest.rb +166 -166
- data/ext/ruby/qttest/qttesthandlers.cpp +37 -37
- data/ext/ruby/qtuitools/CMakeLists.txt +16 -16
- data/ext/ruby/qtuitools/qtuitools.cpp +83 -83
- data/ext/ruby/qtuitools/qtuitools.rb +17 -17
- data/ext/ruby/qtuitools/qtuitoolshandlers.cpp +32 -32
- data/ext/ruby/qtwebkit/CMakeLists.txt +17 -17
- data/ext/ruby/qtwebkit/qtwebkit.cpp +67 -67
- data/ext/ruby/qtwebkit/qtwebkit.rb +17 -17
- data/ext/ruby/qtwebkit/qtwebkithandlers.cpp +40 -40
- data/ext/smoke/deptool/CMakeLists.txt +7 -7
- data/ext/smoke/deptool/main.cpp +128 -128
- data/ext/smoke/qtcore/CMakeLists.txt +88 -88
- data/ext/smoke/qtcore/QtGuess.txt +180 -180
- data/ext/smoke/qtcore/config.xml.cmake +10 -10
- data/ext/smoke/qtcore/qt-config.xml.cmake +21 -21
- data/ext/smoke/qtcore/qtcore_includes.h +1 -1
- data/ext/smoke/qtcore/smokeconfig.xml +193 -193
- data/ext/smoke/qtcore/tests/CMakeLists.txt +13 -13
- data/ext/smoke/qtcore/tests/test.cpp +846 -846
- data/ext/smoke/qtcore_smoke.h +16 -16
- data/ext/smoke/qtdbus/CMakeLists.txt +38 -38
- data/ext/smoke/qtdbus/config.xml.cmake +11 -11
- data/ext/smoke/qtdbus/qtdbus_includes.h +2 -2
- data/ext/smoke/qtdbus/smokeconfig.xml +65 -65
- data/ext/smoke/qtdbus_smoke.h +16 -16
- data/ext/smoke/qtdeclarative/CMakeLists.txt +45 -45
- data/ext/smoke/qtdeclarative/config.xml.cmake +12 -12
- data/ext/smoke/qtdeclarative/qtdeclarative_includes.h +3 -3
- data/ext/smoke/qtdeclarative/smokeconfig.xml +59 -59
- data/ext/smoke/qtdeclarative_smoke.h +16 -16
- data/ext/smoke/qtgui/CMakeLists.txt +76 -76
- data/ext/smoke/qtgui/config.xml.cmake +11 -11
- data/ext/smoke/qtgui/qtgui_includes.h +7 -7
- data/ext/smoke/qtgui/smokeconfig.xml +500 -500
- data/ext/smoke/qtgui_smoke.h +16 -16
- data/ext/smoke/qthelp/CMakeLists.txt +45 -45
- data/ext/smoke/qthelp/config.xml.cmake +13 -13
- data/ext/smoke/qthelp/qthelp_includes.h +3 -3
- data/ext/smoke/qthelp/smokeconfig.xml +54 -54
- data/ext/smoke/qthelp_smoke.h +16 -16
- data/ext/smoke/qtmultimedia/CMakeLists.txt +42 -42
- data/ext/smoke/qtmultimedia/config.xml.cmake +12 -12
- data/ext/smoke/qtmultimedia/qtmultimedia_includes.h +3 -3
- data/ext/smoke/qtmultimedia/smokeconfig.xml +51 -51
- data/ext/smoke/qtmultimedia_smoke.h +16 -16
- data/ext/smoke/qtnetwork/CMakeLists.txt +38 -38
- data/ext/smoke/qtnetwork/config.xml.cmake +11 -11
- data/ext/smoke/qtnetwork/qtnetwork_includes.h +2 -2
- data/ext/smoke/qtnetwork/smokeconfig.xml +81 -81
- data/ext/smoke/qtnetwork_smoke.h +16 -16
- data/ext/smoke/qtopengl/CMakeLists.txt +43 -43
- data/ext/smoke/qtopengl/config.xml.cmake +13 -13
- data/ext/smoke/qtopengl/qtopengl_includes.h +3 -3
- data/ext/smoke/qtopengl/smokeconfig.xml +58 -58
- data/ext/smoke/qtopengl_smoke.h +16 -16
- data/ext/smoke/qtscript/CMakeLists.txt +31 -31
- data/ext/smoke/qtscript/config.xml.cmake +11 -11
- data/ext/smoke/qtscript/qtscript_includes.h +14 -14
- data/ext/smoke/qtscript/smokeconfig.xml +39 -39
- data/ext/smoke/qtscript_smoke.h +16 -16
- data/ext/smoke/qtsql/CMakeLists.txt +45 -45
- data/ext/smoke/qtsql/config.xml.cmake +11 -11
- data/ext/smoke/qtsql/qtsql_includes.h +3 -3
- data/ext/smoke/qtsql/smokeconfig.xml +60 -60
- data/ext/smoke/qtsql_smoke.h +16 -16
- data/ext/smoke/qtsvg/CMakeLists.txt +43 -43
- data/ext/smoke/qtsvg/config.xml.cmake +12 -12
- data/ext/smoke/qtsvg/qtsvg_includes.h +3 -3
- data/ext/smoke/qtsvg/smokeconfig.xml +46 -46
- data/ext/smoke/qtsvg_smoke.h +16 -16
- data/ext/smoke/qttest/CMakeLists.txt +35 -35
- data/ext/smoke/qttest/config.xml.cmake +12 -12
- data/ext/smoke/qttest/qttest_includes.h +14 -14
- data/ext/smoke/qttest/smokeconfig.xml +36 -36
- data/ext/smoke/qttest_smoke.h +16 -16
- data/ext/smoke/qtuitools/CMakeLists.txt +30 -30
- data/ext/smoke/qtuitools/config.xml.cmake +12 -12
- data/ext/smoke/qtuitools/qtuitools_includes.h +1 -1
- data/ext/smoke/qtuitools/smokeconfig.xml +20 -20
- data/ext/smoke/qtuitools_smoke.h +16 -16
- data/ext/smoke/qtwebkit/CMakeLists.txt +36 -36
- data/ext/smoke/qtwebkit/config.xml.cmake +11 -11
- data/ext/smoke/qtwebkit/qtwebkit_includes.h +1 -1
- data/ext/smoke/qtwebkit/smokeconfig.xml +48 -48
- data/ext/smoke/qtwebkit_smoke.h +16 -16
- data/ext/smoke/qtxml/CMakeLists.txt +41 -41
- data/ext/smoke/qtxml/config.xml.cmake +11 -11
- data/ext/smoke/qtxml/qtxml_includes.h +2 -2
- data/ext/smoke/qtxml/smokeconfig.xml +70 -70
- data/ext/smoke/qtxml_smoke.h +16 -16
- data/ext/smoke/qtxmlpatterns/CMakeLists.txt +42 -42
- data/ext/smoke/qtxmlpatterns/config.xml.cmake +12 -12
- data/ext/smoke/qtxmlpatterns/qtxmlpatterns_includes.h +3 -3
- data/ext/smoke/qtxmlpatterns/smokeconfig.xml +80 -80
- data/ext/smoke/qtxmlpatterns_smoke.h +16 -16
- data/ext/smoke/smokeapi/CMakeLists.txt +9 -9
- data/ext/smoke/smokeapi/main.cpp +309 -309
- data/ext/smoke/smokebase/CMakeLists.txt +11 -11
- data/ext/smoke/smokebase/smokebase.cpp +6 -6
- data/ext/smoke/solid_smoke.h +16 -16
- data/lib/Qt.rb +1 -1
- data/lib/Qt4.rb +119 -111
- data/lib/qtbindings_version.rb +2 -2
- data/lib/qtdeclarative/qtdeclarative.rb +17 -17
- data/lib/qtscript/qtscript.rb +40 -40
- data/lib/qttest/qttest.rb +166 -166
- data/lib/qtuitools/qtuitools.rb +17 -17
- data/lib/qtwebkit/qtwebkit.rb +17 -17
- metadata +6 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
set(CMAKE_CSharp_COMPILER "@CMAKE_CSharp_COMPILER@")
|
|
2
|
-
set(CMAKE_CSharp_COMPILER_LOADED @CMAKE_CSharp_COMPILER_LOADED@)
|
|
3
|
-
set(GAC_DIR @GAC_DIR@)
|
|
4
|
-
|
|
5
|
-
set(_csc_default_lib_path @_csc_default_lib_path@ CACHE INTERNAL "")
|
|
6
|
-
|
|
7
|
-
set(CMAKE_CSharp_COMPILER_ENV_VAR "CSC")
|
|
1
|
+
set(CMAKE_CSharp_COMPILER "@CMAKE_CSharp_COMPILER@")
|
|
2
|
+
set(CMAKE_CSharp_COMPILER_LOADED @CMAKE_CSharp_COMPILER_LOADED@)
|
|
3
|
+
set(GAC_DIR @GAC_DIR@)
|
|
4
|
+
|
|
5
|
+
set(_csc_default_lib_path @_csc_default_lib_path@ CACHE INTERNAL "")
|
|
6
|
+
|
|
7
|
+
set(CMAKE_CSharp_COMPILER_ENV_VAR "CSC")
|
|
@@ -1,366 +1,366 @@
|
|
|
1
|
-
# copyright (c) 2007, 2009 Arno Rehn arno@arnorehn.de
|
|
2
|
-
# copyright (c) 2008 Helio castro helio@kde.org
|
|
3
|
-
#
|
|
4
|
-
# Redistribution and use is allowed according to the terms of the GPL license.
|
|
5
|
-
|
|
6
|
-
# This file adds support for the C# language to cmake.
|
|
7
|
-
#
|
|
8
|
-
# It adds the following functions:
|
|
9
|
-
#
|
|
10
|
-
# csharp_add_executable (<name> <source files> [UNSAFE] [WINEXE] [REFERENCES <references>]
|
|
11
|
-
# [COMPILE_FLAGS <flags to be passed to the compiler>]
|
|
12
|
-
# [COMPILE_DEFINITIONS <additional definitions>] )
|
|
13
|
-
#
|
|
14
|
-
# csharp_add_library (<name> <source files> [UNSAFE] [REFERENCES <references>]
|
|
15
|
-
# [COMPILE_FLAGS <flags to be passed to the compiler>]
|
|
16
|
-
# [COMPILE_DEFINITIONS <additional definitions>] )
|
|
17
|
-
#
|
|
18
|
-
# install_assembly (<target name> [NO_GAC] DESTINATION <assembly destination directory>
|
|
19
|
-
# [PACKAGE <package name>] )
|
|
20
|
-
# The assembly destination directory is only used if we compile with Visual C# and thus can't use gacutil.
|
|
21
|
-
# If a package is specified and a file called <target>.pc.cmake exists in the current source directory,
|
|
22
|
-
# this function will configure the template file. All occurences of @assembly@ will be replaced with
|
|
23
|
-
# the path to the assembly. The resulting <target>.pc file will be installed to
|
|
24
|
-
# <CMAKE_INSTALL_PREFIX>/lib/pkgconfig/ . If you want to have a different basename for the template file,
|
|
25
|
-
# set the 'pkg-config_template_basename' property of the target with set_property.
|
|
26
|
-
#
|
|
27
|
-
# Example:
|
|
28
|
-
# ------------------------------
|
|
29
|
-
# cmake code:
|
|
30
|
-
# ------------------------------
|
|
31
|
-
# csharp_add_library(foo foo.cs)
|
|
32
|
-
# install_assembly(foo DESTINATION lib)
|
|
33
|
-
#
|
|
34
|
-
# ------------------------------
|
|
35
|
-
# contents of foo.pc.cmake file:
|
|
36
|
-
# ------------------------------
|
|
37
|
-
# Name: Foo
|
|
38
|
-
# Description: Foo library
|
|
39
|
-
# Version: 1.0
|
|
40
|
-
# Libs: -r:@assembly@
|
|
41
|
-
|
|
42
|
-
# ----- support macros -----
|
|
43
|
-
macro(GET_LIBRARY_OUTPUT_DIR var)
|
|
44
|
-
if (NOT LIBRARY_OUTPUT_PATH)
|
|
45
|
-
set(${var} ${CMAKE_CURRENT_BINARY_DIR})
|
|
46
|
-
else (NOT LIBRARY_OUTPUT_PATH)
|
|
47
|
-
set(${var} ${LIBRARY_OUTPUT_PATH})
|
|
48
|
-
endif (NOT LIBRARY_OUTPUT_PATH)
|
|
49
|
-
endmacro(GET_LIBRARY_OUTPUT_DIR)
|
|
50
|
-
|
|
51
|
-
macro(GET_EXECUTABLE_OUTPUT_DIR var)
|
|
52
|
-
if (NOT EXECUTABLE_OUTPUT_PATH)
|
|
53
|
-
set(${var} ${CMAKE_CURRENT_BINARY_DIR})
|
|
54
|
-
else (NOT EXECUTABLE_OUTPUT_PATH)
|
|
55
|
-
set(${var} ${EXECUTABLE_OUTPUT_PATH})
|
|
56
|
-
endif (NOT EXECUTABLE_OUTPUT_PATH)
|
|
57
|
-
endmacro(GET_EXECUTABLE_OUTPUT_DIR)
|
|
58
|
-
|
|
59
|
-
# This does just not always work... why?!
|
|
60
|
-
# macro(MAKE_PROPER_FILE_LIST var)
|
|
61
|
-
# foreach(file ${ARGN})
|
|
62
|
-
# if (IS_ABSOLUTE "${file}")
|
|
63
|
-
# file(GLOB globbed "${file}")
|
|
64
|
-
# else (IS_ABSOLUTE "${file}")
|
|
65
|
-
# file(GLOB globbed "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
|
|
66
|
-
# endif (IS_ABSOLUTE "${file}")
|
|
67
|
-
#
|
|
68
|
-
# foreach (glob ${globbed})
|
|
69
|
-
# file(TO_NATIVE_PATH "${glob}" native)
|
|
70
|
-
# list(APPEND proper_file_list "${native}")
|
|
71
|
-
# endforeach (glob ${globbed})
|
|
72
|
-
# endforeach(file ${ARGN})
|
|
73
|
-
# endmacro(MAKE_PROPER_FILE_LIST)
|
|
74
|
-
|
|
75
|
-
# ----- actual functions -----
|
|
76
|
-
|
|
77
|
-
# ----- add an executable -----
|
|
78
|
-
function(csharp_add_executable target)
|
|
79
|
-
set(current "s")
|
|
80
|
-
set(dotnet_target "exe")
|
|
81
|
-
|
|
82
|
-
foreach (arg ${ARGN})
|
|
83
|
-
file(TO_NATIVE_PATH ${arg} native_path)
|
|
84
|
-
|
|
85
|
-
if (arg STREQUAL "UNSAFE")
|
|
86
|
-
set (unsafe "/unsafe")
|
|
87
|
-
elseif (arg STREQUAL "WINEXE")
|
|
88
|
-
set (dotnet_target "winexe")
|
|
89
|
-
elseif (arg STREQUAL "REFERENCES")
|
|
90
|
-
set (current "r")
|
|
91
|
-
elseif (arg STREQUAL "COMPILE_FLAGS")
|
|
92
|
-
set (current "flags")
|
|
93
|
-
elseif (arg STREQUAL "COMPILE_DEFINITIONS")
|
|
94
|
-
set (current "defs")
|
|
95
|
-
else (arg STREQUAL "UNSAFE")
|
|
96
|
-
if (current STREQUAL "s")
|
|
97
|
-
# source file
|
|
98
|
-
list(APPEND sources ${native_path})
|
|
99
|
-
elseif (current STREQUAL "r")
|
|
100
|
-
# reference
|
|
101
|
-
if (TARGET ${arg})
|
|
102
|
-
# this is an existing target - get the target assembly
|
|
103
|
-
get_property(prop TARGET ${arg} PROPERTY _assembly)
|
|
104
|
-
list(APPEND references "/r:${prop}")
|
|
105
|
-
list(APPEND deps ${arg})
|
|
106
|
-
else (TARGET ${arg})
|
|
107
|
-
# something different (e.g. assembly name in the gac)
|
|
108
|
-
list(APPEND references "/r:${native_path}")
|
|
109
|
-
endif (TARGET ${arg})
|
|
110
|
-
elseif (current STREQUAL "flags")
|
|
111
|
-
list(APPEND _csc_opts "${arg}")
|
|
112
|
-
elseif (current STREQUAL "defs")
|
|
113
|
-
list(APPEND _csc_opts "/define:${arg}")
|
|
114
|
-
endif (current STREQUAL "s")
|
|
115
|
-
endif (arg STREQUAL "UNSAFE")
|
|
116
|
-
endforeach (arg ${ARGN})
|
|
117
|
-
|
|
118
|
-
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
119
|
-
list(APPEND _csc_opts "/define:DEBUG")
|
|
120
|
-
list(APPEND _csc_opts "/debug")
|
|
121
|
-
endif (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
122
|
-
|
|
123
|
-
get_executable_output_dir(outdir)
|
|
124
|
-
if (NOT IS_ABSOLUTE "${outdir}")
|
|
125
|
-
message(FATAL_ERROR "Directory \"${outdir}\" is not an absolute path!")
|
|
126
|
-
endif (NOT IS_ABSOLUTE "${outdir}")
|
|
127
|
-
|
|
128
|
-
file(RELATIVE_PATH relative_path "${CMAKE_BINARY_DIR}" "${outdir}/${target}.exe")
|
|
129
|
-
file(TO_NATIVE_PATH "${outdir}/${target}" native_target)
|
|
130
|
-
|
|
131
|
-
# inlined - this doesn't work as a macro :(
|
|
132
|
-
foreach(file ${sources})
|
|
133
|
-
file(TO_CMAKE_PATH "${file}" cmake_file)
|
|
134
|
-
|
|
135
|
-
if (IS_ABSOLUTE "${cmake_file}")
|
|
136
|
-
file(GLOB globbed "${cmake_file}")
|
|
137
|
-
else (IS_ABSOLUTE "${cmake_file}")
|
|
138
|
-
file(GLOB globbed "${CMAKE_CURRENT_SOURCE_DIR}/${cmake_file}")
|
|
139
|
-
endif (IS_ABSOLUTE "${cmake_file}")
|
|
140
|
-
|
|
141
|
-
foreach (glob ${globbed})
|
|
142
|
-
file(TO_CMAKE_PATH "${glob}" cmake_path)
|
|
143
|
-
list(APPEND cmake_file_list "${cmake_path}")
|
|
144
|
-
endforeach (glob ${globbed})
|
|
145
|
-
if (NOT globbed)
|
|
146
|
-
list(APPEND cmake_file_list "${cmake_file}")
|
|
147
|
-
endif (NOT globbed)
|
|
148
|
-
list(APPEND compiler_file_list ${file})
|
|
149
|
-
endforeach(file ${sources})
|
|
150
|
-
|
|
151
|
-
get_directory_property(compile_definitions COMPILE_DEFINITIONS)
|
|
152
|
-
foreach (def ${compile_definitions})
|
|
153
|
-
# macros with values aren't supported by C#
|
|
154
|
-
if (NOT def MATCHES ".*=.*")
|
|
155
|
-
list(APPEND _csc_opts "/define:${def}")
|
|
156
|
-
endif (NOT def MATCHES ".*=.*")
|
|
157
|
-
endforeach (def ${compile_definitions})
|
|
158
|
-
|
|
159
|
-
get_directory_property(link_dirs LINK_DIRECTORIES)
|
|
160
|
-
foreach (dir ${link_dirs})
|
|
161
|
-
list(APPEND _csc_opts "/lib:${dir}")
|
|
162
|
-
endforeach (dir ${link_dirs})
|
|
163
|
-
|
|
164
|
-
add_custom_command(OUTPUT "${outdir}/${target}.stubexe"
|
|
165
|
-
COMMAND "${CMAKE_COMMAND}" -E make_directory "${outdir}" # create the output dir
|
|
166
|
-
COMMAND "${CMAKE_CSharp_COMPILER}" /nologo /target:${dotnet_target} "/out:${native_target}.exe" # build the executable
|
|
167
|
-
${_csc_opts} ${unsafe} ${references} ${compiler_file_list}
|
|
168
|
-
COMMAND "${CMAKE_COMMAND}" -E touch "${outdir}/${target}.stubexe" # create the stub so that DEPENDS will work
|
|
169
|
-
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" # working directory is the source directory, so we don't have to care about relative paths
|
|
170
|
-
DEPENDS ${cmake_file_list}
|
|
171
|
-
COMMENT "Building ${relative_path}" VERBATIM) # nice comment
|
|
172
|
-
add_custom_target(${target} ALL DEPENDS "${outdir}/${target}.stubexe" SOURCES ${cmake_file_list}) # create the actual target
|
|
173
|
-
set_property(TARGET ${target} PROPERTY _assembly "${native_target}.exe")
|
|
174
|
-
set_property(TARGET ${target} PROPERTY _assembly_type "exe")
|
|
175
|
-
if (deps)
|
|
176
|
-
add_dependencies(${target} ${deps})
|
|
177
|
-
endif(deps)
|
|
178
|
-
endfunction(csharp_add_executable)
|
|
179
|
-
|
|
180
|
-
# ----- add a library -----
|
|
181
|
-
function(csharp_add_library target)
|
|
182
|
-
set(current "s")
|
|
183
|
-
|
|
184
|
-
foreach (arg ${ARGN})
|
|
185
|
-
file(TO_NATIVE_PATH ${arg} native_path)
|
|
186
|
-
|
|
187
|
-
if (arg STREQUAL "UNSAFE")
|
|
188
|
-
set (unsafe "/unsafe")
|
|
189
|
-
elseif (arg STREQUAL "REFERENCES")
|
|
190
|
-
set (current "r")
|
|
191
|
-
elseif (arg STREQUAL "COMPILE_FLAGS")
|
|
192
|
-
set (current "flags")
|
|
193
|
-
elseif (arg STREQUAL "COMPILE_DEFINITIONS")
|
|
194
|
-
set (current "defs")
|
|
195
|
-
else (arg STREQUAL "UNSAFE")
|
|
196
|
-
if (current STREQUAL "s")
|
|
197
|
-
# source file
|
|
198
|
-
list(APPEND sources ${native_path})
|
|
199
|
-
elseif (current STREQUAL "r")
|
|
200
|
-
# reference
|
|
201
|
-
if (TARGET ${arg})
|
|
202
|
-
# this is an existing target - get the target assembly
|
|
203
|
-
get_property(prop TARGET ${arg} PROPERTY _assembly)
|
|
204
|
-
list(APPEND references "/r:${prop}")
|
|
205
|
-
list(APPEND deps ${arg})
|
|
206
|
-
else (TARGET ${arg})
|
|
207
|
-
# something different (e.g. assembly name in the gac)
|
|
208
|
-
list(APPEND references "/r:${native_path}")
|
|
209
|
-
endif (TARGET ${arg})
|
|
210
|
-
elseif (current STREQUAL "flags")
|
|
211
|
-
list(APPEND _csc_opts "${arg}")
|
|
212
|
-
elseif (current STREQUAL "defs")
|
|
213
|
-
list(APPEND _csc_opts "/define:${arg}")
|
|
214
|
-
endif (current STREQUAL "s")
|
|
215
|
-
endif (arg STREQUAL "UNSAFE")
|
|
216
|
-
endforeach (arg ${ARGN})
|
|
217
|
-
|
|
218
|
-
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
219
|
-
list(APPEND _csc_opts "/define:DEBUG")
|
|
220
|
-
list(APPEND _csc_opts "/debug")
|
|
221
|
-
endif (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
222
|
-
|
|
223
|
-
get_library_output_dir(outdir)
|
|
224
|
-
if (NOT IS_ABSOLUTE "${outdir}")
|
|
225
|
-
message(FATAL_ERROR "Directory \"${outdir}\" is not an absolute path!")
|
|
226
|
-
endif (NOT IS_ABSOLUTE "${outdir}")
|
|
227
|
-
|
|
228
|
-
file(RELATIVE_PATH relative_path "${CMAKE_BINARY_DIR}" "${outdir}/${target}.dll")
|
|
229
|
-
file(TO_NATIVE_PATH "${outdir}/${target}" native_target)
|
|
230
|
-
|
|
231
|
-
# inlined - this doesn't work as a macro :(
|
|
232
|
-
foreach(file ${sources})
|
|
233
|
-
file(TO_CMAKE_PATH "${file}" cmake_file)
|
|
234
|
-
|
|
235
|
-
if (IS_ABSOLUTE "${cmake_file}")
|
|
236
|
-
file(GLOB globbed "${cmake_file}")
|
|
237
|
-
else (IS_ABSOLUTE "${cmake_file}")
|
|
238
|
-
file(GLOB globbed "${CMAKE_CURRENT_SOURCE_DIR}/${cmake_file}")
|
|
239
|
-
endif (IS_ABSOLUTE "${cmake_file}")
|
|
240
|
-
|
|
241
|
-
foreach (glob ${globbed})
|
|
242
|
-
file(TO_CMAKE_PATH "${glob}" cmake_path)
|
|
243
|
-
list(APPEND cmake_file_list "${cmake_path}")
|
|
244
|
-
endforeach (glob ${globbed})
|
|
245
|
-
if (NOT globbed)
|
|
246
|
-
list(APPEND cmake_file_list "${cmake_file}")
|
|
247
|
-
endif (NOT globbed)
|
|
248
|
-
list(APPEND compiler_file_list ${file})
|
|
249
|
-
endforeach(file ${sources})
|
|
250
|
-
|
|
251
|
-
# message("CMake File List for target ${target}: ${cmake_file_list}")
|
|
252
|
-
|
|
253
|
-
get_directory_property(compile_definitions COMPILE_DEFINITIONS)
|
|
254
|
-
foreach (def ${compile_definitions})
|
|
255
|
-
# macros with values aren't supported by C#
|
|
256
|
-
if (NOT def MATCHES ".*=.*")
|
|
257
|
-
list(APPEND _csc_opts "/define:${def}")
|
|
258
|
-
endif (NOT def MATCHES ".*=.*")
|
|
259
|
-
endforeach (def ${compile_definitions})
|
|
260
|
-
|
|
261
|
-
get_directory_property(link_dirs LINK_DIRECTORIES)
|
|
262
|
-
foreach (dir ${link_dirs})
|
|
263
|
-
list(APPEND _csc_opts "/lib:${dir}")
|
|
264
|
-
endforeach (dir ${link_dirs})
|
|
265
|
-
|
|
266
|
-
add_custom_command(OUTPUT "${outdir}/${target}.dll"
|
|
267
|
-
COMMAND "${CMAKE_COMMAND}" -E make_directory "${outdir}" # create the output dir
|
|
268
|
-
COMMAND "${CMAKE_CSharp_COMPILER}" /nologo /target:library "/out:${native_target}.dll" # build the library
|
|
269
|
-
${_csc_opts} ${unsafe} ${references} ${compiler_file_list}
|
|
270
|
-
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" # working directory is the source directory, so we don't have to care about relative paths
|
|
271
|
-
DEPENDS ${cmake_file_list}
|
|
272
|
-
COMMENT "Building ${relative_path}" VERBATIM) # nice comment
|
|
273
|
-
add_custom_target(${target} ALL DEPENDS "${outdir}/${target}.dll" SOURCES ${cmake_file_list}) # create the actual target
|
|
274
|
-
set_property(TARGET ${target} PROPERTY _assembly "${native_target}.dll")
|
|
275
|
-
set_property(TARGET ${target} PROPERTY _assembly_type "dll")
|
|
276
|
-
if (deps)
|
|
277
|
-
add_dependencies(${target} ${deps})
|
|
278
|
-
endif(deps)
|
|
279
|
-
endfunction(csharp_add_library)
|
|
280
|
-
|
|
281
|
-
# ----- install an assembly -----
|
|
282
|
-
function(install_assembly)
|
|
283
|
-
set (current "t")
|
|
284
|
-
|
|
285
|
-
foreach (arg ${ARGN})
|
|
286
|
-
# flag handling
|
|
287
|
-
if (arg STREQUAL "NO_GAC")
|
|
288
|
-
set(no_gac TRUE)
|
|
289
|
-
# option handling
|
|
290
|
-
elseif (arg STREQUAL DESTINATION)
|
|
291
|
-
set (current "d")
|
|
292
|
-
elseif (arg STREQUAL "PACKAGE")
|
|
293
|
-
set (current "p")
|
|
294
|
-
# value handling
|
|
295
|
-
elseif (current STREQUAL "t")
|
|
296
|
-
set (target ${arg})
|
|
297
|
-
elseif (current STREQUAL "d")
|
|
298
|
-
if (IS_ABSOLUTE "${arg}")
|
|
299
|
-
set (destination_dir "${arg}")
|
|
300
|
-
else (IS_ABSOLUTE "${arg}")
|
|
301
|
-
set (destination_dir "${CMAKE_INSTALL_PREFIX}/${arg}")
|
|
302
|
-
endif (IS_ABSOLUTE "${arg}")
|
|
303
|
-
elseif (current STREQUAL "p")
|
|
304
|
-
set (package ${arg})
|
|
305
|
-
endif (arg STREQUAL "NO_GAC")
|
|
306
|
-
endforeach (arg)
|
|
307
|
-
|
|
308
|
-
if (NOT destination_dir)
|
|
309
|
-
message(FATAL_ERROR "The destination directory is mandatory, even if the assembly is installed into the GAC.")
|
|
310
|
-
elseif (NOT target)
|
|
311
|
-
message(FATAL_ERROR "No target given.")
|
|
312
|
-
endif (NOT destination_dir)
|
|
313
|
-
|
|
314
|
-
# retrieve the absolute path of the generated assembly
|
|
315
|
-
get_property(filename TARGET ${target} PROPERTY _assembly)
|
|
316
|
-
get_property(type TARGET ${target} PROPERTY _assembly_type)
|
|
317
|
-
get_property(pc_file TARGET ${target} PROPERTY pkg-config_template_basename)
|
|
318
|
-
|
|
319
|
-
if (NOT pc_file)
|
|
320
|
-
set (pc_file ${target})
|
|
321
|
-
endif (NOT pc_file)
|
|
322
|
-
|
|
323
|
-
# default assembly location (for pkg-config)
|
|
324
|
-
set(assembly "${GAC_DIR}/${package}/${target}.dll")
|
|
325
|
-
|
|
326
|
-
if (NOT filename)
|
|
327
|
-
message(FATAL_ERROR "Couldn't retrieve the assembly filename for target ${target}! Are you sure the target is a .NET library assembly?")
|
|
328
|
-
endif (NOT filename)
|
|
329
|
-
|
|
330
|
-
if (package)
|
|
331
|
-
set (package_option "-package ${package}")
|
|
332
|
-
endif (package)
|
|
333
|
-
|
|
334
|
-
if (NOT MONO_FOUND OR no_gac OR type STREQUAL "exe")
|
|
335
|
-
install(FILES "${filename}" DESTINATION ${destination_dir})
|
|
336
|
-
if (EXISTS "${filename}.config")
|
|
337
|
-
install(FILES "${filename}.config" DESTINATION ${destination_dir})
|
|
338
|
-
endif (EXISTS "${filename}.config")
|
|
339
|
-
|
|
340
|
-
# don't install anything into the GAC
|
|
341
|
-
set (no_gac TRUE)
|
|
342
|
-
# set new assembly location for pkg-config
|
|
343
|
-
set(assembly "${destination_dir}/${target}.${type}")
|
|
344
|
-
endif (NOT MONO_FOUND OR no_gac OR type STREQUAL "exe")
|
|
345
|
-
|
|
346
|
-
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${pc_file}.pc.cmake")
|
|
347
|
-
configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/${pc_file}.pc.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${pc_file}.pc" @ONLY)
|
|
348
|
-
|
|
349
|
-
if (NOT LIB_INSTALL_DIR)
|
|
350
|
-
set (LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
|
|
351
|
-
endif (NOT LIB_INSTALL_DIR)
|
|
352
|
-
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${pc_file}.pc" DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
|
|
353
|
-
endif (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${pc_file}.pc.cmake")
|
|
354
|
-
|
|
355
|
-
if (no_gac)
|
|
356
|
-
return()
|
|
357
|
-
endif (no_gac)
|
|
358
|
-
|
|
359
|
-
# So we have the mono runtime and we can use gacutil (it has the -root option, which the MS version doesn't have).
|
|
360
|
-
install(CODE "execute_process(COMMAND ${GACUTIL_EXECUTABLE} -i ${filename} ${package_option} -root ${CMAKE_CURRENT_BINARY_DIR}/tmp_gac)")
|
|
361
|
-
file(REMOVE_RECURSE ${CMAKE_CURRENT_BINARY_DIR}/tmp_gac/mono)
|
|
362
|
-
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tmp_gac/mono)
|
|
363
|
-
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tmp_gac/mono/ DESTINATION ${GAC_DIR} )
|
|
364
|
-
endfunction(install_assembly)
|
|
365
|
-
|
|
366
|
-
set(CMAKE_CSharp_INFORMATION_LOADED 1)
|
|
1
|
+
# copyright (c) 2007, 2009 Arno Rehn arno@arnorehn.de
|
|
2
|
+
# copyright (c) 2008 Helio castro helio@kde.org
|
|
3
|
+
#
|
|
4
|
+
# Redistribution and use is allowed according to the terms of the GPL license.
|
|
5
|
+
|
|
6
|
+
# This file adds support for the C# language to cmake.
|
|
7
|
+
#
|
|
8
|
+
# It adds the following functions:
|
|
9
|
+
#
|
|
10
|
+
# csharp_add_executable (<name> <source files> [UNSAFE] [WINEXE] [REFERENCES <references>]
|
|
11
|
+
# [COMPILE_FLAGS <flags to be passed to the compiler>]
|
|
12
|
+
# [COMPILE_DEFINITIONS <additional definitions>] )
|
|
13
|
+
#
|
|
14
|
+
# csharp_add_library (<name> <source files> [UNSAFE] [REFERENCES <references>]
|
|
15
|
+
# [COMPILE_FLAGS <flags to be passed to the compiler>]
|
|
16
|
+
# [COMPILE_DEFINITIONS <additional definitions>] )
|
|
17
|
+
#
|
|
18
|
+
# install_assembly (<target name> [NO_GAC] DESTINATION <assembly destination directory>
|
|
19
|
+
# [PACKAGE <package name>] )
|
|
20
|
+
# The assembly destination directory is only used if we compile with Visual C# and thus can't use gacutil.
|
|
21
|
+
# If a package is specified and a file called <target>.pc.cmake exists in the current source directory,
|
|
22
|
+
# this function will configure the template file. All occurences of @assembly@ will be replaced with
|
|
23
|
+
# the path to the assembly. The resulting <target>.pc file will be installed to
|
|
24
|
+
# <CMAKE_INSTALL_PREFIX>/lib/pkgconfig/ . If you want to have a different basename for the template file,
|
|
25
|
+
# set the 'pkg-config_template_basename' property of the target with set_property.
|
|
26
|
+
#
|
|
27
|
+
# Example:
|
|
28
|
+
# ------------------------------
|
|
29
|
+
# cmake code:
|
|
30
|
+
# ------------------------------
|
|
31
|
+
# csharp_add_library(foo foo.cs)
|
|
32
|
+
# install_assembly(foo DESTINATION lib)
|
|
33
|
+
#
|
|
34
|
+
# ------------------------------
|
|
35
|
+
# contents of foo.pc.cmake file:
|
|
36
|
+
# ------------------------------
|
|
37
|
+
# Name: Foo
|
|
38
|
+
# Description: Foo library
|
|
39
|
+
# Version: 1.0
|
|
40
|
+
# Libs: -r:@assembly@
|
|
41
|
+
|
|
42
|
+
# ----- support macros -----
|
|
43
|
+
macro(GET_LIBRARY_OUTPUT_DIR var)
|
|
44
|
+
if (NOT LIBRARY_OUTPUT_PATH)
|
|
45
|
+
set(${var} ${CMAKE_CURRENT_BINARY_DIR})
|
|
46
|
+
else (NOT LIBRARY_OUTPUT_PATH)
|
|
47
|
+
set(${var} ${LIBRARY_OUTPUT_PATH})
|
|
48
|
+
endif (NOT LIBRARY_OUTPUT_PATH)
|
|
49
|
+
endmacro(GET_LIBRARY_OUTPUT_DIR)
|
|
50
|
+
|
|
51
|
+
macro(GET_EXECUTABLE_OUTPUT_DIR var)
|
|
52
|
+
if (NOT EXECUTABLE_OUTPUT_PATH)
|
|
53
|
+
set(${var} ${CMAKE_CURRENT_BINARY_DIR})
|
|
54
|
+
else (NOT EXECUTABLE_OUTPUT_PATH)
|
|
55
|
+
set(${var} ${EXECUTABLE_OUTPUT_PATH})
|
|
56
|
+
endif (NOT EXECUTABLE_OUTPUT_PATH)
|
|
57
|
+
endmacro(GET_EXECUTABLE_OUTPUT_DIR)
|
|
58
|
+
|
|
59
|
+
# This does just not always work... why?!
|
|
60
|
+
# macro(MAKE_PROPER_FILE_LIST var)
|
|
61
|
+
# foreach(file ${ARGN})
|
|
62
|
+
# if (IS_ABSOLUTE "${file}")
|
|
63
|
+
# file(GLOB globbed "${file}")
|
|
64
|
+
# else (IS_ABSOLUTE "${file}")
|
|
65
|
+
# file(GLOB globbed "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
|
|
66
|
+
# endif (IS_ABSOLUTE "${file}")
|
|
67
|
+
#
|
|
68
|
+
# foreach (glob ${globbed})
|
|
69
|
+
# file(TO_NATIVE_PATH "${glob}" native)
|
|
70
|
+
# list(APPEND proper_file_list "${native}")
|
|
71
|
+
# endforeach (glob ${globbed})
|
|
72
|
+
# endforeach(file ${ARGN})
|
|
73
|
+
# endmacro(MAKE_PROPER_FILE_LIST)
|
|
74
|
+
|
|
75
|
+
# ----- actual functions -----
|
|
76
|
+
|
|
77
|
+
# ----- add an executable -----
|
|
78
|
+
function(csharp_add_executable target)
|
|
79
|
+
set(current "s")
|
|
80
|
+
set(dotnet_target "exe")
|
|
81
|
+
|
|
82
|
+
foreach (arg ${ARGN})
|
|
83
|
+
file(TO_NATIVE_PATH ${arg} native_path)
|
|
84
|
+
|
|
85
|
+
if (arg STREQUAL "UNSAFE")
|
|
86
|
+
set (unsafe "/unsafe")
|
|
87
|
+
elseif (arg STREQUAL "WINEXE")
|
|
88
|
+
set (dotnet_target "winexe")
|
|
89
|
+
elseif (arg STREQUAL "REFERENCES")
|
|
90
|
+
set (current "r")
|
|
91
|
+
elseif (arg STREQUAL "COMPILE_FLAGS")
|
|
92
|
+
set (current "flags")
|
|
93
|
+
elseif (arg STREQUAL "COMPILE_DEFINITIONS")
|
|
94
|
+
set (current "defs")
|
|
95
|
+
else (arg STREQUAL "UNSAFE")
|
|
96
|
+
if (current STREQUAL "s")
|
|
97
|
+
# source file
|
|
98
|
+
list(APPEND sources ${native_path})
|
|
99
|
+
elseif (current STREQUAL "r")
|
|
100
|
+
# reference
|
|
101
|
+
if (TARGET ${arg})
|
|
102
|
+
# this is an existing target - get the target assembly
|
|
103
|
+
get_property(prop TARGET ${arg} PROPERTY _assembly)
|
|
104
|
+
list(APPEND references "/r:${prop}")
|
|
105
|
+
list(APPEND deps ${arg})
|
|
106
|
+
else (TARGET ${arg})
|
|
107
|
+
# something different (e.g. assembly name in the gac)
|
|
108
|
+
list(APPEND references "/r:${native_path}")
|
|
109
|
+
endif (TARGET ${arg})
|
|
110
|
+
elseif (current STREQUAL "flags")
|
|
111
|
+
list(APPEND _csc_opts "${arg}")
|
|
112
|
+
elseif (current STREQUAL "defs")
|
|
113
|
+
list(APPEND _csc_opts "/define:${arg}")
|
|
114
|
+
endif (current STREQUAL "s")
|
|
115
|
+
endif (arg STREQUAL "UNSAFE")
|
|
116
|
+
endforeach (arg ${ARGN})
|
|
117
|
+
|
|
118
|
+
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
119
|
+
list(APPEND _csc_opts "/define:DEBUG")
|
|
120
|
+
list(APPEND _csc_opts "/debug")
|
|
121
|
+
endif (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
122
|
+
|
|
123
|
+
get_executable_output_dir(outdir)
|
|
124
|
+
if (NOT IS_ABSOLUTE "${outdir}")
|
|
125
|
+
message(FATAL_ERROR "Directory \"${outdir}\" is not an absolute path!")
|
|
126
|
+
endif (NOT IS_ABSOLUTE "${outdir}")
|
|
127
|
+
|
|
128
|
+
file(RELATIVE_PATH relative_path "${CMAKE_BINARY_DIR}" "${outdir}/${target}.exe")
|
|
129
|
+
file(TO_NATIVE_PATH "${outdir}/${target}" native_target)
|
|
130
|
+
|
|
131
|
+
# inlined - this doesn't work as a macro :(
|
|
132
|
+
foreach(file ${sources})
|
|
133
|
+
file(TO_CMAKE_PATH "${file}" cmake_file)
|
|
134
|
+
|
|
135
|
+
if (IS_ABSOLUTE "${cmake_file}")
|
|
136
|
+
file(GLOB globbed "${cmake_file}")
|
|
137
|
+
else (IS_ABSOLUTE "${cmake_file}")
|
|
138
|
+
file(GLOB globbed "${CMAKE_CURRENT_SOURCE_DIR}/${cmake_file}")
|
|
139
|
+
endif (IS_ABSOLUTE "${cmake_file}")
|
|
140
|
+
|
|
141
|
+
foreach (glob ${globbed})
|
|
142
|
+
file(TO_CMAKE_PATH "${glob}" cmake_path)
|
|
143
|
+
list(APPEND cmake_file_list "${cmake_path}")
|
|
144
|
+
endforeach (glob ${globbed})
|
|
145
|
+
if (NOT globbed)
|
|
146
|
+
list(APPEND cmake_file_list "${cmake_file}")
|
|
147
|
+
endif (NOT globbed)
|
|
148
|
+
list(APPEND compiler_file_list ${file})
|
|
149
|
+
endforeach(file ${sources})
|
|
150
|
+
|
|
151
|
+
get_directory_property(compile_definitions COMPILE_DEFINITIONS)
|
|
152
|
+
foreach (def ${compile_definitions})
|
|
153
|
+
# macros with values aren't supported by C#
|
|
154
|
+
if (NOT def MATCHES ".*=.*")
|
|
155
|
+
list(APPEND _csc_opts "/define:${def}")
|
|
156
|
+
endif (NOT def MATCHES ".*=.*")
|
|
157
|
+
endforeach (def ${compile_definitions})
|
|
158
|
+
|
|
159
|
+
get_directory_property(link_dirs LINK_DIRECTORIES)
|
|
160
|
+
foreach (dir ${link_dirs})
|
|
161
|
+
list(APPEND _csc_opts "/lib:${dir}")
|
|
162
|
+
endforeach (dir ${link_dirs})
|
|
163
|
+
|
|
164
|
+
add_custom_command(OUTPUT "${outdir}/${target}.stubexe"
|
|
165
|
+
COMMAND "${CMAKE_COMMAND}" -E make_directory "${outdir}" # create the output dir
|
|
166
|
+
COMMAND "${CMAKE_CSharp_COMPILER}" /nologo /target:${dotnet_target} "/out:${native_target}.exe" # build the executable
|
|
167
|
+
${_csc_opts} ${unsafe} ${references} ${compiler_file_list}
|
|
168
|
+
COMMAND "${CMAKE_COMMAND}" -E touch "${outdir}/${target}.stubexe" # create the stub so that DEPENDS will work
|
|
169
|
+
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" # working directory is the source directory, so we don't have to care about relative paths
|
|
170
|
+
DEPENDS ${cmake_file_list}
|
|
171
|
+
COMMENT "Building ${relative_path}" VERBATIM) # nice comment
|
|
172
|
+
add_custom_target(${target} ALL DEPENDS "${outdir}/${target}.stubexe" SOURCES ${cmake_file_list}) # create the actual target
|
|
173
|
+
set_property(TARGET ${target} PROPERTY _assembly "${native_target}.exe")
|
|
174
|
+
set_property(TARGET ${target} PROPERTY _assembly_type "exe")
|
|
175
|
+
if (deps)
|
|
176
|
+
add_dependencies(${target} ${deps})
|
|
177
|
+
endif(deps)
|
|
178
|
+
endfunction(csharp_add_executable)
|
|
179
|
+
|
|
180
|
+
# ----- add a library -----
|
|
181
|
+
function(csharp_add_library target)
|
|
182
|
+
set(current "s")
|
|
183
|
+
|
|
184
|
+
foreach (arg ${ARGN})
|
|
185
|
+
file(TO_NATIVE_PATH ${arg} native_path)
|
|
186
|
+
|
|
187
|
+
if (arg STREQUAL "UNSAFE")
|
|
188
|
+
set (unsafe "/unsafe")
|
|
189
|
+
elseif (arg STREQUAL "REFERENCES")
|
|
190
|
+
set (current "r")
|
|
191
|
+
elseif (arg STREQUAL "COMPILE_FLAGS")
|
|
192
|
+
set (current "flags")
|
|
193
|
+
elseif (arg STREQUAL "COMPILE_DEFINITIONS")
|
|
194
|
+
set (current "defs")
|
|
195
|
+
else (arg STREQUAL "UNSAFE")
|
|
196
|
+
if (current STREQUAL "s")
|
|
197
|
+
# source file
|
|
198
|
+
list(APPEND sources ${native_path})
|
|
199
|
+
elseif (current STREQUAL "r")
|
|
200
|
+
# reference
|
|
201
|
+
if (TARGET ${arg})
|
|
202
|
+
# this is an existing target - get the target assembly
|
|
203
|
+
get_property(prop TARGET ${arg} PROPERTY _assembly)
|
|
204
|
+
list(APPEND references "/r:${prop}")
|
|
205
|
+
list(APPEND deps ${arg})
|
|
206
|
+
else (TARGET ${arg})
|
|
207
|
+
# something different (e.g. assembly name in the gac)
|
|
208
|
+
list(APPEND references "/r:${native_path}")
|
|
209
|
+
endif (TARGET ${arg})
|
|
210
|
+
elseif (current STREQUAL "flags")
|
|
211
|
+
list(APPEND _csc_opts "${arg}")
|
|
212
|
+
elseif (current STREQUAL "defs")
|
|
213
|
+
list(APPEND _csc_opts "/define:${arg}")
|
|
214
|
+
endif (current STREQUAL "s")
|
|
215
|
+
endif (arg STREQUAL "UNSAFE")
|
|
216
|
+
endforeach (arg ${ARGN})
|
|
217
|
+
|
|
218
|
+
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
219
|
+
list(APPEND _csc_opts "/define:DEBUG")
|
|
220
|
+
list(APPEND _csc_opts "/debug")
|
|
221
|
+
endif (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|
222
|
+
|
|
223
|
+
get_library_output_dir(outdir)
|
|
224
|
+
if (NOT IS_ABSOLUTE "${outdir}")
|
|
225
|
+
message(FATAL_ERROR "Directory \"${outdir}\" is not an absolute path!")
|
|
226
|
+
endif (NOT IS_ABSOLUTE "${outdir}")
|
|
227
|
+
|
|
228
|
+
file(RELATIVE_PATH relative_path "${CMAKE_BINARY_DIR}" "${outdir}/${target}.dll")
|
|
229
|
+
file(TO_NATIVE_PATH "${outdir}/${target}" native_target)
|
|
230
|
+
|
|
231
|
+
# inlined - this doesn't work as a macro :(
|
|
232
|
+
foreach(file ${sources})
|
|
233
|
+
file(TO_CMAKE_PATH "${file}" cmake_file)
|
|
234
|
+
|
|
235
|
+
if (IS_ABSOLUTE "${cmake_file}")
|
|
236
|
+
file(GLOB globbed "${cmake_file}")
|
|
237
|
+
else (IS_ABSOLUTE "${cmake_file}")
|
|
238
|
+
file(GLOB globbed "${CMAKE_CURRENT_SOURCE_DIR}/${cmake_file}")
|
|
239
|
+
endif (IS_ABSOLUTE "${cmake_file}")
|
|
240
|
+
|
|
241
|
+
foreach (glob ${globbed})
|
|
242
|
+
file(TO_CMAKE_PATH "${glob}" cmake_path)
|
|
243
|
+
list(APPEND cmake_file_list "${cmake_path}")
|
|
244
|
+
endforeach (glob ${globbed})
|
|
245
|
+
if (NOT globbed)
|
|
246
|
+
list(APPEND cmake_file_list "${cmake_file}")
|
|
247
|
+
endif (NOT globbed)
|
|
248
|
+
list(APPEND compiler_file_list ${file})
|
|
249
|
+
endforeach(file ${sources})
|
|
250
|
+
|
|
251
|
+
# message("CMake File List for target ${target}: ${cmake_file_list}")
|
|
252
|
+
|
|
253
|
+
get_directory_property(compile_definitions COMPILE_DEFINITIONS)
|
|
254
|
+
foreach (def ${compile_definitions})
|
|
255
|
+
# macros with values aren't supported by C#
|
|
256
|
+
if (NOT def MATCHES ".*=.*")
|
|
257
|
+
list(APPEND _csc_opts "/define:${def}")
|
|
258
|
+
endif (NOT def MATCHES ".*=.*")
|
|
259
|
+
endforeach (def ${compile_definitions})
|
|
260
|
+
|
|
261
|
+
get_directory_property(link_dirs LINK_DIRECTORIES)
|
|
262
|
+
foreach (dir ${link_dirs})
|
|
263
|
+
list(APPEND _csc_opts "/lib:${dir}")
|
|
264
|
+
endforeach (dir ${link_dirs})
|
|
265
|
+
|
|
266
|
+
add_custom_command(OUTPUT "${outdir}/${target}.dll"
|
|
267
|
+
COMMAND "${CMAKE_COMMAND}" -E make_directory "${outdir}" # create the output dir
|
|
268
|
+
COMMAND "${CMAKE_CSharp_COMPILER}" /nologo /target:library "/out:${native_target}.dll" # build the library
|
|
269
|
+
${_csc_opts} ${unsafe} ${references} ${compiler_file_list}
|
|
270
|
+
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" # working directory is the source directory, so we don't have to care about relative paths
|
|
271
|
+
DEPENDS ${cmake_file_list}
|
|
272
|
+
COMMENT "Building ${relative_path}" VERBATIM) # nice comment
|
|
273
|
+
add_custom_target(${target} ALL DEPENDS "${outdir}/${target}.dll" SOURCES ${cmake_file_list}) # create the actual target
|
|
274
|
+
set_property(TARGET ${target} PROPERTY _assembly "${native_target}.dll")
|
|
275
|
+
set_property(TARGET ${target} PROPERTY _assembly_type "dll")
|
|
276
|
+
if (deps)
|
|
277
|
+
add_dependencies(${target} ${deps})
|
|
278
|
+
endif(deps)
|
|
279
|
+
endfunction(csharp_add_library)
|
|
280
|
+
|
|
281
|
+
# ----- install an assembly -----
|
|
282
|
+
function(install_assembly)
|
|
283
|
+
set (current "t")
|
|
284
|
+
|
|
285
|
+
foreach (arg ${ARGN})
|
|
286
|
+
# flag handling
|
|
287
|
+
if (arg STREQUAL "NO_GAC")
|
|
288
|
+
set(no_gac TRUE)
|
|
289
|
+
# option handling
|
|
290
|
+
elseif (arg STREQUAL DESTINATION)
|
|
291
|
+
set (current "d")
|
|
292
|
+
elseif (arg STREQUAL "PACKAGE")
|
|
293
|
+
set (current "p")
|
|
294
|
+
# value handling
|
|
295
|
+
elseif (current STREQUAL "t")
|
|
296
|
+
set (target ${arg})
|
|
297
|
+
elseif (current STREQUAL "d")
|
|
298
|
+
if (IS_ABSOLUTE "${arg}")
|
|
299
|
+
set (destination_dir "${arg}")
|
|
300
|
+
else (IS_ABSOLUTE "${arg}")
|
|
301
|
+
set (destination_dir "${CMAKE_INSTALL_PREFIX}/${arg}")
|
|
302
|
+
endif (IS_ABSOLUTE "${arg}")
|
|
303
|
+
elseif (current STREQUAL "p")
|
|
304
|
+
set (package ${arg})
|
|
305
|
+
endif (arg STREQUAL "NO_GAC")
|
|
306
|
+
endforeach (arg)
|
|
307
|
+
|
|
308
|
+
if (NOT destination_dir)
|
|
309
|
+
message(FATAL_ERROR "The destination directory is mandatory, even if the assembly is installed into the GAC.")
|
|
310
|
+
elseif (NOT target)
|
|
311
|
+
message(FATAL_ERROR "No target given.")
|
|
312
|
+
endif (NOT destination_dir)
|
|
313
|
+
|
|
314
|
+
# retrieve the absolute path of the generated assembly
|
|
315
|
+
get_property(filename TARGET ${target} PROPERTY _assembly)
|
|
316
|
+
get_property(type TARGET ${target} PROPERTY _assembly_type)
|
|
317
|
+
get_property(pc_file TARGET ${target} PROPERTY pkg-config_template_basename)
|
|
318
|
+
|
|
319
|
+
if (NOT pc_file)
|
|
320
|
+
set (pc_file ${target})
|
|
321
|
+
endif (NOT pc_file)
|
|
322
|
+
|
|
323
|
+
# default assembly location (for pkg-config)
|
|
324
|
+
set(assembly "${GAC_DIR}/${package}/${target}.dll")
|
|
325
|
+
|
|
326
|
+
if (NOT filename)
|
|
327
|
+
message(FATAL_ERROR "Couldn't retrieve the assembly filename for target ${target}! Are you sure the target is a .NET library assembly?")
|
|
328
|
+
endif (NOT filename)
|
|
329
|
+
|
|
330
|
+
if (package)
|
|
331
|
+
set (package_option "-package ${package}")
|
|
332
|
+
endif (package)
|
|
333
|
+
|
|
334
|
+
if (NOT MONO_FOUND OR no_gac OR type STREQUAL "exe")
|
|
335
|
+
install(FILES "${filename}" DESTINATION ${destination_dir})
|
|
336
|
+
if (EXISTS "${filename}.config")
|
|
337
|
+
install(FILES "${filename}.config" DESTINATION ${destination_dir})
|
|
338
|
+
endif (EXISTS "${filename}.config")
|
|
339
|
+
|
|
340
|
+
# don't install anything into the GAC
|
|
341
|
+
set (no_gac TRUE)
|
|
342
|
+
# set new assembly location for pkg-config
|
|
343
|
+
set(assembly "${destination_dir}/${target}.${type}")
|
|
344
|
+
endif (NOT MONO_FOUND OR no_gac OR type STREQUAL "exe")
|
|
345
|
+
|
|
346
|
+
if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${pc_file}.pc.cmake")
|
|
347
|
+
configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/${pc_file}.pc.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${pc_file}.pc" @ONLY)
|
|
348
|
+
|
|
349
|
+
if (NOT LIB_INSTALL_DIR)
|
|
350
|
+
set (LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
|
|
351
|
+
endif (NOT LIB_INSTALL_DIR)
|
|
352
|
+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${pc_file}.pc" DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
|
|
353
|
+
endif (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${pc_file}.pc.cmake")
|
|
354
|
+
|
|
355
|
+
if (no_gac)
|
|
356
|
+
return()
|
|
357
|
+
endif (no_gac)
|
|
358
|
+
|
|
359
|
+
# So we have the mono runtime and we can use gacutil (it has the -root option, which the MS version doesn't have).
|
|
360
|
+
install(CODE "execute_process(COMMAND ${GACUTIL_EXECUTABLE} -i ${filename} ${package_option} -root ${CMAKE_CURRENT_BINARY_DIR}/tmp_gac)")
|
|
361
|
+
file(REMOVE_RECURSE ${CMAKE_CURRENT_BINARY_DIR}/tmp_gac/mono)
|
|
362
|
+
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tmp_gac/mono)
|
|
363
|
+
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/tmp_gac/mono/ DESTINATION ${GAC_DIR} )
|
|
364
|
+
endfunction(install_assembly)
|
|
365
|
+
|
|
366
|
+
set(CMAKE_CSharp_INFORMATION_LOADED 1)
|