Merge lp:~zeller-benjamin/ubuntu-sdk-ide/snapcraft-step2 into lp:ubuntu-sdk-ide

Proposed by Benjamin Zeller
Status: Merged
Approved by: Zoltan Balogh
Approved revision: 165
Merged at revision: 164
Proposed branch: lp:~zeller-benjamin/ubuntu-sdk-ide/snapcraft-step2
Merge into: lp:ubuntu-sdk-ide
Diff against target: 303842 lines (+301319/-81)
446 files modified
CMakeLists.txt (+29/-2)
dist/qtcreator/src/plugins/ubuntu/UbuntuPlugin.pro (+2/-0)
dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName.pro (+0/-32)
dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.desktop (+0/-9)
dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.pro (+2/-19)
dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui/appName.desktop (+9/-0)
dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/snapcraft.yaml (+10/-4)
dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/wizard.json (+7/-12)
dist/qtcreator/src/plugins/ubuntu/share/qtcreator/ubuntu/scripts/run_snapcraft.py (+29/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/UbuntuProject.mimetypes.xml (+5/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfiguration.cpp (+41/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfiguration.h (+33/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfigurationfactory.cpp (+145/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfigurationfactory.h (+44/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildstepfactory.cpp (+65/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildstepfactory.h (+25/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftproject.cpp (+156/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftproject.h (+88/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectfile.cpp (+42/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectfile.h (+48/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectmanager.cpp (+64/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectmanager.h (+40/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectnode.cpp (+496/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectnode.h (+136/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftrsyncstep.cpp (+51/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftrsyncstep.h (+31/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftstep.cpp (+67/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftstep.h (+33/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/settings/snapcraftkitinformation.cpp (+114/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/settings/snapcraftkitinformation.h (+59/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/snap.pri (+27/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuclicktool.cpp (+5/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuclicktool.h (+1/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuconstants.h (+10/-0)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntukitmanager.cpp (+4/-1)
dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuplugin.cpp (+14/-2)
dist/yaml-cpp/.clang-format (+47/-0)
dist/yaml-cpp/.hgeol (+4/-0)
dist/yaml-cpp/.hgignore (+1/-0)
dist/yaml-cpp/.pc/.quilt_patches (+1/-0)
dist/yaml-cpp/.pc/.quilt_series (+1/-0)
dist/yaml-cpp/.pc/.version (+1/-0)
dist/yaml-cpp/.pc/applied-patches (+2/-0)
dist/yaml-cpp/.pc/install-cmake-dev-files.patch/CMakeLists.txt (+340/-0)
dist/yaml-cpp/.pc/pkgconfig.patch/yaml-cpp.pc.cmake (+11/-0)
dist/yaml-cpp/CMakeLists.txt (+356/-0)
dist/yaml-cpp/debian/changelog (+56/-0)
dist/yaml-cpp/debian/compat (+1/-0)
dist/yaml-cpp/debian/control (+39/-0)
dist/yaml-cpp/debian/copyright (+44/-0)
dist/yaml-cpp/debian/libyaml-cpp-dev.install (+5/-0)
dist/yaml-cpp/debian/libyaml-cpp0.5v5.install (+1/-0)
dist/yaml-cpp/debian/patches/install-cmake-dev-files.patch (+69/-0)
dist/yaml-cpp/debian/patches/pkgconfig.patch (+19/-0)
dist/yaml-cpp/debian/patches/series (+2/-0)
dist/yaml-cpp/debian/rules (+64/-0)
dist/yaml-cpp/debian/source/format (+1/-0)
dist/yaml-cpp/debian/watch (+3/-0)
dist/yaml-cpp/include/yaml-cpp/anchor.h (+17/-0)
dist/yaml-cpp/include/yaml-cpp/binary.h (+67/-0)
dist/yaml-cpp/include/yaml-cpp/contrib/anchordict.h (+37/-0)
dist/yaml-cpp/include/yaml-cpp/contrib/graphbuilder.h (+147/-0)
dist/yaml-cpp/include/yaml-cpp/dll.h (+37/-0)
dist/yaml-cpp/include/yaml-cpp/emitfromevents.h (+57/-0)
dist/yaml-cpp/include/yaml-cpp/emitter.h (+254/-0)
dist/yaml-cpp/include/yaml-cpp/emitterdef.h (+16/-0)
dist/yaml-cpp/include/yaml-cpp/emittermanip.h (+137/-0)
dist/yaml-cpp/include/yaml-cpp/emitterstyle.h (+16/-0)
dist/yaml-cpp/include/yaml-cpp/eventhandler.h (+40/-0)
dist/yaml-cpp/include/yaml-cpp/exceptions.h (+227/-0)
dist/yaml-cpp/include/yaml-cpp/mark.h (+27/-0)
dist/yaml-cpp/include/yaml-cpp/node/convert.h (+286/-0)
dist/yaml-cpp/include/yaml-cpp/node/detail/bool_type.h (+26/-0)
dist/yaml-cpp/include/yaml-cpp/node/detail/impl.h (+177/-0)
dist/yaml-cpp/include/yaml-cpp/node/detail/iterator.h (+65/-0)
dist/yaml-cpp/include/yaml-cpp/node/detail/iterator_fwd.h (+28/-0)
dist/yaml-cpp/include/yaml-cpp/node/detail/memory.h (+48/-0)
dist/yaml-cpp/include/yaml-cpp/node/detail/node.h (+165/-0)
dist/yaml-cpp/include/yaml-cpp/node/detail/node_data.h (+124/-0)
dist/yaml-cpp/include/yaml-cpp/node/detail/node_iterator.h (+159/-0)
dist/yaml-cpp/include/yaml-cpp/node/detail/node_ref.h (+95/-0)
dist/yaml-cpp/include/yaml-cpp/node/emit.h (+25/-0)
dist/yaml-cpp/include/yaml-cpp/node/impl.h (+441/-0)
dist/yaml-cpp/include/yaml-cpp/node/iterator.h (+31/-0)
dist/yaml-cpp/include/yaml-cpp/node/node.h (+143/-0)
dist/yaml-cpp/include/yaml-cpp/node/parse.h (+30/-0)
dist/yaml-cpp/include/yaml-cpp/node/ptr.h (+29/-0)
dist/yaml-cpp/include/yaml-cpp/node/type.h (+16/-0)
dist/yaml-cpp/include/yaml-cpp/noncopyable.h (+25/-0)
dist/yaml-cpp/include/yaml-cpp/null.h (+24/-0)
dist/yaml-cpp/include/yaml-cpp/ostream_wrapper.h (+72/-0)
dist/yaml-cpp/include/yaml-cpp/parser.h (+48/-0)
dist/yaml-cpp/include/yaml-cpp/stlemitter.h (+51/-0)
dist/yaml-cpp/include/yaml-cpp/traits.h (+103/-0)
dist/yaml-cpp/include/yaml-cpp/yaml.h (+24/-0)
dist/yaml-cpp/install.txt (+24/-0)
dist/yaml-cpp/license.txt (+19/-0)
dist/yaml-cpp/src/binary.cpp (+93/-0)
dist/yaml-cpp/src/collectionstack.h (+39/-0)
dist/yaml-cpp/src/contrib/graphbuilder.cpp (+17/-0)
dist/yaml-cpp/src/contrib/graphbuilderadapter.cpp (+94/-0)
dist/yaml-cpp/src/contrib/graphbuilderadapter.h (+79/-0)
dist/yaml-cpp/src/convert.cpp (+75/-0)
dist/yaml-cpp/src/directives.cpp (+22/-0)
dist/yaml-cpp/src/directives.h (+29/-0)
dist/yaml-cpp/src/emit.cpp (+25/-0)
dist/yaml-cpp/src/emitfromevents.cpp (+119/-0)
dist/yaml-cpp/src/emitter.cpp (+911/-0)
dist/yaml-cpp/src/emitterstate.cpp (+350/-0)
dist/yaml-cpp/src/emitterstate.h (+203/-0)
dist/yaml-cpp/src/emitterutils.cpp (+482/-0)
dist/yaml-cpp/src/emitterutils.h (+50/-0)
dist/yaml-cpp/src/exp.cpp (+136/-0)
dist/yaml-cpp/src/exp.h (+209/-0)
dist/yaml-cpp/src/indentation.h (+41/-0)
dist/yaml-cpp/src/memory.cpp (+26/-0)
dist/yaml-cpp/src/node.cpp (+12/-0)
dist/yaml-cpp/src/node_data.cpp (+296/-0)
dist/yaml-cpp/src/nodebuilder.cpp (+130/-0)
dist/yaml-cpp/src/nodebuilder.h (+70/-0)
dist/yaml-cpp/src/nodeevents.cpp (+101/-0)
dist/yaml-cpp/src/nodeevents.h (+64/-0)
dist/yaml-cpp/src/null.cpp (+5/-0)
dist/yaml-cpp/src/ostream_wrapper.cpp (+57/-0)
dist/yaml-cpp/src/parse.cpp (+68/-0)
dist/yaml-cpp/src/parser.cpp (+128/-0)
dist/yaml-cpp/src/ptr_stack.h (+53/-0)
dist/yaml-cpp/src/ptr_vector.h (+49/-0)
dist/yaml-cpp/src/regex_yaml.cpp (+45/-0)
dist/yaml-cpp/src/regex_yaml.h (+85/-0)
dist/yaml-cpp/src/regeximpl.h (+186/-0)
dist/yaml-cpp/src/scanner.cpp (+386/-0)
dist/yaml-cpp/src/scanner.h (+135/-0)
dist/yaml-cpp/src/scanscalar.cpp (+221/-0)
dist/yaml-cpp/src/scanscalar.h (+61/-0)
dist/yaml-cpp/src/scantag.cpp (+81/-0)
dist/yaml-cpp/src/scantag.h (+19/-0)
dist/yaml-cpp/src/scantoken.cpp (+436/-0)
dist/yaml-cpp/src/setting.h (+99/-0)
dist/yaml-cpp/src/simplekey.cpp (+128/-0)
dist/yaml-cpp/src/singledocparser.cpp (+413/-0)
dist/yaml-cpp/src/singledocparser.h (+65/-0)
dist/yaml-cpp/src/stream.cpp (+448/-0)
dist/yaml-cpp/src/stream.h (+76/-0)
dist/yaml-cpp/src/streamcharsource.h (+48/-0)
dist/yaml-cpp/src/stringsource.h (+48/-0)
dist/yaml-cpp/src/tag.cpp (+49/-0)
dist/yaml-cpp/src/tag.h (+33/-0)
dist/yaml-cpp/src/token.h (+69/-0)
dist/yaml-cpp/test/CMakeLists.txt (+34/-0)
dist/yaml-cpp/test/create-emitter-tests.py (+211/-0)
dist/yaml-cpp/test/gmock-1.7.0/CHANGES (+126/-0)
dist/yaml-cpp/test/gmock-1.7.0/CMakeLists.txt (+171/-0)
dist/yaml-cpp/test/gmock-1.7.0/CONTRIBUTORS (+40/-0)
dist/yaml-cpp/test/gmock-1.7.0/LICENSE (+28/-0)
dist/yaml-cpp/test/gmock-1.7.0/Makefile.am (+216/-0)
dist/yaml-cpp/test/gmock-1.7.0/Makefile.in (+1357/-0)
dist/yaml-cpp/test/gmock-1.7.0/README (+369/-0)
dist/yaml-cpp/test/gmock-1.7.0/aclocal.m4 (+9799/-0)
dist/yaml-cpp/test/gmock-1.7.0/build-aux/config.guess (+1530/-0)
dist/yaml-cpp/test/gmock-1.7.0/build-aux/config.h.in (+69/-0)
dist/yaml-cpp/test/gmock-1.7.0/build-aux/config.sub (+1773/-0)
dist/yaml-cpp/test/gmock-1.7.0/build-aux/depcomp (+688/-0)
dist/yaml-cpp/test/gmock-1.7.0/build-aux/install-sh (+527/-0)
dist/yaml-cpp/test/gmock-1.7.0/build-aux/ltmain.sh (+9661/-0)
dist/yaml-cpp/test/gmock-1.7.0/build-aux/missing (+331/-0)
dist/yaml-cpp/test/gmock-1.7.0/configure (+18535/-0)
dist/yaml-cpp/test/gmock-1.7.0/configure.ac (+146/-0)
dist/yaml-cpp/test/gmock-1.7.0/fused-src/gmock-gtest-all.cc (+11443/-0)
dist/yaml-cpp/test/gmock-1.7.0/fused-src/gmock/gmock.h (+14198/-0)
dist/yaml-cpp/test/gmock-1.7.0/fused-src/gmock_main.cc (+54/-0)
dist/yaml-cpp/test/gmock-1.7.0/fused-src/gtest/gtest.h (+20061/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/CHANGES (+157/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/CMakeLists.txt (+252/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/CONTRIBUTORS (+37/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/LICENSE (+28/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/Makefile.am (+306/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/Makefile.in (+1360/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/README (+435/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/aclocal.m4 (+1198/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/build-aux/config.guess (+1530/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/build-aux/config.h.in (+69/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/build-aux/config.sub (+1773/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/build-aux/depcomp (+688/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/build-aux/install-sh (+527/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/build-aux/ltmain.sh (+9661/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/build-aux/missing (+331/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/cmake/internal_utils.cmake (+227/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/codegear/gtest.cbproj (+138/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/codegear/gtest.groupproj (+54/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/codegear/gtest_all.cc (+38/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/codegear/gtest_link.cc (+40/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/codegear/gtest_main.cbproj (+82/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/codegear/gtest_unittest.cbproj (+88/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/configure (+18222/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/configure.ac (+68/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/fused-src/gtest/gtest-all.cc (+9592/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/fused-src/gtest/gtest.h (+20061/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/fused-src/gtest/gtest_main.cc (+38/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest-death-test.h (+294/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest-message.h (+250/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest-param-test.h (+1421/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest-param-test.h.pump (+487/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest-printers.h (+855/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest-spi.h (+232/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest-test-part.h (+179/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest-typed-test.h (+259/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest.h (+2291/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest_pred_impl.h (+358/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/gtest_prod.h (+58/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-death-test-internal.h (+319/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-filepath.h (+206/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-internal.h (+1158/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-linked_ptr.h (+233/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-param-util-generated.h (+5143/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-param-util-generated.h.pump (+301/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-param-util.h (+619/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-port.h (+1947/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-string.h (+167/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-tuple.h (+1012/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-tuple.h.pump (+339/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-type-util.h (+3331/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/include/gtest/internal/gtest-type-util.h.pump (+297/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/m4/acx_pthread.m4 (+363/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/m4/gtest.m4 (+74/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/m4/libtool.m4 (+8001/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/m4/ltoptions.m4 (+384/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/m4/ltsugar.m4 (+123/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/m4/ltversion.m4 (+23/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/m4/lt~obsolete.m4 (+98/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/make/Makefile (+82/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest-md.sln (+45/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest-md.vcproj (+126/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest.sln (+45/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest.vcproj (+126/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest_main-md.vcproj (+129/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest_main.vcproj (+129/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest_prod_test-md.vcproj (+164/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest_prod_test.vcproj (+164/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest_unittest-md.vcproj (+147/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/msvc/gtest_unittest.vcproj (+147/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/prime_tables.h (+123/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample1.cc (+68/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample1.h (+43/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample10_unittest.cc (+144/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample1_unittest.cc (+153/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample2.cc (+56/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample2.h (+85/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample2_unittest.cc (+109/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample3-inl.h (+172/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample3_unittest.cc (+151/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample4.cc (+46/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample4.h (+53/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample4_unittest.cc (+45/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample5_unittest.cc (+199/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample6_unittest.cc (+224/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample7_unittest.cc (+130/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample8_unittest.cc (+173/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/samples/sample9_unittest.cc (+160/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/scripts/fuse_gtest_files.py (+250/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/scripts/gen_gtest_pred_impl.py (+730/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/scripts/gtest-config.in (+274/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/scripts/pump.py (+855/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/scripts/test/Makefile (+59/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest-all.cc (+48/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest-death-test.cc (+1344/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest-filepath.cc (+382/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest-internal-inl.h (+1218/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest-port.cc (+805/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest-printers.cc (+363/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest-test-part.cc (+110/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest-typed-test.cc (+110/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest.cc (+5015/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/src/gtest_main.cc (+38/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-death-test_ex_test.cc (+93/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-death-test_test.cc (+1367/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-filepath_test.cc (+680/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-linked_ptr_test.cc (+154/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-listener_test.cc (+310/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-message_test.cc (+159/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-options_test.cc (+215/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-param-test2_test.cc (+65/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-param-test_test.cc (+904/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-param-test_test.h (+57/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-port_test.cc (+1253/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-printers_test.cc (+1566/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-test-part_test.cc (+208/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-tuple_test.cc (+320/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-typed-test2_test.cc (+45/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-typed-test_test.cc (+360/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-typed-test_test.h (+66/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest-unittest-api_test.cc (+341/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_all_test.cc (+47/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_break_on_failure_unittest.py (+212/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_break_on_failure_unittest_.cc (+88/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_catch_exceptions_test.py (+237/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_catch_exceptions_test_.cc (+311/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_color_test.py (+130/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_color_test_.cc (+71/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_env_var_test.py (+103/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_env_var_test_.cc (+126/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_environment_test.cc (+192/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_filter_unittest.py (+633/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_filter_unittest_.cc (+140/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_help_test.py (+172/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_help_test_.cc (+46/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_list_tests_unittest.py (+207/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_list_tests_unittest_.cc (+157/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_main_unittest.cc (+45/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_no_test_unittest.cc (+56/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_output_test.py (+335/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_output_test_.cc (+1034/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_output_test_golden_lin.txt (+720/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_pred_impl_unittest.cc (+2427/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_premature_exit_test.cc (+141/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_prod_test.cc (+57/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_repeat_test.cc (+253/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_shuffle_test.py (+325/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_shuffle_test_.cc (+103/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_sole_header_test.cc (+57/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_stress_test.cc (+256/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_test_utils.py (+320/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_throw_on_failure_ex_test.cc (+92/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_throw_on_failure_test.py (+171/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_throw_on_failure_test_.cc (+72/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_uninitialized_test.py (+70/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_uninitialized_test_.cc (+43/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_unittest.cc (+7415/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_xml_outfile1_test_.cc (+49/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_xml_outfile2_test_.cc (+49/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_xml_outfiles_test.py (+132/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_xml_output_unittest.py (+307/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_xml_output_unittest_.cc (+181/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/gtest_xml_test_utils.py (+194/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/production.cc (+36/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/test/production.h (+55/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Config/DebugProject.xcconfig (+30/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Config/FrameworkTarget.xcconfig (+17/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Config/General.xcconfig (+41/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Config/ReleaseProject.xcconfig (+32/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Config/StaticLibraryTarget.xcconfig (+18/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Config/TestTarget.xcconfig (+8/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Resources/Info.plist (+30/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Samples/FrameworkSample/Info.plist (+28/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj (+457/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Samples/FrameworkSample/runtests.sh (+62/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Samples/FrameworkSample/widget.cc (+63/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Samples/FrameworkSample/widget.h (+59/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Samples/FrameworkSample/widget_test.cc (+68/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Scripts/runtests.sh (+65/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/Scripts/versiongenerate.py (+100/-0)
dist/yaml-cpp/test/gmock-1.7.0/gtest/xcode/gtest.xcodeproj/project.pbxproj (+1135/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-actions.h (+1078/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-cardinalities.h (+147/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-generated-actions.h (+2415/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-generated-actions.h.pump (+821/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-generated-function-mockers.h (+991/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-generated-function-mockers.h.pump (+265/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-generated-matchers.h (+2190/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-generated-matchers.h.pump (+674/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-generated-nice-strict.h (+397/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-generated-nice-strict.h.pump (+161/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-matchers.h (+3986/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-more-actions.h (+233/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-more-matchers.h (+58/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock-spec-builders.h (+1791/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/gmock.h (+94/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/internal/gmock-generated-internal-utils.h (+279/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/internal/gmock-generated-internal-utils.h.pump (+136/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/internal/gmock-internal-utils.h (+498/-0)
dist/yaml-cpp/test/gmock-1.7.0/include/gmock/internal/gmock-port.h (+78/-0)
dist/yaml-cpp/test/gmock-1.7.0/make/Makefile (+101/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2005/gmock.sln (+32/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2005/gmock.vcproj (+191/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2005/gmock_config.vsprops (+15/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2005/gmock_main.vcproj (+187/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2005/gmock_test.vcproj (+201/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2010/gmock.sln (+32/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2010/gmock.vcxproj (+82/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2010/gmock_config.props (+19/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2010/gmock_main.vcxproj (+88/-0)
dist/yaml-cpp/test/gmock-1.7.0/msvc/2010/gmock_test.vcxproj (+101/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/fuse_gmock_files.py (+240/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/generator/LICENSE (+203/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/generator/README (+35/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/generator/README.cppclean (+115/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/generator/cpp/ast.py (+1723/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/generator/cpp/gmock_class.py (+226/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/generator/cpp/keywords.py (+59/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/generator/cpp/tokenize.py (+287/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/generator/cpp/utils.py (+41/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/generator/gmock_gen.py (+31/-0)
dist/yaml-cpp/test/gmock-1.7.0/scripts/gmock-config.in (+303/-0)
dist/yaml-cpp/test/gmock-1.7.0/src/gmock-all.cc (+47/-0)
dist/yaml-cpp/test/gmock-1.7.0/src/gmock-cardinalities.cc (+156/-0)
dist/yaml-cpp/test/gmock-1.7.0/src/gmock-internal-utils.cc (+174/-0)
dist/yaml-cpp/test/gmock-1.7.0/src/gmock-matchers.cc (+498/-0)
dist/yaml-cpp/test/gmock-1.7.0/src/gmock-spec-builders.cc (+813/-0)
dist/yaml-cpp/test/gmock-1.7.0/src/gmock.cc (+182/-0)
dist/yaml-cpp/test/gmock-1.7.0/src/gmock_main.cc (+54/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-actions_test.cc (+1256/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-cardinalities_test.cc (+428/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-generated-actions_test.cc (+1225/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-generated-function-mockers_test.cc (+588/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-generated-internal-utils_test.cc (+127/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-generated-matchers_test.cc (+1289/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-internal-utils_test.cc (+649/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-matchers_test.cc (+5247/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-more-actions_test.cc (+705/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-nice-strict_test.cc (+424/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-port_test.cc (+43/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock-spec-builders_test.cc (+2613/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_all_test.cc (+48/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_ex_test.cc (+78/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_leak_test.py (+108/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_leak_test_.cc (+100/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_link2_test.cc (+40/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_link_test.cc (+40/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_link_test.h (+669/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_output_test.py (+180/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_output_test_.cc (+291/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_output_test_golden.txt (+310/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_stress_test.cc (+322/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_test.cc (+255/-0)
dist/yaml-cpp/test/gmock-1.7.0/test/gmock_test_utils.py (+112/-0)
dist/yaml-cpp/test/handler_test.h (+32/-0)
dist/yaml-cpp/test/integration/emitter_test.cpp (+1016/-0)
dist/yaml-cpp/test/integration/encoding_test.cpp (+182/-0)
dist/yaml-cpp/test/integration/gen_emitter_test.cpp (+9759/-0)
dist/yaml-cpp/test/integration/handler_spec_test.cpp (+1611/-0)
dist/yaml-cpp/test/integration/handler_test.cpp (+46/-0)
dist/yaml-cpp/test/integration/load_node_test.cpp (+202/-0)
dist/yaml-cpp/test/integration/node_spec_test.cpp (+1131/-0)
dist/yaml-cpp/test/main.cpp (+6/-0)
dist/yaml-cpp/test/mock_event_handler.h (+26/-0)
dist/yaml-cpp/test/node/node_test.cpp (+416/-0)
dist/yaml-cpp/test/ostream_wrapper_test.cpp (+66/-0)
dist/yaml-cpp/test/specexamples.h (+846/-0)
dist/yaml-cpp/util/CMakeLists.txt (+11/-0)
dist/yaml-cpp/util/api.cpp (+137/-0)
dist/yaml-cpp/util/parse.cpp (+61/-0)
dist/yaml-cpp/util/read.cpp (+33/-0)
dist/yaml-cpp/util/sandbox.cpp (+36/-0)
dist/yaml-cpp/yaml-cpp-config-version.cmake.in (+11/-0)
dist/yaml-cpp/yaml-cpp-config.cmake.in (+14/-0)
dist/yaml-cpp/yaml-cpp.pc.cmake (+10/-0)
To merge this branch: bzr merge lp:~zeller-benjamin/ubuntu-sdk-ide/snapcraft-step2
Reviewer Review Type Date Requested Status
ubuntu-sdk-build-bot continuous-integration Approve
Zoltan Balogh Approve
Review via email: mp+308693@code.launchpad.net

Commit message

Snapcraft support plan step 2
-> support snapcraft.yaml as project format
-> build snap files directly from the IDE
-> basic template
-> support building in containers

Description of the change

Snapcraft support plan step 2
-> support snapcraft.yaml as project format
-> build snap files directly from the IDE
-> basic template
-> support building in containers

To post a comment you must log in.
165. By Benjamin Zeller

Add missing yaml library

Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Zoltan Balogh (bzoltan) wrote :

Let's see

review: Approve
Revision history for this message
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot) wrote :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2016-09-22 16:11:03 +0000
+++ CMakeLists.txt 2016-10-18 07:57:32 +0000
@@ -64,7 +64,11 @@
64 COMMAND ${CMAKE_SOURCE_DIR}/get_bzr_source.py -d "${EXT_SOURCE_DIR}/qtcreator/src/plugins/ubuntu" lp:qtcreator-plugin-ubuntu64 COMMAND ${CMAKE_SOURCE_DIR}/get_bzr_source.py -d "${EXT_SOURCE_DIR}/qtcreator/src/plugins/ubuntu" lp:qtcreator-plugin-ubuntu
65 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})65 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
6666
67add_custom_target(sources DEPENDS QtSource LibDusSource MaliitSource fcitx-qtSource AppmenuSource QtCreatorSource)67add_custom_target(YamlCppSource
68 ${CMAKE_SOURCE_DIR}/get_package_source.py yaml-cpp
69 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
70
71add_custom_target(sources DEPENDS QtSource LibDusSource MaliitSource fcitx-qtSource AppmenuSource QtCreatorSource YamlCppSource)
6872
69add_custom_command(TARGET sources73add_custom_command(TARGET sources
70 PRE_BUILD74 PRE_BUILD
@@ -123,6 +127,29 @@
123 INSTALL_COMMAND sh -c "LD_LIBRARY_PATH=${QT_INSTALL_DIR}/lib make install"127 INSTALL_COMMAND sh -c "LD_LIBRARY_PATH=${QT_INSTALL_DIR}/lib make install"
124)128)
125129
130ConcatStrings (LIBYAML_BUILD_SCRIPT
131 "${CMAKE_COMMAND} "
132 "-DCMAKE_INSTALL_PREFIX=${QT_INSTALL_DIR} "
133 "-DCMAKE_PREFIX_PATH=${QT_INSTALL_DIR} "
134 "-DCMAKE_BUILD_TYPE=DEBUG" #${CMAKE_BUILD_TYPE_STRING} "
135 "-DCMAKE_INSTALL_LIBDIR=lib ${EXT_SOURCE_DIR}/yaml-cpp "
136 "-DCMAKE_C_FLAGS=-fPIC "
137 "-DCMAKE_CXX_FLAGS=-fPIC "
138)
139
140SET (LIBYAML_PREFIX "${CMAKE_BINARY_DIR}/yaml-cpp")
141ExternalProject_Add(libyaml-cpp
142 DEPENDS ${QT_VERSION}
143 PREFIX "${LIBYAML_PREFIX}"
144 SOURCE_DIR "${EXT_SOURCE_DIR}/yaml-cpp"
145 BINARY_DIR "${LIBYAML_PREFIX}/build"
146 INSTALL_DIR "${QT_INSTALL_DIR}"
147 DOWNLOAD_COMMAND sh -c "exit 0"
148 CONFIGURE_COMMAND sh -c "${LIBYAML_BUILD_SCRIPT}"
149 BUILD_COMMAND sh -c "LD_LIBRARY_PATH=${QT_INSTALL_DIR}/lib make ${GENERATED_MAKE_FLAGS}"
150 INSTALL_COMMAND sh -c "LD_LIBRARY_PATH=${QT_INSTALL_DIR}/lib make install"
151)
152
126SET (MALIITPLUGIN_PREFIX "${CMAKE_BINARY_DIR}/maliit-plugin-qt-build")153SET (MALIITPLUGIN_PREFIX "${CMAKE_BINARY_DIR}/maliit-plugin-qt-build")
127ExternalProject_Add(maliit-plugin154ExternalProject_Add(maliit-plugin
128 DEPENDS ${QT_VERSION}155 DEPENDS ${QT_VERSION}
@@ -172,7 +199,7 @@
172199
173SET (QTCREATOR_PREFIX "${CMAKE_BINARY_DIR}/qtcreator-build")200SET (QTCREATOR_PREFIX "${CMAKE_BINARY_DIR}/qtcreator-build")
174ExternalProject_Add(qtcreator_3.5.0201ExternalProject_Add(qtcreator_3.5.0
175 DEPENDS appmenu-qt5 fcitx-qt5 maliit-plugin202 DEPENDS appmenu-qt5 fcitx-qt5 maliit-plugin libyaml-cpp
176 PREFIX "${QTCREATOR_PREFIX}"203 PREFIX "${QTCREATOR_PREFIX}"
177 SOURCE_DIR "${EXT_SOURCE_DIR}/qtcreator"204 SOURCE_DIR "${EXT_SOURCE_DIR}/qtcreator"
178 BINARY_DIR "${QTCREATOR_PREFIX}/build"205 BINARY_DIR "${QTCREATOR_PREFIX}/build"
179206
=== modified file 'dist/qtcreator/src/plugins/ubuntu/UbuntuPlugin.pro'
--- dist/qtcreator/src/plugins/ubuntu/UbuntuPlugin.pro 2016-09-22 16:11:03 +0000
+++ dist/qtcreator/src/plugins/ubuntu/UbuntuPlugin.pro 2016-10-18 07:57:32 +0000
@@ -220,6 +220,8 @@
220 src/ubuntu/device/remote/ubuntudirectuploadstep.h \220 src/ubuntu/device/remote/ubuntudirectuploadstep.h \
221 src/ubuntu/device/remote/ubuntudeploystepfactory.h221 src/ubuntu/device/remote/ubuntudeploystepfactory.h
222222
223include(src/ubuntu/snap/snap.pri)
224
223225
224FORMS += \226FORMS += \
225 src/ubuntu/device/remote/ubunturemoterunconfigurationwidget.ui \227 src/ubuntu/device/remote/ubunturemoterunconfigurationwidget.ui \
226228
=== removed file 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName.pro'
--- dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName.pro 2016-09-22 16:11:03 +0000
+++ dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName.pro 1970-01-01 00:00:00 +0000
@@ -1,32 +0,0 @@
1# This is the basic qmake template for the Ubuntu-SDK
2# it handles creation and installation of the manifest
3# file and takes care of subprojects
4TEMPLATE = subdirs
5
6SUBDIRS += %{ProjectNameL}
7
8# enables/disabled the extra targets to build a snapcraft package
9# also tells the IDE this is a snapcraft project
10CONFIG += snapcraft
11
12snapcraft {
13
14 SNAPCRAFT_FILE=snapcraft.yaml
15
16 #the Ubuntu SDK IDE uses the snap target to create the package
17 snappy.target = snap
18 snappy.commands = cd $$OUT_PWD
19 snappy.commands += && rm -rf \'$$OUT_PWD/snap-deploy\'
20 snappy.commands += && make INSTALL_ROOT=$$OUT_PWD/snap-deploy install
21 snappy.commands += && cd $$OUT_PWD/snap-deploy
22 snappy.commands += && snapcraft
23
24 OTHER_FILES+=$$SNAPCRAFT_FILE
25 QMAKE_EXTRA_TARGETS += snappy
26
27 packaging.files = $$SNAPCRAFT_FILE
28 packaging.path = /
29
30 INSTALLS+=packaging
31}
32
330
=== removed file 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.desktop'
--- dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.desktop 2016-09-22 16:11:03 +0000
+++ dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.desktop 1970-01-01 00:00:00 +0000
@@ -1,9 +0,0 @@
1[Desktop Entry]
2Version=1.0
3Name=%{ProjectNameL}
4Exec=%{ProjectNameL}
5TryExec=%{ProjectNameL}
6Icon=${SNAP}/meta/gui/%{ProjectNameL}.png
7Terminal=false
8Type=Application
9X-Ubuntu-Touch=true
100
=== removed file 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.png'
11Binary files dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.png 2016-09-22 16:11:03 +0000 and dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.png 1970-01-01 00:00:00 +0000 differ1Binary files dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.png 2016-09-22 16:11:03 +0000 and dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.png 1970-01-01 00:00:00 +0000 differ
=== modified file 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.pro'
--- dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.pro 2016-09-22 16:11:03 +0000
+++ dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/appName/appName.pro 2016-10-18 07:57:32 +0000
@@ -16,33 +16,16 @@
1616
17CONF_FILES += %{ProjectNameL}.png17CONF_FILES += %{ProjectNameL}.png
1818
19AP_TEST_FILES += tests/autopilot/run \
20 $$files(tests/*.py,true)
21
22#show all the files in QtCreator19#show all the files in QtCreator
23OTHER_FILES += $${CONF_FILES} \20OTHER_FILES += $${CONF_FILES} \
24 $${QML_FILES} \21 $${QML_FILES} \
25 $${AP_TEST_FILES} \
26 %{ProjectNameL}.desktop \22 %{ProjectNameL}.desktop \
27 %{ProjectNameL}.wrapper23 %{ProjectNameL}.wrapper
2824
29snapcraft {25snapcraft {
30 #specify where the config files are installed to
31 config_files.path = /setup/gui
32 config_files.files += $${CONF_FILES}
33 INSTALLS+=config_files
34
35 #install the desktop file
36 desktop_file.path = /setup/gui
37 desktop_file.files = $$PWD/%{ProjectNameL}.desktop
38 desktop_file.CONFIG += no_check_exist
39 INSTALLS+=desktop_file
40
41 # Default rules for deployment.
42
43 wrapper.files = %{ProjectNameL}.wrapper26 wrapper.files = %{ProjectNameL}.wrapper
44 wrapper.path = /deploy/bin27 wrapper.path = /bin
4528
46 target.path = /deploy/bin29 target.path = /bin
47 INSTALLS+=target wrapper30 INSTALLS+=target wrapper
48}31}
4932
=== added directory 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup'
=== added directory 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui'
=== added file 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui/appName.desktop'
--- dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui/appName.desktop 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui/appName.desktop 2016-10-18 07:57:32 +0000
@@ -0,0 +1,9 @@
1[Desktop Entry]
2Version=1.0
3Name=%{ProjectNameL}
4Exec=%{ProjectNameL}
5TryExec=%{ProjectNameL}
6Icon=${SNAP}/meta/gui/%{ProjectNameL}.png
7Terminal=false
8Type=Application
9X-Ubuntu-Touch=true
010
=== added file 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui/appName.png'
1Binary files dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui/appName.png 1970-01-01 00:00:00 +0000 and dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui/appName.png 2016-10-18 07:57:32 +0000 differ11Binary files dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui/appName.png 1970-01-01 00:00:00 +0000 and dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/setup/gui/appName.png 2016-10-18 07:57:32 +0000 differ
=== modified file 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/snapcraft.yaml'
--- dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/snapcraft.yaml 2016-09-22 16:11:03 +0000
+++ dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/snapcraft.yaml 2016-10-18 07:57:32 +0000
@@ -11,13 +11,19 @@
1111
12parts:12parts:
13 %{ProjectNameL}:13 %{ProjectNameL}:
14 plugin: dump14 plugin: qmake
15 source: deploy/15 source: %{ProjectNameL}/
16 qt-version: qt5
17 options: ["CONFIG+=snapcraft"]
18 project-files: [%{ProjectNameL}]
19 build-packages:
20 - build-essential
21 - qtbase5-dev
22 - qt5-qmake
16 stage-packages:23 stage-packages:
17 - ubuntu-sdk-libs24 - ubuntu-sdk-libs
18 - qtubuntu-desktop25 - qtubuntu-desktop
19 - qtmir-desktop26 - qtmir-desktop
20 - mir-graphics-drivers-desktop27 - mir-graphics-drivers-desktop
2128 after: [qt5conf]
22
2329
2430
=== modified file 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/wizard.json'
--- dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/wizard.json 2016-09-22 16:11:03 +0000
+++ dist/qtcreator/src/plugins/ubuntu/share/qtcreator/templates/wizards/ubuntu/snap-qtquick-app-qmake/wizard.json 2016-10-18 07:57:32 +0000
@@ -1,13 +1,13 @@
1{1{
2 "version": 1,2 "version": 1,
3 "supportedProjectTypes": [ "Qt4ProjectManager.Qt4Project" ],3 "supportedProjectTypes": [ "SnapcraftProjectManager.SnapcraftProject" ],
4 "id": "A.QtQuick Snappy Application",4 "id": "A.QtQuick Snappy Application",
5 "category": "B.Snapcraft",5 "category": "B.Snapcraft",
6 "trDescription": "Creates a experimental C++ Ubuntu snappy application project with a sample UI containing a Label and a Button.",6 "trDescription": "Creates a experimental C++ Ubuntu snappy application project with a sample UI containing a Label and a Button.",
7 "trDisplayName": "QtQuick App with QML Ubuntu UI",7 "trDisplayName": "QtQuick App with QML Ubuntu UI",
8 "trDisplayCategory": "Snapcraft",8 "trDisplayCategory": "Snapcraft",
9 "icon": "../share/ubuntu.png",9 "icon": "../share/ubuntu.png",
10 "enabled": "%{JS: [ %{Plugins} ].indexOf('QmakeProjectManager') >= 0}",10 "enabled": "%{JS: [ %{Plugins} ].indexOf('Ubuntu') >= 0}",
1111
12 "options":12 "options":
13 [13 [
@@ -62,15 +62,10 @@
62 "data":62 "data":
63 [63 [
64 {64 {
65 "source": "appName.pro",65 "source": "snapcraft.yaml",
66 "target": "%{ProjectFile}",
67 "openAsProject": true66 "openAsProject": true
68 },67 },
69 {68 {
70 "source": "snapcraft.yaml",
71 "openInEditor": true
72 },
73 {
74 "source": "appName/main.cpp",69 "source": "appName/main.cpp",
75 "target": "%{ProjectDirectory}/%{ProjectNameL}/%{CppFileName}",70 "target": "%{ProjectDirectory}/%{ProjectNameL}/%{CppFileName}",
76 "openInEditor": true71 "openInEditor": true
@@ -81,12 +76,12 @@
81 "openInEditor": true76 "openInEditor": true
82 },77 },
83 {78 {
84 "source": "appName/appName.desktop",79 "source": "setup/gui/appName.desktop",
85 "target": "%{ProjectDirectory}/%{ProjectNameL}/%{ProjectNameL}.desktop"80 "target": "%{ProjectDirectory}/setup/gui/%{ProjectNameL}.desktop"
86 },81 },
87 {82 {
88 "source": "appName/appName.png",83 "source": "setup/gui/appName.png",
89 "target": "%{ProjectDirectory}/%{ProjectNameL}/%{ProjectNameL}.png"84 "target": "%{ProjectDirectory}/setup/gui/%{ProjectNameL}.png"
90 },85 },
91 {86 {
92 "source": "appName/appName.pro",87 "source": "appName/appName.pro",
9388
=== added file 'dist/qtcreator/src/plugins/ubuntu/share/qtcreator/ubuntu/scripts/run_snapcraft.py'
--- dist/qtcreator/src/plugins/ubuntu/share/qtcreator/ubuntu/scripts/run_snapcraft.py 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/share/qtcreator/ubuntu/scripts/run_snapcraft.py 2016-10-18 07:57:32 +0000
@@ -0,0 +1,29 @@
1#!/usr/bin/python3
2
3import os
4import sys
5import shutil
6import subprocess
7from optparse import OptionParser
8
9parser = OptionParser(usage="usage: %prog [options] lp:branch")
10parser.add_option(
11 "-s", "--snapcraft", dest="snapcraft")
12options, args = parser.parse_args()
13
14if options.snapcraft is None:
15 options.snapcraft = shutil.which("snapcraft")
16
17if options.snapcraft is None:
18 parser.error("Snapcraft not found.")
19
20if not os.path.isfile(options.snapcraft) or not os.access(options.snapcraft, os.X_OK):
21 parser.error("-s must specify a executable file.")
22
23print("Using snapcraft from :"+options.snapcraft)
24
25ret = subprocess.call([options.snapcraft, "clean"])
26if ret != 0:
27 sys.exit(ret)
28
29sys.exit(subprocess.call([options.snapcraft]+args))
030
=== modified file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/UbuntuProject.mimetypes.xml'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/UbuntuProject.mimetypes.xml 2016-06-09 08:47:42 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/UbuntuProject.mimetypes.xml 2016-10-18 07:57:32 +0000
@@ -17,4 +17,9 @@
17 <sub-class-of type="application/json"/>17 <sub-class-of type="application/json"/>
18 <glob pattern="manifest.json*"/>18 <glob pattern="manifest.json*"/>
19 </mime-type>19 </mime-type>
20 <mime-type type="application/x-snapcraft">
21 <comment>Snapcraft project file</comment>
22 <sub-class-of type="application/x-yaml"/>
23 <glob pattern="snapcraft.yaml"/>
24 </mime-type>
20</mime-info>25</mime-info>
2126
=== added directory 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project'
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfiguration.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfiguration.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfiguration.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,41 @@
1#include "snapcraftbuildconfiguration.h"
2
3#include <ubuntu/ubuntuconstants.h>
4
5namespace Ubuntu {
6namespace Internal {
7
8SnapcraftBuildConfiguration::SnapcraftBuildConfiguration(ProjectExplorer::Target *target)
9 : ProjectExplorer::BuildConfiguration(target, Constants::SNAPCRAFT_BUILDCONFIGURATION_ID)
10{
11
12}
13
14SnapcraftBuildConfiguration::SnapcraftBuildConfiguration(ProjectExplorer::Target *target, ProjectExplorer::BuildConfiguration *source)
15 : ProjectExplorer::BuildConfiguration(target, source)
16{
17
18}
19
20bool SnapcraftBuildConfiguration::fromMap(const QVariantMap &map)
21{
22 return ProjectExplorer::BuildConfiguration::fromMap(map);
23}
24
25QVariantMap SnapcraftBuildConfiguration::toMap() const
26{
27 return ProjectExplorer::BuildConfiguration::toMap();
28}
29
30ProjectExplorer::NamedWidget *SnapcraftBuildConfiguration::createConfigWidget()
31{
32 return nullptr;
33}
34
35ProjectExplorer::BuildConfiguration::BuildType SnapcraftBuildConfiguration::buildType() const
36{
37 return ProjectExplorer::BuildConfiguration::Unknown;
38}
39
40} // namespace Internal
41} // namespace Ubuntu
042
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfiguration.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfiguration.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfiguration.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,33 @@
1#ifndef UBUNTU_INTERNAL_SNAPCRAFTBUILDCONFIGURATION_H
2#define UBUNTU_INTERNAL_SNAPCRAFTBUILDCONFIGURATION_H
3
4#include <projectexplorer/buildconfiguration.h>
5
6namespace Ubuntu {
7namespace Internal {
8
9class SnapcraftBuildConfigurationFactory;
10
11class SnapcraftBuildConfiguration : public ProjectExplorer::BuildConfiguration
12{
13 Q_OBJECT
14
15public:
16 friend class SnapcraftBuildConfigurationFactory;
17 // ProjectConfiguration interface
18 virtual bool fromMap(const QVariantMap &map) override;
19 virtual QVariantMap toMap() const override;
20
21 // BuildConfiguration interface
22 virtual ProjectExplorer::NamedWidget *createConfigWidget() override;
23 virtual BuildType buildType() const override;
24
25protected:
26 SnapcraftBuildConfiguration(ProjectExplorer::Target *target);
27 SnapcraftBuildConfiguration(ProjectExplorer::Target *target, BuildConfiguration *source);
28};
29
30} // namespace Internal
31} // namespace Ubuntu
32
33#endif // UBUNTU_INTERNAL_SNAPCRAFTBUILDCONFIGURATION_H
034
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfigurationfactory.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfigurationfactory.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfigurationfactory.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,145 @@
1#include "snapcraftbuildconfigurationfactory.h"
2
3#include "snapcraftproject.h"
4#include "snapcraftbuildconfiguration.h"
5#include "snapcraftrsyncstep.h"
6#include "snapcraftstep.h"
7#include <ubuntu/ubuntuconstants.h>
8
9#include <projectexplorer/target.h>
10#include <projectexplorer/kit.h>
11#include <projectexplorer/projectmacroexpander.h>
12#include <projectexplorer/projectexplorerconstants.h>
13#include <projectexplorer/buildsteplist.h>
14
15#include <coreplugin/documentmanager.h>
16#include <utils/mimetypes/mimedatabase.h>
17#include <utils/qtcassert.h>
18
19namespace Ubuntu {
20namespace Internal {
21
22SnapcraftBuildInfo::SnapcraftBuildInfo(const SnapcraftBuildConfigurationFactory *factory)
23 :ProjectExplorer::BuildInfo(factory)
24{
25
26}
27
28SnapcraftBuildConfigurationFactory::SnapcraftBuildConfigurationFactory()
29{
30
31}
32
33QList<ProjectExplorer::BuildInfo *> SnapcraftBuildConfigurationFactory::availableBuilds(const ProjectExplorer::Target *parent) const
34{
35 if (qobject_cast<SnapcraftProject *>(parent->project()))
36 return {};
37
38 QList<ProjectExplorer::BuildInfo *> infoList;
39 ProjectExplorer::BuildInfo *info = createBuildInfo(parent->kit(), parent->project()->projectFilePath().toString());
40 if (info)
41 infoList << info;
42
43 return infoList;
44}
45
46int SnapcraftBuildConfigurationFactory::priority(const ProjectExplorer::Target *) const
47{
48 return 0;
49}
50
51int SnapcraftBuildConfigurationFactory::priority(const ProjectExplorer::Kit *, const QString &) const
52{
53 return 0;
54}
55
56QList<ProjectExplorer::BuildInfo *> SnapcraftBuildConfigurationFactory::availableSetups(const ProjectExplorer::Kit *k, const QString &projectPath) const
57{
58 Utils::MimeDatabase db;
59
60 auto mimeType = db.mimeTypeForFile(projectPath);
61 if (!mimeType.matchesName(Constants::SNAPCRAFT_PROJECT_MIMETYPE))
62 return {};
63
64 QList<ProjectExplorer::BuildInfo *> infoList;
65 ProjectExplorer::BuildInfo *info = createBuildInfo(k, projectPath);
66 if (info)
67 infoList << info;
68
69 return infoList;
70}
71
72ProjectExplorer::BuildConfiguration *SnapcraftBuildConfigurationFactory::create(ProjectExplorer::Target *parent, const ProjectExplorer::BuildInfo *info) const
73{
74 SnapcraftBuildConfiguration *conf = new SnapcraftBuildConfiguration(parent);
75
76 conf->setDisplayName(info->displayName);
77 conf->setBuildDirectory(info->buildDirectory);
78
79 ProjectExplorer::BuildStepList *bs = conf->stepList(ProjectExplorer::Constants::BUILDSTEPS_BUILD);
80 bs->insertStep(0, new SnapcraftRsyncStep(bs));
81 bs->insertStep(1, new SnapcraftStep(bs));
82
83 return conf;
84}
85
86bool SnapcraftBuildConfigurationFactory::canRestore(const ProjectExplorer::Target *, const QVariantMap &map) const
87{
88 return (ProjectExplorer::idFromMap(map) == Constants::SNAPCRAFT_BUILDCONFIGURATION_ID);
89}
90
91ProjectExplorer::BuildConfiguration *SnapcraftBuildConfigurationFactory::restore(ProjectExplorer::Target *parent, const QVariantMap &map)
92{
93 QTC_ASSERT(parent, return nullptr);
94 SnapcraftBuildConfiguration *conf = new SnapcraftBuildConfiguration(parent);
95 if (conf->fromMap(map))
96 return conf;
97
98 delete conf;
99 return nullptr;
100}
101
102bool SnapcraftBuildConfigurationFactory::canClone(const ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *product) const
103{
104 QTC_ASSERT(parent, return false);
105 QTC_ASSERT(product, return false);
106 return (product->id() == Constants::SNAPCRAFT_BUILDCONFIGURATION_ID);
107}
108
109ProjectExplorer::BuildConfiguration *SnapcraftBuildConfigurationFactory::clone(ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *product)
110{
111 QTC_ASSERT(parent, return nullptr);
112 QTC_ASSERT(product, return nullptr);
113
114 SnapcraftBuildConfiguration *conf = new SnapcraftBuildConfiguration(parent, product);
115 return conf;
116}
117
118ProjectExplorer::BuildInfo *SnapcraftBuildConfigurationFactory::createBuildInfo(const ProjectExplorer::Kit *k, const QString &projectPath) const
119{
120 SnapcraftBuildInfo *build = new SnapcraftBuildInfo(this);
121 build->buildType = ProjectExplorer::BuildConfiguration::Release;
122 build->typeName = tr("Build");
123 build->kitId = k->id();
124 build->displayName = ProjectExplorer::BuildConfiguration::buildTypeName(build->buildType);
125 build->buildDirectory = shadowBuildDirectory(k, projectPath);
126 return {build};
127}
128
129Utils::FileName SnapcraftBuildConfigurationFactory::shadowBuildDirectory(const ProjectExplorer::Kit *k, const QString &projectPath) const
130{
131
132 Utils::FileName projectDir = ProjectExplorer::Project::projectDirectory(Utils::FileName::fromString(projectPath));
133 const QString projectName = projectDir.fileName();
134
135 ProjectExplorer::ProjectMacroExpander expander(projectPath, projectName,
136 k, tr("build"),
137 ProjectExplorer::BuildConfiguration::Release);
138
139 QString buildPath = expander.expand(Core::DocumentManager::buildDirectory());
140 return Utils::FileName::fromString(QDir::cleanPath(QDir(projectDir.toString()).absoluteFilePath(buildPath)));
141}
142
143
144} // namespace Internal
145} // namespace Ubuntu
0146
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfigurationfactory.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfigurationfactory.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildconfigurationfactory.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,44 @@
1#ifndef UBUNTU_INTERNAL_SNAPCRAFTBUILDCONFIGURATIONFACTORY_H
2#define UBUNTU_INTERNAL_SNAPCRAFTBUILDCONFIGURATIONFACTORY_H
3
4#include <projectexplorer/buildconfiguration.h>
5#include <projectexplorer/buildinfo.h>
6
7namespace Ubuntu {
8namespace Internal {
9
10class SnapcraftBuildConfigurationFactory;
11
12class SnapcraftBuildInfo : public ProjectExplorer::BuildInfo
13{
14public:
15 SnapcraftBuildInfo(const SnapcraftBuildConfigurationFactory *factory);
16};
17
18class SnapcraftBuildConfigurationFactory : public ProjectExplorer::IBuildConfigurationFactory
19{
20public:
21 SnapcraftBuildConfigurationFactory();
22
23 // IBuildConfigurationFactory interface
24 virtual QList<ProjectExplorer::BuildInfo *> availableBuilds(const ProjectExplorer::Target *parent) const override;
25
26 virtual int priority(const ProjectExplorer::Target *parent) const override;
27 virtual int priority(const ProjectExplorer::Kit *k, const QString &projectPath) const override;
28
29 virtual QList<ProjectExplorer::BuildInfo *> availableSetups(const ProjectExplorer::Kit *k, const QString &projectPath) const override;
30 virtual ProjectExplorer::BuildConfiguration *create(ProjectExplorer::Target *parent, const ProjectExplorer::BuildInfo *info) const override;
31 virtual bool canRestore(const ProjectExplorer::Target *parent, const QVariantMap &map) const override;
32 virtual ProjectExplorer::BuildConfiguration *restore(ProjectExplorer::Target *parent, const QVariantMap &map) override;
33 virtual bool canClone(const ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *product) const override;
34 virtual ProjectExplorer::BuildConfiguration *clone(ProjectExplorer::Target *parent, ProjectExplorer::BuildConfiguration *product) override;
35
36private:
37 ProjectExplorer::BuildInfo *createBuildInfo (const ProjectExplorer::Kit *k, const QString &projectPath) const;
38 Utils::FileName shadowBuildDirectory(const ProjectExplorer::Kit *k, const QString &projectPath) const;
39};
40
41} // namespace Internal
42} // namespace Ubuntu
43
44#endif // UBUNTU_INTERNAL_SNAPCRAFTBUILDCONFIGURATIONFACTORY_H
045
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildstepfactory.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildstepfactory.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildstepfactory.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,65 @@
1#include "snapcraftbuildstepfactory.h"
2#include "snapcraftrsyncstep.h"
3#include "snapcraftstep.h"
4#include "snapcraftproject.h"
5
6#include <ubuntu/ubuntuconstants.h>
7
8#include <projectexplorer/projectexplorerconstants.h>
9#include <projectexplorer/buildsteplist.h>
10#include <projectexplorer/target.h>
11#include <utils/algorithm.h>
12
13namespace Ubuntu {
14namespace Internal {
15
16SnapcraftBuildStepFactory::SnapcraftBuildStepFactory(QObject *parent) : ProjectExplorer::IBuildStepFactory (parent)
17{
18
19}
20
21QList<ProjectExplorer::BuildStepInfo> SnapcraftBuildStepFactory::availableSteps(ProjectExplorer::BuildStepList *parent) const
22{
23 if (parent->id() != ProjectExplorer::Constants::BUILDSTEPS_BUILD)
24 return {};
25
26 if (!parent->target() || !qobject_cast<SnapcraftProject *>(parent->target()->project()))
27 return {};
28
29 return {
30 ProjectExplorer::BuildStepInfo(Constants::SNAPCRAFT_RSYNCBUILSSTEP_ID, tr("Prepare build")),
31 ProjectExplorer::BuildStepInfo(Constants::SNAPCRAFT_BUILDSTEP_ID, tr("Snapcraft"))
32 };
33}
34
35ProjectExplorer::BuildStep *SnapcraftBuildStepFactory::create(ProjectExplorer::BuildStepList *parent, Core::Id id)
36{
37 if (!Utils::contains(availableSteps(parent), [&id](const ProjectExplorer::BuildStepInfo &step){return id == step.id;}))
38 return nullptr;
39
40 if (id == Constants::SNAPCRAFT_RSYNCBUILSSTEP_ID) {
41 return new SnapcraftRsyncStep(parent);
42 } else if (id == Constants::SNAPCRAFT_BUILDSTEP_ID) {
43 return new SnapcraftStep(parent);
44 }
45
46 return nullptr;
47}
48
49ProjectExplorer::BuildStep *SnapcraftBuildStepFactory::clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product)
50{
51 Core::Id id = product->id();
52 if (!Utils::contains(availableSteps(parent), [&id](const ProjectExplorer::BuildStepInfo &step){return id == step.id;}))
53 return nullptr;
54
55 if (id == Constants::SNAPCRAFT_RSYNCBUILSSTEP_ID) {
56 return new SnapcraftRsyncStep(parent, static_cast<SnapcraftRsyncStep *>(product));
57 } else if (id == Constants::SNAPCRAFT_BUILDSTEP_ID) {
58 return new SnapcraftStep(parent, static_cast<SnapcraftStep *>(product));
59 }
60
61 return nullptr;
62}
63
64} // namespace Internal
65} // namespace Ubuntu
066
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildstepfactory.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildstepfactory.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftbuildstepfactory.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,25 @@
1#ifndef UBUNTU_INTERNAL_SNAPCRAFTBUILDSTEPFACTORY_H
2#define UBUNTU_INTERNAL_SNAPCRAFTBUILDSTEPFACTORY_H
3
4#include <projectexplorer/buildstep.h>
5
6namespace Ubuntu {
7namespace Internal {
8
9class SnapcraftBuildStepFactory : public ProjectExplorer::IBuildStepFactory
10{
11 Q_OBJECT
12public:
13 SnapcraftBuildStepFactory(QObject *parent = nullptr);
14
15 // IBuildStepFactory interface
16public:
17 virtual QList<ProjectExplorer::BuildStepInfo> availableSteps(ProjectExplorer::BuildStepList *parent) const override;
18 virtual ProjectExplorer::BuildStep *create(ProjectExplorer::BuildStepList *parent, Core::Id id) override;
19 virtual ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) override;
20};
21
22} // namespace Internal
23} // namespace Ubuntu
24
25#endif // UBUNTU_INTERNAL_SNAPCRAFTBUILDSTEPFACTORY_H
026
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftproject.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftproject.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftproject.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,156 @@
1/*
2 * Copyright 2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 2.1.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Author: Benjamin Zeller <benjamin.zeller@canonical.com>
17 */
18
19#include "snapcraftproject.h"
20#include "snapcraftprojectnode.h"
21
22#include <coreplugin/modemanager.h>
23#include <coreplugin/icontext.h>
24#include <coreplugin/documentmanager.h>
25#include <projectexplorer/projectexplorerconstants.h>
26#include <projectexplorer/kitinformation.h>
27#include <projectexplorer/toolchain.h>
28#include <projectexplorer/projectmacroexpander.h>
29#include <qmljs/qmljssimplereader.h>
30#include <qtsupport/qtkitinformation.h>
31#include <qtsupport/qtsupportconstants.h>
32
33#pragma GCC diagnostic push
34#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
35#include <yaml-cpp/yaml.h>
36#pragma GCC diagnostic pop
37
38
39using namespace Ubuntu;
40using namespace Ubuntu::Internal;
41
42SnapcraftProject::SnapcraftProject(SnapcraftProjectManager *manager, const Utils::FileName &fileName)
43 : m_manager(manager),
44 m_fileName(fileName),
45 m_watcher(new QFileSystemWatcher)
46{
47
48 setId(Constants::SNAPCRAFT_PROJECT_ID);
49
50 setProjectContext(Core::Context(Constants::SNAPCRAFT_PROJECT_PROJECTCONTEXT));
51
52
53 m_file = QPointer<SnapcraftProjectFile>(new SnapcraftProjectFile());
54 Core::DocumentManager::addDocument(m_file.data(), true);
55 setDocument(m_file.data());
56
57 m_file->setFilePath(fileName);
58
59 m_rootNode = QSharedPointer<SnapcraftProjectNode>(new SnapcraftProjectNode(this, fileName, &m_watcher));
60
61 ProjectExplorer::FileNode *projectFileNode = new ProjectExplorer::FileNode(fileName, ProjectExplorer::ProjectFileType, false);
62 m_rootNode->addFileNodes({projectFileNode});
63
64 connect(m_file, &SnapcraftProjectFile::changed, this, &SnapcraftProject::asyncUpdate);
65
66 //we show magic directories that are not listed in the snapcraft.yaml file, therefore we need to watch the directory
67 //if one of those is changed or removed
68 m_watcher.addPath(projectDirectory().toFileInfo().absoluteFilePath());
69 connect(&m_watcher, &QFileSystemWatcher::directoryChanged, this, &SnapcraftProject::maybeUpdate);
70
71 QMetaObject::invokeMethod(this, "asyncUpdate", Qt::QueuedConnection);
72}
73
74QString SnapcraftProject::displayName() const {
75 return m_rootNode->displayName();
76}
77
78ProjectExplorer::IProjectManager *SnapcraftProject::projectManager() const {
79 return m_manager;
80}
81
82ProjectExplorer::ProjectNode *SnapcraftProject::rootProjectNode() const {
83 return m_rootNode.data();
84}
85
86QStringList SnapcraftProject::files(FilesMode) const {
87 QStringList files;
88 //enumChild(projectDir(), files);
89 return files;
90}
91
92bool SnapcraftProject::supportsKit(ProjectExplorer::Kit *, QString *) const
93{
94#if 0
95 UbuntuKitMatcher matcher;
96 if (!matcher.matches(k)) {
97 if(errorMessage)
98 *errorMessage = tr("Only Desktop and Ubuntu Kits are supported");
99 return false;
100 }
101#endif
102 return true;
103}
104
105bool SnapcraftProject::needsConfiguration() const
106{
107 return targets().size() == 0;
108}
109
110bool SnapcraftProject::requiresTargetPanel() const
111{
112 return true;
113}
114
115QString SnapcraftProject::shadowBuildDirectory(const QString &proFilePath
116 , const ProjectExplorer::Kit *k
117 , const QString &suffix
118 , const ProjectExplorer::BuildConfiguration::BuildType buildType)
119{
120 if (proFilePath.isEmpty())
121 return QString();
122
123 QFileInfo info(proFilePath);
124
125 QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(k);
126 if (version)
127 return info.absolutePath();
128
129 const QString projectName = QFileInfo(proFilePath).completeBaseName();
130 ProjectExplorer::ProjectMacroExpander expander(proFilePath, projectName, k, suffix, buildType);
131 QDir projectDir = QDir(projectDirectory(Utils::FileName::fromString(proFilePath)).toString());
132 QString buildPath = expander.expand(Core::DocumentManager::buildDirectory());
133 return QDir::cleanPath(projectDir.absoluteFilePath(buildPath));
134}
135
136void SnapcraftProject::asyncUpdate()
137{
138 qDebug()<<"Syncing from yaml";
139 try {
140 YAML::Node yaml = YAML::LoadFile(m_fileName.toString().toStdString());
141 if (!m_rootNode->syncFromYAMLNode(yaml)) {
142 qDebug()<<"Invalid YAML file";
143 }
144 } catch (const YAML::Exception &e) {
145 qDebug() << e.what();
146 }
147
148 emit displayNameChanged();
149}
150
151void SnapcraftProject::maybeUpdate(const QString &pathChanged)
152{
153 if (QFileInfo(pathChanged) == projectDirectory().toFileInfo()) {
154 asyncUpdate();
155 }
156}
0157
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftproject.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftproject.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftproject.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,88 @@
1/*
2 * Copyright 2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 2.1.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Author: Benjamin Zeller <benjamin.zeller@canonical.com>
17 */
18
19#ifndef SNAPCRAFTPROJECT_H
20#define SNAPCRAFTPROJECT_H
21
22#include "snapcraftprojectmanager.h"
23#include "snapcraftprojectfile.h"
24
25#include <ubuntu/ubuntuconstants.h>
26
27#include <projectexplorer/buildconfiguration.h>
28#include <projectexplorer/projectnodes.h>
29#include <projectexplorer/project.h>
30
31#include <QPointer>
32#include <QFileSystemWatcher>
33
34#include <yaml-cpp/node/node.h>
35
36namespace Ubuntu {
37namespace Internal {
38
39class UbuntuProjectManager;
40class SnapcraftProjectNode;
41
42class SnapcraftProject : public ProjectExplorer::Project
43{
44 Q_OBJECT
45
46public:
47 SnapcraftProject(SnapcraftProjectManager *manager, const Utils::FileName &fileName);
48
49 QString displayName() const override;
50 ProjectExplorer::IProjectManager *projectManager() const override;
51
52 ProjectExplorer::ProjectNode *rootProjectNode() const override;
53 QStringList files(FilesMode fileMode) const override;
54
55 QDir projectDir() const {
56 return projectDirectory().toString();
57 }
58
59 QString filesFileName() const {
60 return m_fileName.toString();
61 }
62
63 // Project interface
64 bool supportsKit(ProjectExplorer::Kit *k, QString *errorMessage) const override;
65 bool needsConfiguration() const override;
66 bool requiresTargetPanel() const override;
67
68 static QString shadowBuildDirectory(const QString &proFilePath, const ProjectExplorer::Kit *k,
69 const QString &suffix = QString(),
70 const ProjectExplorer::BuildConfiguration::BuildType buildType = ProjectExplorer::BuildConfiguration::Unknown);
71
72protected slots:
73 void asyncUpdate ();
74 void maybeUpdate (const QString &pathChanged);
75
76private:
77 SnapcraftProjectManager *m_manager;
78 QString m_projectName;
79 QPointer<SnapcraftProjectFile> m_file;
80
81 Utils::FileName m_fileName;
82 QSharedPointer<SnapcraftProjectNode> m_rootNode;
83 QFileSystemWatcher m_watcher;
84};
85}
86}
87
88#endif // SNAPCRAFTPROJECT_H
089
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectfile.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectfile.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectfile.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,42 @@
1/*
2 * Copyright 2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 2.1.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Author: Benjamin Zeller <benjamin.zeller@canonical.com>
17 */
18
19#include "snapcraftprojectfile.h"
20
21using namespace Ubuntu::Internal;
22
23SnapcraftProjectFile::SnapcraftProjectFile(Core::Id id)
24 : TextEditor::TextDocument(id)
25{
26}
27
28Core::IDocument::ReloadBehavior SnapcraftProjectFile::reloadBehavior(Core::IDocument::ChangeTrigger state, Core::IDocument::ChangeType type) const
29{
30 Q_UNUSED(state)
31 Q_UNUSED(type)
32 return BehaviorSilent;
33}
34
35bool SnapcraftProjectFile::reload(QString *errorString, Core::IDocument::ReloadFlag flag, Core::IDocument::ChangeType type)
36{
37 if (type != TypePermissions) {
38 emit changed();
39 }
40
41 return TextDocument::reload(errorString, flag, type);
42}
043
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectfile.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectfile.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectfile.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,48 @@
1/*
2 * Copyright 2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 2.1.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Author: Benjamin Zeller <benjamin.zeller@canonical.com>
17 */
18
19#ifndef SNAPCRAFTPROJECTFILE_H
20#define SNAPCRAFTPROJECTFILE_H
21
22#include <QObject>
23#include <ubuntu/ubuntuconstants.h>
24
25#include <texteditor/textdocument.h>
26#include <utils/fileutils.h>
27
28namespace Ubuntu {
29namespace Internal {
30class SnapcraftProject;
31class SnapcraftProjectFile : public TextEditor::TextDocument
32{
33 Q_OBJECT
34public:
35 SnapcraftProjectFile(Core::Id id = Core::Id());
36
37 // IDocument interface
38 virtual ReloadBehavior reloadBehavior(ChangeTrigger state, ChangeType type) const override;
39 virtual bool reload(QString *errorString, ReloadFlag flag, ChangeType type) override;
40
41signals:
42 void changed ();
43
44};
45}
46}
47
48#endif // SNAPCRAFTPROJECTFILE_H
049
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectmanager.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectmanager.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectmanager.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,64 @@
1/*
2 * Copyright 2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 2.1.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Author: Benjamin Zeller <benjamin.zeller@canonical.com>
17 */
18
19#include "snapcraftprojectmanager.h"
20#include "snapcraftproject.h"
21
22#include <ubuntu/ubuntuconstants.h>
23
24#include <projectexplorer/session.h>
25#include <coreplugin/idocument.h>
26#include <utils/fileutils.h>
27
28#include <QFileInfo>
29
30
31namespace Ubuntu {
32namespace Internal {
33
34SnapcraftProjectManager::SnapcraftProjectManager()
35{
36
37}
38
39QString SnapcraftProjectManager::mimeType() const
40{
41 return QLatin1String(Constants::SNAPCRAFT_PROJECT_MIMETYPE);
42}
43
44ProjectExplorer::Project *SnapcraftProjectManager::openProject(const QString &fileName, QString *errorString)
45{
46 QFileInfo fileInfo(fileName);
47
48 foreach (ProjectExplorer::Project *pi, ProjectExplorer::SessionManager::projects()) {
49 if (fileName == pi->document()->filePath().toString()) {
50 if (errorString)
51 *errorString = tr("Failed opening project '%1': Project already open") .arg(QDir::toNativeSeparators(fileName));
52 return 0;
53 }
54 }
55
56 if (fileInfo.isFile())
57 return new SnapcraftProject(this, Utils::FileName(fileInfo));
58
59 *errorString = tr("Failed opening project '%1': Project file is not a file").arg(QDir::toNativeSeparators(fileName));
60 return 0;
61}
62
63} // namespace Internal
64} // namespace Ubuntu
065
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectmanager.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectmanager.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectmanager.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,40 @@
1/*
2 * Copyright 2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 2.1.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Author: Benjamin Zeller <benjamin.zeller@canonical.com>
17 */
18
19#ifndef UBUNTU_INTERNAL_SNAPCRAFTPROJECTMANAGER_H
20#define UBUNTU_INTERNAL_SNAPCRAFTPROJECTMANAGER_H
21
22#include <projectexplorer/iprojectmanager.h>
23
24namespace Ubuntu {
25namespace Internal {
26
27class SnapcraftProjectManager : public ProjectExplorer::IProjectManager
28{
29public:
30 SnapcraftProjectManager();
31
32 // IProjectManager interface
33 virtual QString mimeType() const override;
34 virtual ProjectExplorer::Project *openProject(const QString &fileName, QString *errorString) override;
35};
36
37} // namespace Internal
38} // namespace Ubuntu
39
40#endif // UBUNTU_INTERNAL_SNAPCRAFTPROJECTMANAGER_H
041
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectnode.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectnode.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectnode.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,496 @@
1/*
2 * Copyright 2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 2.1.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Author: Benjamin Zeller <benjamin.zeller@canonical.com>
17 */
18
19#include "snapcraftprojectnode.h"
20
21#include <projectexplorer/nodesvisitor.h>
22#include <coreplugin/fileiconprovider.h>
23#include <ubuntu/ubuntuconstants.h>
24
25#include <QFileInfo>
26#include <QDir>
27#include <QTimer>
28#include <QFileSystemWatcher>
29
30#pragma GCC diagnostic push
31#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
32#include <yaml-cpp/yaml.h>
33#pragma GCC diagnostic pop
34
35namespace Ubuntu {
36namespace Internal {
37
38static QIcon generateIcon(const QString &overlay) {
39 const QSize desiredSize = QSize(16, 16);
40
41 const QPixmap overlayPixmap(overlay);
42 const QIcon overlayIcon(overlayPixmap.scaled(12, 12));
43 const QPixmap pixmap
44 = Core::FileIconProvider::overlayIcon(QStyle::SP_DirIcon, overlayIcon, desiredSize);
45
46 QIcon result;
47 result.addPixmap(pixmap);
48
49 return result;
50}
51
52static QIcon generateProjectIcon () {
53 static QIcon projectIcon;
54 if (projectIcon.isNull())
55 projectIcon = generateIcon(QString::fromLatin1(Constants::UBUNTU_ICON));
56
57 return projectIcon;
58}
59
60SnapcraftProjectNode::SnapcraftProjectNode(SnapcraftProject *rootProject, const Utils::FileName &projectFilePath, QFileSystemWatcher *watcher)
61 : ProjectExplorer::ProjectNode (projectFilePath),
62 m_rootProject(rootProject),
63 m_watcher(watcher)
64{
65 setDisplayName(projectFilePath.parentDir().toString());
66 setIcon(generateProjectIcon());
67}
68
69SnapcraftProjectNode::~SnapcraftProjectNode()
70{
71 if (m_watcher) {
72
73 }
74}
75
76bool SnapcraftProjectNode::syncFromYAMLNode(YAML::Node rootNode)
77{
78 qDebug()<<"Sync from YAML node";
79 try {
80 QString displayName = QString::fromStdString(rootNode["name"].as<std::string>());
81 setDisplayName(displayName);
82
83 YAML::Node parts = rootNode["parts"];
84 if (!parts.IsMap()) {
85 qDebug()<<"Parts is not a map";
86 return false;
87 }
88
89 QList<ProjectExplorer::FolderNode *> existingNodes = subFolderNodes();
90 QList<ProjectExplorer::FolderNode *> nodesToRemove;
91 QList<ProjectExplorer::FolderNode *> nodesToAdd;
92
93 QStringList partsFromYaml;
94 QStringList existingParts;
95
96 for (const auto &part : existingNodes) {
97 existingParts << part->displayName();
98 }
99
100 //iterate over the parts
101 for (auto it = parts.begin(); it != parts.end(); ++it) {
102
103 YAML::Node subProject = it->second;
104 QString partName = QString::fromStdString(it->first.as<std::string>());
105 //QString subType = QString::fromStdString(subProject["plugin"].as<std::string>());
106 QString source = QDir::cleanPath(QString::fromStdString(subProject["source"].as<std::string>()));
107
108 partsFromYaml << partName;
109
110 // We only show a part if it locally exists and is a directory
111 QString sourcePathName = QDir::cleanPath(filePath().parentDir().appendPath(source).toString());
112 Utils::FileName sourcePath = Utils::FileName::fromString(sourcePathName);
113 if (sourcePath.exists() && sourcePath.toFileInfo().isDir()) {
114
115 int idx = existingParts.indexOf(partName);
116 if (idx >= 0) {
117 //check if source is still the same
118 SnapcraftGenericPartNode *n = static_cast<SnapcraftGenericPartNode *>(existingNodes.at(idx));
119 if (n->filePath() == sourcePath)
120 continue;
121
122 nodesToRemove << n;
123 }
124
125 SnapcraftGenericPartNode *partNode = new SnapcraftGenericPartNode(partName, sourcePath, m_watcher);
126 nodesToAdd << partNode;
127 }
128 }
129
130
131 //snapcraft has magic directories, like setup, we want to show in the project tree
132 QStringList magicSnapcraftDirs{
133 QStringLiteral("setup")
134 };
135
136 for (const QString &magicDir: magicSnapcraftDirs) {
137 Utils::FileName dirPath = filePath().parentDir().appendPath(magicDir);
138 if (dirPath.exists()) {
139 partsFromYaml << magicDir;
140 if(!existingParts.contains(magicDir)) {
141 SnapcraftGenericPartNode *partNode = new SnapcraftGenericPartNode(magicDir, dirPath, m_watcher);
142 nodesToAdd << partNode;
143 }
144 }
145 }
146
147 QSet<QString> obsoleteParts = existingParts.toSet() - partsFromYaml.toSet();
148 qDebug()<<"Parts in yaml"<<partsFromYaml;
149 qDebug()<<"Currently known parts"<<existingParts;
150 qDebug()<<"Parts now obsolete: "<<obsoleteParts;
151 for (const auto &part : obsoleteParts) {
152 int idx = existingParts.indexOf(part);
153 if (idx >= 0)
154 nodesToRemove << existingNodes.at(idx);
155 }
156
157 //remove old nodes
158 removeFolderNodes(nodesToRemove);
159 addFolderNodes(nodesToAdd);
160 } catch (const YAML::Exception &e) {
161 qDebug()<<"ERRROR ERROR ERROR "<<e.what();
162 return false;
163 }
164
165 return true;
166}
167
168/*!
169 \class Ubuntu::Internal::SnapcraftGenericPartNode
170 \brief The SnapcraftGenericPartNode class
171 Fallback node if the subproject type can not be handled by the plugin directly
172 */
173
174static void enumChild(const QDir &dir, QSet<Utils::FileName> &dirs, QSet<Utils::FileName> &res) {
175 foreach (const QFileInfo &info, dir.entryInfoList(QDir::NoDotAndDotDot|QDir::Dirs|QDir::Files|QDir::Hidden)) {
176 if (info.isDir()) {
177 dirs << Utils::FileName(info);
178 enumChild(QDir(info.absoluteFilePath()), dirs, res);
179 } else {
180 res.insert(Utils::FileName(info));
181 }
182 }
183}
184
185SnapcraftGenericPartNode::SnapcraftGenericPartNode(const QString &partName, const Utils::FileName &folderPath, QFileSystemWatcher *watcher)
186 : ProjectExplorer::FolderNode (folderPath, ProjectExplorer::FolderNodeType, partName)
187 , m_watcher(watcher)
188{
189 scheduleProjectScan();
190
191 setIcon(generateProjectIcon());
192
193 if (watcher->addPath(folderPath.toString())) {
194 qDebug()<<"Added"<<folderPath.toString()<<"to watcher";
195 } else {
196 qDebug()<<"Failed to add"<<folderPath.toString()<<"to watcher";
197 }
198 m_watcherConnection = QObject::connect(watcher, &QFileSystemWatcher::directoryChanged, [this](const QString &path){
199 maybeScheduleProjectScan(path);
200 });
201}
202
203SnapcraftGenericPartNode::~SnapcraftGenericPartNode()
204{
205 //@BUG the watcher is still watching all the subdirs and files!
206 if (m_watcher) {
207 QString myPath = filePath().toFileInfo().absoluteFilePath();
208 QStringList watched = m_watcher->directories();
209 QStringList toRemove;
210 for(const QString &path: watched) {
211 if(path.startsWith(myPath))
212 toRemove << path;
213 }
214 m_watcher->removePaths(toRemove);
215 QObject::disconnect(m_watcherConnection);
216 }
217}
218
219void SnapcraftGenericPartNode::maybeScheduleProjectScan(const QString &changedPath)
220{
221 Utils::FileName changed = Utils::FileName::fromString(changedPath);
222 if (filePath().toFileInfo() == changed.toFileInfo())
223 scheduleProjectScan();
224}
225
226void SnapcraftGenericPartNode::scheduleProjectScan()
227{
228 if (m_scanning)
229 return;
230
231 qDebug()<<"Scheduling Project scan";
232
233 m_scanning = true;
234
235 QTimer *rescanTimer = new QTimer();
236 rescanTimer->setSingleShot(true);
237 rescanTimer->start(0);
238 QObject::connect(rescanTimer, &QTimer::timeout, [this, rescanTimer](){
239 qDebug()<<"Starting Project scan";
240 delete rescanTimer;
241 this->scanProjectDirectory();
242
243 m_scanning = false;
244 });
245}
246
247void SnapcraftGenericPartNode::removeFileNodes(const QList<Utils::FileName> &files)
248{
249 foreach(const Utils::FileName &f, files) {
250 if(f.toFileInfo().isDir())
251 continue;
252
253 FindFileNodesForFileVisitor vis(f);
254 this->accept(&vis);
255
256 for (ProjectExplorer::FileNode *node : vis.nodes()) {
257 node->parentFolderNode()->removeFileNodes({node});
258 }
259 }
260}
261
262void SnapcraftGenericPartNode::removeFolderNodes(QList<Utils::FileName> &dirs)
263{
264
265 qSort(dirs.begin(), dirs.end(),[](const Utils::FileName &a, const Utils::FileName &b){
266 return a.toFileInfo().absoluteFilePath() > b.toFileInfo().absoluteFilePath();
267 });
268
269 foreach(const Utils::FileName &f, dirs) {
270 FindNodesForFolderVisitor vis(f);
271 this->accept(&vis);
272
273 FindNodesForFolderVisitor visParent(f.parentDir());
274 this->accept(&visParent);
275
276 if(visParent.nodes().size()) {
277 m_watcher->removePath(f.toFileInfo().absoluteFilePath());
278 visParent.nodes()[0]->removeFolderNodes(vis.nodes());
279 }
280 }
281}
282
283QList<ProjectExplorer::ProjectAction> SnapcraftGenericPartNode::supportedActions(ProjectExplorer::Node *node) const
284{
285 static const QList<ProjectExplorer::ProjectAction> fileActions {
286 ProjectExplorer::ProjectAction::Rename,
287 ProjectExplorer::ProjectAction::RemoveFile
288 };
289 static const QList<ProjectExplorer::ProjectAction> folderActions {
290 ProjectExplorer::ProjectAction::AddNewFile,
291 ProjectExplorer::ProjectAction::RemoveFile
292 };
293 switch (node->nodeType()) {
294 case ProjectExplorer::FileNodeType:
295 return fileActions;
296 case ProjectExplorer::FolderNodeType:
297 case ProjectExplorer::ProjectNodeType:
298 return folderActions;
299 default:
300 return ProjectExplorer::FolderNode::supportedActions(node);
301 }
302}
303
304bool SnapcraftGenericPartNode::addFiles(const QStringList &, QStringList *)
305{
306 return true;
307}
308
309bool SnapcraftGenericPartNode::removeFiles(const QStringList &, QStringList *)
310{
311 return true;
312}
313
314bool SnapcraftGenericPartNode::deleteFiles(const QStringList &)
315{
316 return true;
317}
318
319void SnapcraftGenericPartNode::scanProjectDirectory()
320{
321 QSet<Utils::FileName> dirs;
322 QSet<Utils::FileName> files;
323 enumChild(QDir(filePath().toString()), dirs, files);
324
325 FindFilesAndDirsVisitor vis;
326 this->accept(&vis);
327
328 QSet<Utils::FileName> oldFiles = QSet<Utils::FileName>::fromList(vis.filePaths());
329 QSet<Utils::FileName> oldDirs = QSet<Utils::FileName>::fromList(vis.dirPaths());
330 QSet<Utils::FileName> newFiles(files);
331 QSet<Utils::FileName> newDirs(dirs);
332
333 QSet<Utils::FileName> filesToRemove = oldFiles - newFiles;
334 QSet<Utils::FileName> filesToAdd = newFiles - oldFiles;
335 QList<Utils::FileName> dirsToRemove = (oldDirs - newDirs).toList();
336 QSet<Utils::FileName> dirsToAdd = newDirs - oldDirs;
337
338 qDebug()<<"Removing dirs " <<dirsToRemove;
339 qDebug()<<"Adding dirs " <<dirsToAdd;
340 qDebug()<<"Removing files" <<filesToRemove;
341 qDebug()<<"Adding files " <<filesToAdd;
342
343 removeFileNodes(filesToRemove.toList());
344 removeFolderNodes(dirsToRemove);
345
346 for (const Utils::FileName &dir : dirsToAdd) {
347 Utils::FileName relativeName = dir.relativeChildPath(filePath());
348 QStringList relativeNameList = relativeName.toUserOutput().split(QDir::separator());
349 createOrFindFolder(relativeNameList);
350 }
351
352 for (const Utils::FileName &file : filesToAdd) {
353 Utils::FileName folderPath = file.parentDir();
354
355 //do not show the project file twice
356 if (file == projectNode()->filePath())
357 continue;
358
359 ProjectExplorer::FolderNode *parentNode = nullptr;
360 if (folderPath == filePath()) {
361 parentNode = this;
362 } else {
363 Utils::FileName relativeName = folderPath.relativeChildPath(filePath());
364 QStringList relativeNameList = relativeName.toUserOutput().split(QDir::separator());
365 parentNode = createOrFindFolder(relativeNameList);
366 }
367
368 ProjectExplorer::FileNode *fNode = new ProjectExplorer::FileNode(file, ProjectExplorer::UnknownFileType, false);
369 parentNode->addFileNodes({fNode});
370 }
371}
372
373ProjectExplorer::FolderNode *SnapcraftGenericPartNode::createOrFindFolder(const QStringList &folder)
374{
375 QStringList watches;
376 ProjectExplorer::FolderNode *currFolder = this;
377
378 Utils::FileName currentPath = filePath();
379
380 for (const QString &folderName: folder) {
381
382 QList<ProjectExplorer::FolderNode *> subnodes = currFolder->subFolderNodes();
383 currentPath = currentPath.appendPath(folderName);
384
385 auto check = [&folderName](ProjectExplorer::FolderNode *f) {
386 return f->filePath().fileName() == folderName;
387 };
388
389 auto it = std::find_if(subnodes.begin(), subnodes.end(), check);
390
391 if (it != subnodes.end()) {
392 //node exists already
393 currFolder = *it;
394 continue;
395 }
396
397 //does not exist lets create a new one
398 ProjectExplorer::FolderNode *fNode = new SnapcraftGenericPartFolderNode(currentPath, ProjectExplorer::FolderNodeType, folderName);
399 currFolder->addFolderNodes({fNode});
400 currFolder = fNode;
401
402 watches << currentPath.toFileInfo().absoluteFilePath();
403 }
404 qDebug()<<"Failed to add watches: "<<m_watcher->addPaths(watches);
405 return currFolder;
406}
407
408Utils::FileNameList FindFilesAndDirsVisitor::filePaths() const
409{
410 return m_filePaths;
411}
412
413Utils::FileNameList FindFilesAndDirsVisitor::dirPaths() const
414{
415 return m_dirPaths;
416}
417
418void FindFilesAndDirsVisitor::visitProjectNode(ProjectExplorer::ProjectNode *projectNode)
419{
420 visitFolderNode(projectNode);
421}
422
423void FindFilesAndDirsVisitor::visitFolderNode(ProjectExplorer::FolderNode *folderNode)
424{
425 if (folderNode->nodeType() != ProjectExplorer::ProjectNodeType)
426 m_dirPaths.append(folderNode->filePath());
427
428 for (const ProjectExplorer::FileNode *fileNode : folderNode->fileNodes())
429 m_filePaths.append(fileNode->filePath());
430}
431
432FindFileNodesForFileVisitor::FindFileNodesForFileVisitor(const Utils::FileName &f)
433 : m_file(f)
434{
435
436}
437
438QList<ProjectExplorer::FileNode *> FindFileNodesForFileVisitor::nodes() const
439{
440 return m_nodes;
441}
442
443void FindFileNodesForFileVisitor::visitProjectNode(ProjectExplorer::ProjectNode *projectNode)
444{
445 visitFolderNode(projectNode);
446}
447
448void FindFileNodesForFileVisitor::visitFolderNode(ProjectExplorer::FolderNode *folderNode)
449{
450 for(auto fileNode: folderNode->fileNodes()) {
451 if (fileNode->filePath() == m_file)
452 m_nodes.append(fileNode);
453 }
454}
455
456FindNodesForFolderVisitor::FindNodesForFolderVisitor(const Utils::FileName &f)
457 : m_folder(f)
458{
459
460}
461
462QList<ProjectExplorer::FolderNode *> FindNodesForFolderVisitor::nodes() const
463{
464 return m_nodes;
465}
466
467void FindNodesForFolderVisitor::visitProjectNode(ProjectExplorer::ProjectNode *)
468{
469 return;
470}
471
472void FindNodesForFolderVisitor::visitFolderNode(ProjectExplorer::FolderNode *folderNode)
473{
474 if (m_folder == folderNode->filePath())
475 m_nodes.append(folderNode);
476}
477
478bool SnapcraftGenericPartFolderNode::addFiles(const QStringList &, QStringList *)
479{
480 return true;
481}
482
483bool SnapcraftGenericPartFolderNode::removeFiles(const QStringList &, QStringList *)
484{
485 return true;
486}
487
488bool SnapcraftGenericPartFolderNode::deleteFiles(const QStringList &)
489{
490 return true;
491}
492
493
494
495} // namespace Internal
496} // namespace Ubuntu
0497
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectnode.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectnode.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftprojectnode.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,136 @@
1/*
2 * Copyright 2016 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 2.1.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Author: Benjamin Zeller <benjamin.zeller@canonical.com>
17 */
18
19#ifndef UBUNTU_INTERNAL_SNAPCRAFTPROJECTNODE_H
20#define UBUNTU_INTERNAL_SNAPCRAFTPROJECTNODE_H
21
22#include <projectexplorer/projectnodes.h>
23#include <projectexplorer/nodesvisitor.h>
24#include <yaml-cpp/node/node.h>
25
26#include <QPointer>
27
28class QFileSystemWatcher;
29
30namespace Ubuntu {
31namespace Internal {
32
33class FindFilesAndDirsVisitor : public ProjectExplorer::NodesVisitor {
34public:
35 Utils::FileNameList filePaths() const;
36 Utils::FileNameList dirPaths() const;
37
38 void visitProjectNode(ProjectExplorer::ProjectNode *projectNode) override;
39 void visitFolderNode(ProjectExplorer::FolderNode *folderNode) override;
40
41private:
42 Utils::FileNameList m_filePaths;
43 Utils::FileNameList m_dirPaths;
44};
45
46class FindFileNodesForFileVisitor : public ProjectExplorer::NodesVisitor {
47
48public:
49 FindFileNodesForFileVisitor (const Utils::FileName &f);
50 QList<ProjectExplorer::FileNode *> nodes () const;
51
52 void visitProjectNode(ProjectExplorer::ProjectNode *projectNode) override;
53 void visitFolderNode(ProjectExplorer::FolderNode *folderNode) override;
54
55private:
56 Utils::FileName m_file;
57 QList<ProjectExplorer::FileNode *> m_nodes;
58};
59
60class FindNodesForFolderVisitor : public ProjectExplorer::NodesVisitor {
61
62public:
63 FindNodesForFolderVisitor (const Utils::FileName &f);
64 QList<ProjectExplorer::FolderNode *> nodes () const;
65
66 void visitProjectNode(ProjectExplorer::ProjectNode *projectNode) override;
67 void visitFolderNode(ProjectExplorer::FolderNode *folderNode) override;
68
69private:
70 Utils::FileName m_folder;
71 QList<ProjectExplorer::FolderNode *> m_nodes;
72};
73
74class SnapcraftProject;
75class SnapcraftGenericPartNode;
76
77class SnapcraftProjectNode : public ProjectExplorer::ProjectNode
78{
79public:
80 SnapcraftProjectNode(SnapcraftProject *rootProject, const Utils::FileName &projectFilePath, QFileSystemWatcher *watcher);
81 ~SnapcraftProjectNode();
82
83 bool syncFromYAMLNode(YAML::Node rootNode);
84
85private:
86 SnapcraftProject *m_rootProject = nullptr;
87 QPointer<QFileSystemWatcher> m_watcher;
88};
89
90class SnapcraftGenericPartFolderNode : public ProjectExplorer::FolderNode
91{
92public:
93
94 using ProjectExplorer::FolderNode::FolderNode;
95
96 // FolderNode interface
97 virtual bool addFiles(const QStringList &filePaths, QStringList *notAdded) override;
98 virtual bool removeFiles(const QStringList &filePaths, QStringList *notRemoved) override;
99 virtual bool deleteFiles(const QStringList &filePaths) override;
100};
101
102class SnapcraftGenericPartNode : public ProjectExplorer::FolderNode
103{
104public:
105 SnapcraftGenericPartNode(const QString &partName, const Utils::FileName &folderPath, QFileSystemWatcher *watcher);
106 ~SnapcraftGenericPartNode();
107
108 void maybeScheduleProjectScan(const QString &changedPath);
109 void scheduleProjectScan();
110
111 using ProjectExplorer::FolderNode::removeFileNodes;
112 void removeFileNodes (const QList<Utils::FileName> &files);
113
114 using ProjectExplorer::FolderNode::removeFolderNodes;
115 void removeFolderNodes (QList<Utils::FileName> &dirs);
116
117 // Node interface
118 virtual QList<ProjectExplorer::ProjectAction> supportedActions(ProjectExplorer::Node *node) const override;
119 virtual bool addFiles(const QStringList &filePaths, QStringList *notAdded) override;
120 virtual bool removeFiles(const QStringList &filePaths, QStringList *notRemoved) override;
121 virtual bool deleteFiles(const QStringList &filePaths) override;
122
123protected:
124 ProjectExplorer::FolderNode *createOrFindFolder (const QStringList &folder);
125 void scanProjectDirectory ();
126
127private:
128 bool m_scanning = false;
129 QMetaObject::Connection m_watcherConnection;
130 QPointer<QFileSystemWatcher> m_watcher;
131};
132
133} // namespace Internal
134} // namespace Ubuntu
135
136#endif // UBUNTU_INTERNAL_SNAPCRAFTPROJECTNODE_H
0137
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftrsyncstep.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftrsyncstep.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftrsyncstep.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,51 @@
1#include "snapcraftrsyncstep.h"
2#include "snapcraftproject.h"
3#include "snapcraftbuildconfiguration.h"
4
5#include <ubuntu/ubuntuconstants.h>
6
7#include <projectexplorer/target.h>
8
9namespace Ubuntu {
10namespace Internal {
11
12SnapcraftRsyncStep::SnapcraftRsyncStep(ProjectExplorer::BuildStepList *bsl)
13 : ProjectExplorer::AbstractProcessStep(bsl, Constants::SNAPCRAFT_RSYNCBUILSSTEP_ID)
14{
15 setDefaultDisplayName(tr("Prepare build"));
16}
17
18SnapcraftRsyncStep::SnapcraftRsyncStep(ProjectExplorer::BuildStepList *bsl, SnapcraftRsyncStep *bs)
19 : ProjectExplorer::AbstractProcessStep(bsl, bs)
20{
21
22}
23
24bool SnapcraftRsyncStep::init(QList<const ProjectExplorer::BuildStep *> &)
25{
26 QString projectDir = target()->project()->projectDirectory().toString();
27
28 ProjectExplorer::BuildConfiguration *bc = target()->activeBuildConfiguration();
29 if(!bc)
30 return false;
31
32 ProjectExplorer::ProcessParameters *param = processParameters();
33 param->setWorkingDirectory(bc->buildDirectory().toUserOutput());
34 param->setCommand(QStringLiteral("rsync"));
35 param->setArguments(QString::fromLatin1("-a --delete \"%1/\" \"./\"")
36 .arg(QDir::cleanPath(projectDir)));
37 param->setMacroExpander(bc->macroExpander());
38 param->setEnvironment(bc->environment());
39
40 return true;
41}
42
43ProjectExplorer::BuildStepConfigWidget *SnapcraftRsyncStep::createConfigWidget()
44{
45 return new ProjectExplorer::SimpleBuildStepConfigWidget(this);
46}
47
48
49
50} // namespace Internal
51} // namespace Ubuntu
052
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftrsyncstep.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftrsyncstep.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftrsyncstep.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,31 @@
1#ifndef UBUNTU_INTERNAL_SNAPCRAFTRSYNCSTEP_H
2#define UBUNTU_INTERNAL_SNAPCRAFTRSYNCSTEP_H
3
4#include <projectexplorer/abstractprocessstep.h>
5
6namespace Ubuntu {
7namespace Internal {
8
9class SnapcraftBuildStepFactory;
10class SnapcraftBuildConfigurationFactory;
11
12class SnapcraftRsyncStep : public ProjectExplorer::AbstractProcessStep
13{
14 Q_OBJECT
15public:
16 friend class SnapcraftBuildStepFactory;
17 friend class SnapcraftBuildConfigurationFactory;
18
19 // BuildStep interface
20 virtual bool init(QList<const ProjectExplorer::BuildStep *> &earlierSteps) override;
21 virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
22
23protected:
24 SnapcraftRsyncStep(ProjectExplorer::BuildStepList *bsl);
25 SnapcraftRsyncStep(ProjectExplorer::BuildStepList *bsl, SnapcraftRsyncStep *bs);
26};
27
28} // namespace Internal
29} // namespace Ubuntu
30
31#endif // UBUNTU_INTERNAL_SNAPCRAFTRSYNCSTEP_H
032
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftstep.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftstep.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftstep.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,67 @@
1#include "snapcraftstep.h"
2#include "snapcraftproject.h"
3#include "snapcraftbuildconfiguration.h"
4
5#include <ubuntu/snap/settings/snapcraftkitinformation.h>
6
7#include <ubuntu/ubuntuconstants.h>
8
9#include <projectexplorer/target.h>
10#include <utils/environment.h>
11
12namespace Ubuntu {
13namespace Internal {
14
15SnapcraftStep::SnapcraftStep(ProjectExplorer::BuildStepList *bsl)
16 : ProjectExplorer::AbstractProcessStep(bsl, Constants::SNAPCRAFT_BUILDSTEP_ID)
17{
18 setDefaultDisplayName(tr("Snapcraft"));
19}
20
21SnapcraftStep::SnapcraftStep(ProjectExplorer::BuildStepList *bsl, SnapcraftStep *bs)
22 : ProjectExplorer::AbstractProcessStep(bsl, bs)
23{
24
25}
26
27bool SnapcraftStep::init(QList<const ProjectExplorer::BuildStep *> &)
28{
29 //QString projectDir = target()->project()->projectDirectory().toString();
30 ProjectExplorer::BuildConfiguration *bc = target()->activeBuildConfiguration();
31 if(!bc)
32 return false;
33
34 Utils::FileName snapcraftBin = Utils::FileName::fromString(Constants::UBUNTU_SCRIPTPATH);
35 snapcraftBin = snapcraftBin.appendPath(QString::fromLatin1("run_snapcraft.py"));
36
37 ProjectExplorer::ProcessParameters *param = processParameters();
38 param->setWorkingDirectory(bc->buildDirectory().toUserOutput());
39 param->setCommand(snapcraftBin.toUserOutput());
40 param->setArguments(QString::fromLatin1("-s '%1'").arg(snapcraftBin.toFileInfo().absoluteFilePath()));
41 param->setMacroExpander(bc->macroExpander());
42 param->setEnvironment(bc->environment());
43
44 return true;
45}
46
47ProjectExplorer::BuildStepConfigWidget *SnapcraftStep::createConfigWidget()
48{
49 return new ProjectExplorer::SimpleBuildStepConfigWidget(this);
50}
51
52Utils::FileName SnapcraftStep::snapcraftCommand() const
53{
54 Utils::Environment env = Utils::Environment::systemEnvironment();
55 Utils::FileName fallback = env.searchInPath(QStringLiteral("snapcraft"));
56 if (!target())
57 return fallback;
58
59 Utils::FileName bin = SnapcraftKitInformation::snapcraftPath(target()->kit());
60 if (!bin.exists())
61 return fallback;
62
63 return bin;
64}
65
66} // namespace Internal
67} // namespace Ubuntu
068
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftstep.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftstep.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/project/snapcraftstep.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,33 @@
1#ifndef UBUNTU_INTERNAL_SNAPCRAFTSTEP_H
2#define UBUNTU_INTERNAL_SNAPCRAFTSTEP_H
3
4#include <projectexplorer/abstractprocessstep.h>
5
6namespace Ubuntu {
7namespace Internal {
8
9class SnapcraftBuildStepFactory;
10class SnapcraftBuildConfigurationFactory;
11
12class SnapcraftStep : public ProjectExplorer::AbstractProcessStep
13{
14 Q_OBJECT
15public:
16 friend class SnapcraftBuildStepFactory;
17 friend class SnapcraftBuildConfigurationFactory;
18
19 // BuildStep interface
20 virtual bool init(QList<const ProjectExplorer::BuildStep *> &earlierSteps) override;
21 virtual ProjectExplorer::BuildStepConfigWidget *createConfigWidget() override;
22
23 Utils::FileName snapcraftCommand () const;
24
25protected:
26 SnapcraftStep(ProjectExplorer::BuildStepList *bsl);
27 SnapcraftStep(ProjectExplorer::BuildStepList *bsl, SnapcraftStep *bs);
28};
29
30} // namespace Internal
31} // namespace Ubuntu
32
33#endif // UBUNTU_INTERNAL_SNAPCRAFTSTEP_H
034
=== added directory 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/settings'
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/settings/snapcraftkitinformation.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/settings/snapcraftkitinformation.cpp 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/settings/snapcraftkitinformation.cpp 2016-10-18 07:57:32 +0000
@@ -0,0 +1,114 @@
1#include "snapcraftkitinformation.h"
2
3#include <projectexplorer/kit.h>
4
5#include <utils/environment.h>
6#include <utils/qtcassert.h>
7#include <utils/pathchooser.h>
8
9#include <QFileInfo>
10
11namespace Ubuntu {
12namespace Internal {
13
14static const char TOOL_ID[] = "SnapcraftProjectManager.SnapcraftKitInformation";
15
16SnapcraftKitInformation::SnapcraftKitInformation()
17{
18 setObjectName(QStringLiteral("SnapcraftKitInformation"));
19 setId(TOOL_ID);
20 setPriority(29000);
21}
22
23Utils::FileName SnapcraftKitInformation::snapcraftPath(const ProjectExplorer::Kit *k)
24{
25 return k->value(TOOL_ID, QVariant::fromValue<Utils::FileName>(Utils::FileName())).value<Utils::FileName>();
26}
27
28void SnapcraftKitInformation::setSnapcraftPath(ProjectExplorer::Kit *k, const Utils::FileName &snapcraft)
29{
30 if (snapcraft.toFileInfo().isExecutable()) {
31 k->setValue(TOOL_ID, QVariant::fromValue<Utils::FileName>(snapcraft));
32 }
33}
34
35QVariant SnapcraftKitInformation::defaultValue(const ProjectExplorer::Kit *) const
36{
37 Utils::Environment env = Utils::Environment::systemEnvironment();
38 return QVariant::fromValue<Utils::FileName>(env.searchInPath(QStringLiteral("snapcraft")));
39}
40
41QList<ProjectExplorer::Task> SnapcraftKitInformation::validate(const ProjectExplorer::Kit *) const
42{
43 return QList<ProjectExplorer::Task>();
44}
45
46ProjectExplorer::KitInformation::ItemList SnapcraftKitInformation::toUserOutput(const ProjectExplorer::Kit *k) const
47{
48 Utils::FileName snap = snapcraftPath(k);
49 return ItemList {
50 qMakePair(tr("Snapcraft"), snap.exists() ? snap.toUserOutput() : tr("Unconfigured"))
51 };
52}
53
54ProjectExplorer::KitConfigWidget *SnapcraftKitInformation::createConfigWidget(ProjectExplorer::Kit *kit) const
55{
56 return new SnapcraftKitInformationWidget(kit, this);
57}
58
59SnapcraftKitInformationWidget::SnapcraftKitInformationWidget(ProjectExplorer::Kit *kit, const ProjectExplorer::KitInformation *ki)
60 : ProjectExplorer::KitConfigWidget(kit, ki)
61 , m_chooser(new Utils::PathChooser)
62 , m_ignoreChange(false)
63{
64 m_chooser->setExpectedKind(Utils::PathChooser::ExistingCommand);
65 m_chooser->setFileName(SnapcraftKitInformation::snapcraftPath(kit));
66 connect(m_chooser, &Utils::PathChooser::pathChanged,
67 this, &SnapcraftKitInformationWidget::pathWasChanged);
68}
69
70SnapcraftKitInformationWidget::~SnapcraftKitInformationWidget()
71{
72 delete m_chooser;
73}
74
75QString SnapcraftKitInformationWidget::displayName() const
76{
77 return tr("Snapcraft");
78}
79
80void SnapcraftKitInformationWidget::makeReadOnly()
81{
82 m_chooser->setReadOnly(true);
83}
84
85void SnapcraftKitInformationWidget::refresh()
86{
87 if (!m_ignoreChange)
88 m_chooser->setPath(SnapcraftKitInformation::snapcraftPath(kit()).toUserOutput());
89}
90
91QWidget *SnapcraftKitInformationWidget::mainWidget() const
92{
93 return m_chooser->lineEdit();
94}
95
96QString SnapcraftKitInformationWidget::toolTip() const
97{
98 return tr("The snapcraft binary to use for this kit.");
99}
100
101QWidget *SnapcraftKitInformationWidget::buttonWidget() const
102{
103 return m_chooser->buttonAtIndex(0);
104}
105
106void SnapcraftKitInformationWidget::pathWasChanged()
107{
108 m_ignoreChange = true;
109 SnapcraftKitInformation::setSnapcraftPath(kit(), m_chooser->fileName());
110 m_ignoreChange = false;
111}
112
113} // namespace Internal
114} // namespace Ubuntu
0115
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/settings/snapcraftkitinformation.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/settings/snapcraftkitinformation.h 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/settings/snapcraftkitinformation.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,59 @@
1#ifndef UBUNTU_INTERNAL_SNAPCRAFTKITINFORMATION_H
2#define UBUNTU_INTERNAL_SNAPCRAFTKITINFORMATION_H
3
4#include <projectexplorer/kitconfigwidget.h>
5#include <projectexplorer/kitinformation.h>
6
7namespace Utils {
8class PathChooser;
9}
10
11namespace Ubuntu {
12namespace Internal {
13
14class SnapcraftKitInformation : public ProjectExplorer::KitInformation
15{
16 Q_OBJECT
17public:
18 SnapcraftKitInformation();
19
20 static Utils::FileName snapcraftPath (const ProjectExplorer::Kit *k);
21 static void setSnapcraftPath (ProjectExplorer::Kit *k, const Utils::FileName &snapcraft);
22
23 // KitInformation interface
24 virtual QVariant defaultValue(const ProjectExplorer::Kit *) const override;
25 virtual QList<ProjectExplorer::Task> validate(const ProjectExplorer::Kit *) const override;
26 virtual ItemList toUserOutput(const ProjectExplorer::Kit *) const override;
27 virtual ProjectExplorer::KitConfigWidget *createConfigWidget(ProjectExplorer::Kit *) const override;
28
29private:
30 Utils::FileName m_snapcraftPath;
31};
32
33class SnapcraftKitInformationWidget : public ProjectExplorer::KitConfigWidget
34{
35public:
36 SnapcraftKitInformationWidget(ProjectExplorer::Kit *kit, const ProjectExplorer::KitInformation *ki);
37 virtual ~SnapcraftKitInformationWidget();
38
39 // KitConfigWidget interface
40 virtual QString displayName() const override;
41 virtual void makeReadOnly() override;
42 virtual void refresh() override;
43 virtual QWidget *mainWidget() const override;
44 virtual QString toolTip() const override;
45 virtual QWidget *buttonWidget() const override;
46
47private:
48 void pathWasChanged();
49private:
50 Utils::PathChooser *m_chooser;
51 bool m_ignoreChange;
52
53
54};
55
56} // namespace Internal
57} // namespace Ubuntu
58
59#endif // UBUNTU_INTERNAL_SNAPCRAFTKITINFORMATION_H
060
=== added file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/snap.pri'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/snap.pri 1970-01-01 00:00:00 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/snap/snap.pri 2016-10-18 07:57:32 +0000
@@ -0,0 +1,27 @@
1
2LIBS+=-lyaml-cpp
3
4SOURCES += \
5 $$PWD/project/snapcraftproject.cpp \
6 $$PWD/project/snapcraftprojectfile.cpp \
7 $$PWD/project/snapcraftprojectnode.cpp \
8 $$PWD/project/snapcraftprojectmanager.cpp \
9 $$PWD/project/snapcraftbuildconfigurationfactory.cpp \
10 $$PWD/project/snapcraftbuildconfiguration.cpp \
11 $$PWD/project/snapcraftrsyncstep.cpp \
12 $$PWD/project/snapcraftstep.cpp \
13 $$PWD/project/snapcraftbuildstepfactory.cpp \
14 $$PWD/settings/snapcraftkitinformation.cpp
15
16HEADERS += \
17 $$PWD/project/snapcraftproject.h \
18 $$PWD/project/snapcraftprojectfile.h \
19 $$PWD/project/snapcraftprojectnode.h \
20 $$PWD/project/snapcraftprojectmanager.h \
21 $$PWD/project/snapcraftbuildconfigurationfactory.h \
22 $$PWD/project/snapcraftbuildconfiguration.h \
23 $$PWD/project/snapcraftrsyncstep.h \
24 $$PWD/project/snapcraftstep.h \
25 $$PWD/project/snapcraftbuildstepfactory.h \
26 $$PWD/settings/snapcraftkitinformation.h
27
028
=== modified file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuclicktool.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuclicktool.cpp 2016-08-26 14:14:29 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuclicktool.cpp 2016-10-18 07:57:32 +0000
@@ -471,6 +471,11 @@
471 return UbuntuClickTool::findOrCreateToolWrapper(QStringLiteral("make"),target);471 return UbuntuClickTool::findOrCreateToolWrapper(QStringLiteral("make"),target);
472}472}
473473
474Utils::FileName UbuntuClickTool::findOrCreateSnapcraftWrapper(const UbuntuClickTool::Target &target)
475{
476 return Utils::FileName::fromString(UbuntuClickTool::findOrCreateToolWrapper(QStringLiteral("snapcraft"),target));
477}
478
474QString UbuntuClickTool::mapIncludePathsForCMake(const ProjectExplorer::Kit *k, const QString &in)479QString UbuntuClickTool::mapIncludePathsForCMake(const ProjectExplorer::Kit *k, const QString &in)
475{480{
476 if (in.isEmpty())481 if (in.isEmpty())
477482
=== modified file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuclicktool.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuclicktool.h 2016-08-26 14:14:29 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuclicktool.h 2016-10-18 07:57:32 +0000
@@ -86,6 +86,7 @@
86 static QString findOrCreateToolWrapper(const QString &tool, const UbuntuClickTool::Target &target);86 static QString findOrCreateToolWrapper(const QString &tool, const UbuntuClickTool::Target &target);
87 static QString findOrCreateQMakeWrapper(const UbuntuClickTool::Target &target);87 static QString findOrCreateQMakeWrapper(const UbuntuClickTool::Target &target);
88 static QString findOrCreateMakeWrapper(const UbuntuClickTool::Target &target);88 static QString findOrCreateMakeWrapper(const UbuntuClickTool::Target &target);
89 static Utils::FileName findOrCreateSnapcraftWrapper(const UbuntuClickTool::Target &target);
89 static QString mapIncludePathsForCMake(const ProjectExplorer::Kit *k, const QString &in);90 static QString mapIncludePathsForCMake(const ProjectExplorer::Kit *k, const QString &in);
90 static QString hostArchitecture ();91 static QString hostArchitecture ();
91 static bool compatibleWithHostArchitecture (const QString &targetArch);92 static bool compatibleWithHostArchitecture (const QString &targetArch);
9293
=== modified file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuconstants.h'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuconstants.h 2016-09-22 16:11:03 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuconstants.h 2016-10-18 07:57:32 +0000
@@ -393,6 +393,16 @@
393const char CHROOT_UPDATE_LIST_SCRIPT[] = "%1/ubuntu/scripts/qtc_chroot_get_upgrades.py %2 %3";393const char CHROOT_UPDATE_LIST_SCRIPT[] = "%1/ubuntu/scripts/qtc_chroot_get_upgrades.py %2 %3";
394394
395395
396//Snapcraft
397const char SNAPCRAFT_PROJECT_MIMETYPE[] = "application/x-snapcraft";
398const char SNAPCRAFT_PROJECT_ID[ ] = "SnapcraftProjectManager.SnapcraftProject";
399const char SNAPCRAFT_PROJECT_PROJECTCONTEXT[] = "SnapcraftProject.ProjectContext";
400const char SNAPCRAFT_BUILDCONFIGURATION_ID[] = "SnapcraftProjectManager.SnapcraftBuildconfiguration.Id";
401const char SNAPCRAFT_RSYNCBUILSSTEP_ID[] = "SnapcraftProjectManager.SnapcraftRsyncStep.Id";
402const char SNAPCRAFT_BUILDSTEP_ID[] = "SnapcraftProjectManager.SnapcraftStep.Id";
403
404
405
396} // namespace Ubuntu406} // namespace Ubuntu
397} // namespace Constants407} // namespace Constants
398408
399409
=== modified file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntukitmanager.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntukitmanager.cpp 2016-08-26 14:14:29 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntukitmanager.cpp 2016-10-18 07:57:32 +0000
@@ -5,7 +5,8 @@
5#include "ubuntuclickdialog.h"5#include "ubuntuclickdialog.h"
6#include "ubuntuqtversion.h"6#include "ubuntuqtversion.h"
7#include "settings.h"7#include "settings.h"
8#include "device/container/containerdevice.h"8#include <ubuntu/device/container/containerdevice.h>
9#include <ubuntu/snap/settings/snapcraftkitinformation.h>
910
10#include <coreplugin/icore.h>11#include <coreplugin/icore.h>
11#include <projectexplorer/kitmanager.h>12#include <projectexplorer/kitmanager.h>
@@ -509,6 +510,8 @@
509 ProjectExplorer::SysRootKitInformation::setSysRoot(k,Utils::FileName::fromString(UbuntuClickTool::targetBasePath(tc->clickTarget())));510 ProjectExplorer::SysRootKitInformation::setSysRoot(k,Utils::FileName::fromString(UbuntuClickTool::targetBasePath(tc->clickTarget())));
510 }511 }
511512
513 SnapcraftKitInformation::setSnapcraftPath(k, UbuntuClickTool::findOrCreateSnapcraftWrapper(tc->clickTarget()));
514
512 //make sure we point to a ubuntu device515 //make sure we point to a ubuntu device
513 Core::Id devId = ProjectExplorer::DeviceTypeKitInformation::deviceTypeId(k);516 Core::Id devId = ProjectExplorer::DeviceTypeKitInformation::deviceTypeId(k);
514 bool devValid = devId.isValid(); //invalid type517 bool devValid = devId.isValid(); //invalid type
515518
=== modified file 'dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuplugin.cpp'
--- dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuplugin.cpp 2016-09-22 16:11:03 +0000
+++ dist/qtcreator/src/plugins/ubuntu/src/ubuntu/ubuntuplugin.cpp 2016-10-18 07:57:32 +0000
@@ -53,6 +53,11 @@
53#include <ubuntu/wizards/ubuntufirstrunwizard.h>53#include <ubuntu/wizards/ubuntufirstrunwizard.h>
54#include <ubuntu/wizards/ubuntuprojectmigrationwizard.h>54#include <ubuntu/wizards/ubuntuprojectmigrationwizard.h>
5555
56#include <ubuntu/snap/project/snapcraftprojectmanager.h>
57#include <ubuntu/snap/project/snapcraftbuildconfigurationfactory.h>
58#include <ubuntu/snap/project/snapcraftbuildstepfactory.h>
59#include <ubuntu/snap/settings/snapcraftkitinformation.h>
60
56#include "ubuntujsextension.h"61#include "ubuntujsextension.h"
5762
58#include <coreplugin/modemanager.h>63#include <coreplugin/modemanager.h>
@@ -175,6 +180,13 @@
175 addAutoReleasedObject(new UbuntuRemoteRunControlFactory);180 addAutoReleasedObject(new UbuntuRemoteRunControlFactory);
176 addAutoReleasedObject(new UbuntuLocalRunControlFactory);181 addAutoReleasedObject(new UbuntuLocalRunControlFactory);
177182
183
184 addAutoReleasedObject(new SnapcraftProjectManager);
185 addAutoReleasedObject(new SnapcraftBuildConfigurationFactory);
186 addAutoReleasedObject(new SnapcraftBuildStepFactory);
187
188 ProjectExplorer::KitManager::registerKitInformation(new SnapcraftKitInformation);
189
178 // Build support190 // Build support
179 addAutoReleasedObject(new ClickToolChainFactory);191 addAutoReleasedObject(new ClickToolChainFactory);
180 addAutoReleasedObject(new UbuntuHtmlBuildConfigurationFactory);192 addAutoReleasedObject(new UbuntuHtmlBuildConfigurationFactory);
@@ -379,6 +391,7 @@
379391
380 while (!ok) {392 while (!ok) {
381 QProcess proc;393 QProcess proc;
394 qDebug()<<"Running "<<Constants::UBUNTU_TARGET_TOOL;
382 proc.setProgram(Constants::UBUNTU_TARGET_TOOL);395 proc.setProgram(Constants::UBUNTU_TARGET_TOOL);
383396
384 QStringList args{QStringLiteral("initialized")};397 QStringList args{QStringLiteral("initialized")};
@@ -407,8 +420,7 @@
407 if (Settings::askForContainerSetup()) {420 if (Settings::askForContainerSetup()) {
408 QString text = tr("The container backend is not completely initialized.\n\n"421 QString text = tr("The container backend is not completely initialized.\n\n"
409 "Create default configuration?\n"422 "Create default configuration?\n"
410 "Not setting up the container configuration will\nmake it impossible to run applications locally.\n\n"423 "Not setting up the container configuration will\nmake it impossible to run applications locally."
411 "Note: Will override existing LXD configurations."
412 );424 );
413425
414 QMessageBox box(QMessageBox::Question, qApp->applicationName(),text, QMessageBox::Yes | QMessageBox::No | QMessageBox::Abort, Core::ICore::mainWindow());426 QMessageBox box(QMessageBox::Question, qApp->applicationName(),text, QMessageBox::Yes | QMessageBox::No | QMessageBox::Abort, Core::ICore::mainWindow());
415427
=== added directory 'dist/yaml-cpp'
=== added file 'dist/yaml-cpp/.clang-format'
--- dist/yaml-cpp/.clang-format 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/.clang-format 2016-10-18 07:57:32 +0000
@@ -0,0 +1,47 @@
1---
2# BasedOnStyle: Google
3AccessModifierOffset: -1
4ConstructorInitializerIndentWidth: 4
5AlignEscapedNewlinesLeft: true
6AlignTrailingComments: true
7AllowAllParametersOfDeclarationOnNextLine: true
8AllowShortIfStatementsOnASingleLine: false
9AllowShortLoopsOnASingleLine: false
10AlwaysBreakTemplateDeclarations: true
11AlwaysBreakBeforeMultilineStrings: true
12BreakBeforeBinaryOperators: false
13BreakBeforeTernaryOperators: true
14BreakConstructorInitializersBeforeComma: false
15BinPackParameters: true
16ColumnLimit: 80
17ConstructorInitializerAllOnOneLineOrOnePerLine: true
18DerivePointerBinding: true
19ExperimentalAutoDetectBinPacking: false
20IndentCaseLabels: true
21MaxEmptyLinesToKeep: 1
22NamespaceIndentation: None
23ObjCSpaceBeforeProtocolList: false
24PenaltyBreakBeforeFirstCallParameter: 1
25PenaltyBreakComment: 60
26PenaltyBreakString: 1000
27PenaltyBreakFirstLessLess: 120
28PenaltyExcessCharacter: 1000000
29PenaltyReturnTypeOnItsOwnLine: 200
30PointerBindsToType: true
31SpacesBeforeTrailingComments: 2
32Cpp11BracedListStyle: true
33Standard: Auto
34IndentWidth: 2
35TabWidth: 8
36UseTab: Never
37BreakBeforeBraces: Attach
38IndentFunctionDeclarationAfterType: true
39SpacesInParentheses: false
40SpacesInAngles: false
41SpaceInEmptyParentheses: false
42SpacesInCStyleCastParentheses: false
43SpaceAfterControlStatementKeyword: true
44SpaceBeforeAssignmentOperators: true
45ContinuationIndentWidth: 4
46...
47
048
=== added file 'dist/yaml-cpp/.hgeol'
--- dist/yaml-cpp/.hgeol 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/.hgeol 2016-10-18 07:57:32 +0000
@@ -0,0 +1,4 @@
1**.h = native
2**.c = native
3**.cpp = native
4**.txt = native
05
=== added file 'dist/yaml-cpp/.hgignore'
--- dist/yaml-cpp/.hgignore 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/.hgignore 2016-10-18 07:57:32 +0000
@@ -0,0 +1,1 @@
1syntax: glob
02
=== added directory 'dist/yaml-cpp/.pc'
=== added file 'dist/yaml-cpp/.pc/.quilt_patches'
--- dist/yaml-cpp/.pc/.quilt_patches 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/.pc/.quilt_patches 2016-10-18 07:57:32 +0000
@@ -0,0 +1,1 @@
1debian/patches
02
=== added file 'dist/yaml-cpp/.pc/.quilt_series'
--- dist/yaml-cpp/.pc/.quilt_series 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/.pc/.quilt_series 2016-10-18 07:57:32 +0000
@@ -0,0 +1,1 @@
1series
02
=== added file 'dist/yaml-cpp/.pc/.version'
--- dist/yaml-cpp/.pc/.version 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/.pc/.version 2016-10-18 07:57:32 +0000
@@ -0,0 +1,1 @@
12
02
=== added file 'dist/yaml-cpp/.pc/applied-patches'
--- dist/yaml-cpp/.pc/applied-patches 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/.pc/applied-patches 2016-10-18 07:57:32 +0000
@@ -0,0 +1,2 @@
1pkgconfig.patch
2install-cmake-dev-files.patch
03
=== added directory 'dist/yaml-cpp/.pc/install-cmake-dev-files.patch'
=== added file 'dist/yaml-cpp/.pc/install-cmake-dev-files.patch/CMakeLists.txt'
--- dist/yaml-cpp/.pc/install-cmake-dev-files.patch/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/.pc/install-cmake-dev-files.patch/CMakeLists.txt 2016-10-18 07:57:32 +0000
@@ -0,0 +1,340 @@
1###
2### CMake settings
3###
4## Due to Mac OSX we need to keep compatibility with CMake 2.6
5# see http://www.cmake.org/Wiki/CMake_Policies
6cmake_minimum_required(VERSION 2.6)
7# see http://www.cmake.org/cmake/help/cmake-2-8-docs.html#policy:CMP0012
8if(POLICY CMP0012)
9 cmake_policy(SET CMP0012 OLD)
10endif()
11# see http://www.cmake.org/cmake/help/cmake-2-8-docs.html#policy:CMP0015
12if(POLICY CMP0015)
13 cmake_policy(SET CMP0015 OLD)
14endif()
15
16include(CheckCXXCompilerFlag)
17
18
19###
20### Project settings
21###
22project(YAML_CPP)
23
24set(YAML_CPP_VERSION_MAJOR "0")
25set(YAML_CPP_VERSION_MINOR "5")
26set(YAML_CPP_VERSION_PATCH "2")
27set(YAML_CPP_VERSION "${YAML_CPP_VERSION_MAJOR}.${YAML_CPP_VERSION_MINOR}.${YAML_CPP_VERSION_PATCH}")
28
29enable_testing()
30
31
32###
33### Project options
34###
35## Project stuff
36option(YAML_CPP_BUILD_TOOLS "Enable testing and parse tools" ON)
37option(YAML_CPP_BUILD_CONTRIB "Enable contrib stuff in library" ON)
38
39## Build options
40# --> General
41# see http://www.cmake.org/cmake/help/cmake2.6docs.html#variable:BUILD_SHARED_LIBS
42# http://www.cmake.org/cmake/help/cmake2.6docs.html#command:add_library
43option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
44
45# --> Apple
46option(APPLE_UNIVERSAL_BIN "Apple: Build universal binary" OFF)
47
48# --> Microsoft Visual C++
49# see http://msdn.microsoft.com/en-us/library/aa278396(v=VS.60).aspx
50# http://msdn.microsoft.com/en-us/library/2kzt1wy3(v=VS.71).aspx
51option(MSVC_SHARED_RT "MSVC: Build with shared runtime libs (/MD)" ON)
52option(MSVC_STHREADED_RT "MSVC: Build with single-threaded static runtime libs (/ML until VS .NET 2003)" OFF)
53
54###
55### Sources, headers, directories and libs
56###
57
58# From http://www.cmake.org/pipermail/cmake/2010-March/035992.html:
59# function to collect all the sources from sub-directories
60# into a single list
61function(add_sources)
62 get_property(is_defined GLOBAL PROPERTY SRCS_LIST DEFINED)
63 if(NOT is_defined)
64 define_property(GLOBAL PROPERTY SRCS_LIST
65 BRIEF_DOCS "List of source files"
66 FULL_DOCS "List of all source files in the entire project")
67 endif()
68 # make absolute paths
69 set(SRCS)
70 foreach(s IN LISTS ARGN)
71 if(NOT IS_ABSOLUTE "${s}")
72 get_filename_component(s "${s}" ABSOLUTE)
73 endif()
74 list(APPEND SRCS "${s}")
75 endforeach()
76 # append to global list
77 set_property(GLOBAL APPEND PROPERTY SRCS_LIST "${SRCS}")
78endfunction(add_sources)
79
80set(header_directory "include/yaml-cpp/")
81
82file(GLOB sources "src/[a-zA-Z]*.cpp")
83file(GLOB_RECURSE public_headers "include/yaml-cpp/[a-zA-Z]*.h")
84file(GLOB private_headers "src/[a-zA-Z]*.h")
85
86if(YAML_CPP_BUILD_CONTRIB)
87 file(GLOB contrib_sources "src/contrib/[a-zA-Z]*.cpp")
88 file(GLOB contrib_public_headers "include/yaml-cpp/contrib/[a-zA-Z]*.h")
89 file(GLOB contrib_private_headers "src/contrib/[a-zA-Z]*.h")
90else()
91 add_definitions(-DYAML_CPP_NO_CONTRIB)
92endif()
93
94set(library_sources
95 ${sources}
96 ${public_headers}
97 ${private_headers}
98 ${contrib_sources}
99 ${contrib_public_headers}
100 ${contrib_private_headers}
101)
102add_sources(${library_sources})
103
104if(VERBOSE)
105 message(STATUS "sources: ${sources}")
106 message(STATUS "public_headers: ${public_headers}")
107 message(STATUS "private_headers: ${private_headers}")
108 message(STATUS "contrib_sources: ${contrib_sources}")
109 message(STATUS "contrib_public_headers: ${contrib_public_headers}")
110 message(STATUS "contrib_private_headers: ${contrib_private_headers}")
111endif()
112
113include_directories(${YAML_CPP_SOURCE_DIR}/src)
114include_directories(${YAML_CPP_SOURCE_DIR}/include)
115
116find_package(Boost REQUIRED)
117include_directories(${Boost_INCLUDE_DIRS})
118
119
120###
121### General compilation settings
122###
123set(yaml_c_flags ${CMAKE_C_FLAGS})
124set(yaml_cxx_flags ${CMAKE_CXX_FLAGS})
125
126if(BUILD_SHARED_LIBS)
127 set(LABEL_SUFFIX "shared")
128else()
129 set(LABEL_SUFFIX "static")
130endif()
131
132if(APPLE)
133 if(APPLE_UNIVERSAL_BIN)
134 set(CMAKE_OSX_ARCHITECTURES ppc;i386)
135 endif()
136endif()
137
138if(IPHONE)
139 set(CMAKE_OSX_SYSROOT "iphoneos4.2")
140 set(CMAKE_OSX_ARCHITECTURES "armv6;armv7")
141endif()
142
143if(WIN32)
144 if(BUILD_SHARED_LIBS)
145 add_definitions(-D${PROJECT_NAME}_DLL) # use or build Windows DLL
146 endif()
147 if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
148 set(CMAKE_INSTALL_PREFIX "C:/")
149 endif()
150endif()
151
152# GCC or Clang specialities
153if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" OR
154 "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
155 ### General stuff
156 if(WIN32)
157 set(CMAKE_SHARED_LIBRARY_PREFIX "") # DLLs do not have a "lib" prefix
158 set(CMAKE_IMPORT_LIBRARY_PREFIX "") # same for DLL import libs
159 set(CMAKE_LINK_DEF_FILE_FLAG "") # CMake workaround (2.8.3)
160 endif()
161
162 ### Project stuff
163 if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
164 set(CMAKE_BUILD_TYPE Release)
165 endif()
166 #
167 set(CMAKE_CXX_FLAGS_RELEASE "-O2")
168 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
169 set(CMAKE_CXX_FLAGS_DEBUG "-g")
170 set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os")
171 #
172 set(GCC_EXTRA_OPTIONS "")
173 #
174 set(FLAG_TESTED "-Wextra")
175 check_cxx_compiler_flag(${FLAG_TESTED} FLAG_WEXTRA)
176 if(FLAG_WEXTRA)
177 set(GCC_EXTRA_OPTIONS "${GCC_EXTRA_OPTIONS} ${FLAG_TESTED}")
178 endif()
179 #
180 set(yaml_cxx_flags "-Wall ${GCC_EXTRA_OPTIONS} -pedantic -Wno-long-long ${yaml_cxx_flags}")
181
182 ### Make specific
183 if(${CMAKE_BUILD_TOOL} MATCHES make OR ${CMAKE_BUILD_TOOL} MATCHES gmake)
184 add_custom_target(debuggable $(MAKE) clean
185 COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR}
186 COMMENT "Adjusting settings for debug compilation"
187 VERBATIM)
188 add_custom_target(releasable $(MAKE) clean
189 COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}
190 COMMENT "Adjusting settings for release compilation"
191 VERBATIM)
192 endif()
193endif()
194
195# Microsoft VisualC++ specialities
196if(MSVC)
197 ### General stuff
198 # a) Change MSVC runtime library settings (/MD[d], /MT[d], /ML[d] (single-threaded until VS 2003))
199 # plus set lib suffix for later use and project label accordingly
200 # see http://msdn.microsoft.com/en-us/library/aa278396(v=VS.60).aspx
201 # http://msdn.microsoft.com/en-us/library/2kzt1wy3(v=VS.71).aspx
202 set(LIB_RT_SUFFIX "md") # CMake defaults to /MD for MSVC
203 set(LIB_RT_OPTION "/MD")
204 #
205 if(NOT MSVC_SHARED_RT) # User wants to have static runtime libraries (/MT, /ML)
206 if(MSVC_STHREADED_RT) # User wants to have old single-threaded static runtime libraries
207 set(LIB_RT_SUFFIX "ml")
208 set(LIB_RT_OPTION "/ML")
209 if(NOT ${MSVC_VERSION} LESS 1400)
210 message(FATAL_ERROR "Single-threaded static runtime libraries (/ML) only available until VS .NET 2003 (7.1).")
211 endif()
212 else()
213 set(LIB_RT_SUFFIX "mt")
214 set(LIB_RT_OPTION "/MT")
215 endif()
216
217 # correct linker options
218 foreach(flag_var yaml_c_flags yaml_cxx_flags)
219 foreach(config_name "" DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
220 set(var_name "${flag_var}")
221 if(NOT "${config_name}" STREQUAL "")
222 set(var_name "${var_name}_${config_name}")
223 endif()
224 string(REPLACE "/MD" "${LIB_RT_OPTION}" ${var_name} "${${var_name}}")
225 endforeach()
226 endforeach()
227 endif()
228 #
229 set(LABEL_SUFFIX "${LABEL_SUFFIX} ${LIB_RT_SUFFIX}")
230
231 # b) Change prefix for static libraries
232 set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # to distinguish static libraries from DLL import libs
233
234 # c) Correct suffixes for static libraries
235 if(NOT BUILD_SHARED_LIBS)
236 ### General stuff
237 set(LIB_TARGET_SUFFIX "${LIB_SUFFIX}${LIB_RT_SUFFIX}")
238 endif()
239
240 ### Project stuff
241 # /W3 = set warning level; see http://msdn.microsoft.com/en-us/library/thxezb7y.aspx
242 # /wd4127 = disable warning C4127 "conditional expression is constant"; see http://msdn.microsoft.com/en-us/library/6t66728h.aspx
243 # /wd4355 = disable warning C4355 "'this' : used in base member initializer list"; http://msdn.microsoft.com/en-us/library/3c594ae3.aspx
244 set(yaml_cxx_flags "/W3 /wd4127 /wd4355 ${yaml_cxx_flags}")
245endif()
246
247
248###
249### General install settings
250###
251if(WIN32)
252 set(_library_dir bin) # .dll are in PATH, like executables
253else()
254 set(_library_dir lib)
255endif()
256
257set(INCLUDE_INSTALL_ROOT_DIR include)
258
259set(INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_ROOT_DIR}/yaml-cpp)
260set(LIB_INSTALL_DIR "${_library_dir}${LIB_SUFFIX}")
261
262set(_INSTALL_DESTINATIONS
263 RUNTIME DESTINATION bin
264 LIBRARY DESTINATION ${LIB_INSTALL_DIR}
265 ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
266)
267
268
269###
270### Library
271###
272add_library(yaml-cpp ${library_sources})
273set_target_properties(yaml-cpp PROPERTIES
274 COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags}"
275)
276
277set_target_properties(yaml-cpp PROPERTIES
278 VERSION "${YAML_CPP_VERSION}"
279 SOVERSION "${YAML_CPP_VERSION_MAJOR}.${YAML_CPP_VERSION_MINOR}"
280 PROJECT_LABEL "yaml-cpp ${LABEL_SUFFIX}"
281)
282
283if(IPHONE)
284 set_target_properties(yaml-cpp PROPERTIES
285 XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "3.0"
286 )
287endif()
288
289if(MSVC)
290 if(NOT BUILD_SHARED_LIBS)
291 # correct library names
292 set_target_properties(yaml-cpp PROPERTIES
293 DEBUG_POSTFIX "${LIB_TARGET_SUFFIX}d"
294 RELEASE_POSTFIX "${LIB_TARGET_SUFFIX}"
295 MINSIZEREL_POSTFIX "${LIB_TARGET_SUFFIX}"
296 RELWITHDEBINFO_POSTFIX "${LIB_TARGET_SUFFIX}"
297 )
298 endif()
299endif()
300
301install(TARGETS yaml-cpp ${_INSTALL_DESTINATIONS})
302install(
303 DIRECTORY ${header_directory}
304 DESTINATION ${INCLUDE_INSTALL_DIR}
305 FILES_MATCHING PATTERN "*.h"
306)
307
308export(
309 TARGETS yaml-cpp
310 FILE "${PROJECT_BINARY_DIR}/yaml-cpp-targets.cmake")
311export(PACKAGE yaml-cpp)
312set(EXPORT_TARGETS yaml-cpp CACHE INTERNAL "export targets")
313
314set(CONFIG_INCLUDE_DIRS "${YAML_CPP_SOURCE_DIR}/include")
315configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in
316 "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" @ONLY)
317configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config-version.cmake.in
318 "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" @ONLY)
319
320if(UNIX)
321 set(PC_FILE ${CMAKE_BINARY_DIR}/yaml-cpp.pc)
322 configure_file("yaml-cpp.pc.cmake" ${PC_FILE} @ONLY)
323 install(FILES ${PC_FILE} DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
324endif()
325
326
327###
328### Extras
329###
330if(YAML_CPP_BUILD_TOOLS)
331 add_subdirectory(test)
332 add_subdirectory(util)
333endif()
334
335### Formatting
336get_property(all_sources GLOBAL PROPERTY SRCS_LIST)
337add_custom_target(format
338 COMMAND clang-format --style=file -i ${all_sources}
339 COMMENT "Running clang-format"
340 VERBATIM)
0341
=== added directory 'dist/yaml-cpp/.pc/pkgconfig.patch'
=== added file 'dist/yaml-cpp/.pc/pkgconfig.patch/yaml-cpp.pc.cmake'
--- dist/yaml-cpp/.pc/pkgconfig.patch/yaml-cpp.pc.cmake 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/.pc/pkgconfig.patch/yaml-cpp.pc.cmake 2016-10-18 07:57:32 +0000
@@ -0,0 +1,11 @@
1prefix=@CMAKE_INSTALL_PREFIX@
2exec_prefix=@CMAKE_INSTALL_PREFIX@
3libdir=${prefix}/@LIB_INSTALL_DIR@
4includedir=${prefix}/@INCLUDE_INSTALL_ROOT_DIR@
5
6Name: Yaml-cpp
7Description: A YAML parser and emitter for C++
8Version: @YAML_CPP_VERSION@
9Requires:
10Libs: -L${libdir} -lyaml-cpp
11Cflags: -I${includedir}
012
=== added file 'dist/yaml-cpp/CMakeLists.txt'
--- dist/yaml-cpp/CMakeLists.txt 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/CMakeLists.txt 2016-10-18 07:57:32 +0000
@@ -0,0 +1,356 @@
1###
2### CMake settings
3###
4## Due to Mac OSX we need to keep compatibility with CMake 2.6
5# see http://www.cmake.org/Wiki/CMake_Policies
6cmake_minimum_required(VERSION 2.6)
7# see http://www.cmake.org/cmake/help/cmake-2-8-docs.html#policy:CMP0012
8if(POLICY CMP0012)
9 cmake_policy(SET CMP0012 OLD)
10endif()
11# see http://www.cmake.org/cmake/help/cmake-2-8-docs.html#policy:CMP0015
12if(POLICY CMP0015)
13 cmake_policy(SET CMP0015 OLD)
14endif()
15
16include(CheckCXXCompilerFlag)
17
18
19###
20### Project settings
21###
22project(YAML_CPP)
23
24set(YAML_CPP_VERSION_MAJOR "0")
25set(YAML_CPP_VERSION_MINOR "5")
26set(YAML_CPP_VERSION_PATCH "2")
27set(YAML_CPP_VERSION "${YAML_CPP_VERSION_MAJOR}.${YAML_CPP_VERSION_MINOR}.${YAML_CPP_VERSION_PATCH}")
28
29enable_testing()
30
31
32###
33### Project options
34###
35## Project stuff
36option(YAML_CPP_BUILD_TOOLS "Enable testing and parse tools" ON)
37option(YAML_CPP_BUILD_CONTRIB "Enable contrib stuff in library" ON)
38
39## Build options
40# --> General
41# see http://www.cmake.org/cmake/help/cmake2.6docs.html#variable:BUILD_SHARED_LIBS
42# http://www.cmake.org/cmake/help/cmake2.6docs.html#command:add_library
43option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
44
45# --> Apple
46option(APPLE_UNIVERSAL_BIN "Apple: Build universal binary" OFF)
47
48# --> Microsoft Visual C++
49# see http://msdn.microsoft.com/en-us/library/aa278396(v=VS.60).aspx
50# http://msdn.microsoft.com/en-us/library/2kzt1wy3(v=VS.71).aspx
51option(MSVC_SHARED_RT "MSVC: Build with shared runtime libs (/MD)" ON)
52option(MSVC_STHREADED_RT "MSVC: Build with single-threaded static runtime libs (/ML until VS .NET 2003)" OFF)
53
54###
55### Sources, headers, directories and libs
56###
57
58# From http://www.cmake.org/pipermail/cmake/2010-March/035992.html:
59# function to collect all the sources from sub-directories
60# into a single list
61function(add_sources)
62 get_property(is_defined GLOBAL PROPERTY SRCS_LIST DEFINED)
63 if(NOT is_defined)
64 define_property(GLOBAL PROPERTY SRCS_LIST
65 BRIEF_DOCS "List of source files"
66 FULL_DOCS "List of all source files in the entire project")
67 endif()
68 # make absolute paths
69 set(SRCS)
70 foreach(s IN LISTS ARGN)
71 if(NOT IS_ABSOLUTE "${s}")
72 get_filename_component(s "${s}" ABSOLUTE)
73 endif()
74 list(APPEND SRCS "${s}")
75 endforeach()
76 # append to global list
77 set_property(GLOBAL APPEND PROPERTY SRCS_LIST "${SRCS}")
78endfunction(add_sources)
79
80set(header_directory "include/yaml-cpp/")
81
82file(GLOB sources "src/[a-zA-Z]*.cpp")
83file(GLOB_RECURSE public_headers "include/yaml-cpp/[a-zA-Z]*.h")
84file(GLOB private_headers "src/[a-zA-Z]*.h")
85
86if(YAML_CPP_BUILD_CONTRIB)
87 file(GLOB contrib_sources "src/contrib/[a-zA-Z]*.cpp")
88 file(GLOB contrib_public_headers "include/yaml-cpp/contrib/[a-zA-Z]*.h")
89 file(GLOB contrib_private_headers "src/contrib/[a-zA-Z]*.h")
90else()
91 add_definitions(-DYAML_CPP_NO_CONTRIB)
92endif()
93
94set(library_sources
95 ${sources}
96 ${public_headers}
97 ${private_headers}
98 ${contrib_sources}
99 ${contrib_public_headers}
100 ${contrib_private_headers}
101)
102add_sources(${library_sources})
103
104if(VERBOSE)
105 message(STATUS "sources: ${sources}")
106 message(STATUS "public_headers: ${public_headers}")
107 message(STATUS "private_headers: ${private_headers}")
108 message(STATUS "contrib_sources: ${contrib_sources}")
109 message(STATUS "contrib_public_headers: ${contrib_public_headers}")
110 message(STATUS "contrib_private_headers: ${contrib_private_headers}")
111endif()
112
113include_directories(${YAML_CPP_SOURCE_DIR}/src)
114include_directories(${YAML_CPP_SOURCE_DIR}/include)
115
116find_package(Boost REQUIRED)
117include_directories(${Boost_INCLUDE_DIRS})
118
119
120###
121### General compilation settings
122###
123set(yaml_c_flags ${CMAKE_C_FLAGS})
124set(yaml_cxx_flags ${CMAKE_CXX_FLAGS})
125
126if(BUILD_SHARED_LIBS)
127 set(LABEL_SUFFIX "shared")
128else()
129 set(LABEL_SUFFIX "static")
130endif()
131
132if(APPLE)
133 if(APPLE_UNIVERSAL_BIN)
134 set(CMAKE_OSX_ARCHITECTURES ppc;i386)
135 endif()
136endif()
137
138if(IPHONE)
139 set(CMAKE_OSX_SYSROOT "iphoneos4.2")
140 set(CMAKE_OSX_ARCHITECTURES "armv6;armv7")
141endif()
142
143if(WIN32)
144 if(BUILD_SHARED_LIBS)
145 add_definitions(-D${PROJECT_NAME}_DLL) # use or build Windows DLL
146 endif()
147 if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
148 set(CMAKE_INSTALL_PREFIX "C:/")
149 endif()
150endif()
151
152# GCC or Clang specialities
153if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU" OR
154 "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
155 ### General stuff
156 if(WIN32)
157 set(CMAKE_SHARED_LIBRARY_PREFIX "") # DLLs do not have a "lib" prefix
158 set(CMAKE_IMPORT_LIBRARY_PREFIX "") # same for DLL import libs
159 set(CMAKE_LINK_DEF_FILE_FLAG "") # CMake workaround (2.8.3)
160 endif()
161
162 ### Project stuff
163 if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
164 set(CMAKE_BUILD_TYPE Release)
165 endif()
166 #
167 set(CMAKE_CXX_FLAGS_RELEASE "-O2")
168 set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
169 set(CMAKE_CXX_FLAGS_DEBUG "-g")
170 set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os")
171 #
172 set(GCC_EXTRA_OPTIONS "")
173 #
174 set(FLAG_TESTED "-Wextra")
175 check_cxx_compiler_flag(${FLAG_TESTED} FLAG_WEXTRA)
176 if(FLAG_WEXTRA)
177 set(GCC_EXTRA_OPTIONS "${GCC_EXTRA_OPTIONS} ${FLAG_TESTED}")
178 endif()
179 #
180 set(yaml_cxx_flags "-Wall ${GCC_EXTRA_OPTIONS} -pedantic -Wno-long-long ${yaml_cxx_flags}")
181
182 ### Make specific
183 if(${CMAKE_BUILD_TOOL} MATCHES make OR ${CMAKE_BUILD_TOOL} MATCHES gmake)
184 add_custom_target(debuggable $(MAKE) clean
185 COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR}
186 COMMENT "Adjusting settings for debug compilation"
187 VERBATIM)
188 add_custom_target(releasable $(MAKE) clean
189 COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}
190 COMMENT "Adjusting settings for release compilation"
191 VERBATIM)
192 endif()
193endif()
194
195# Microsoft VisualC++ specialities
196if(MSVC)
197 ### General stuff
198 # a) Change MSVC runtime library settings (/MD[d], /MT[d], /ML[d] (single-threaded until VS 2003))
199 # plus set lib suffix for later use and project label accordingly
200 # see http://msdn.microsoft.com/en-us/library/aa278396(v=VS.60).aspx
201 # http://msdn.microsoft.com/en-us/library/2kzt1wy3(v=VS.71).aspx
202 set(LIB_RT_SUFFIX "md") # CMake defaults to /MD for MSVC
203 set(LIB_RT_OPTION "/MD")
204 #
205 if(NOT MSVC_SHARED_RT) # User wants to have static runtime libraries (/MT, /ML)
206 if(MSVC_STHREADED_RT) # User wants to have old single-threaded static runtime libraries
207 set(LIB_RT_SUFFIX "ml")
208 set(LIB_RT_OPTION "/ML")
209 if(NOT ${MSVC_VERSION} LESS 1400)
210 message(FATAL_ERROR "Single-threaded static runtime libraries (/ML) only available until VS .NET 2003 (7.1).")
211 endif()
212 else()
213 set(LIB_RT_SUFFIX "mt")
214 set(LIB_RT_OPTION "/MT")
215 endif()
216
217 # correct linker options
218 foreach(flag_var yaml_c_flags yaml_cxx_flags)
219 foreach(config_name "" DEBUG RELEASE MINSIZEREL RELWITHDEBINFO)
220 set(var_name "${flag_var}")
221 if(NOT "${config_name}" STREQUAL "")
222 set(var_name "${var_name}_${config_name}")
223 endif()
224 string(REPLACE "/MD" "${LIB_RT_OPTION}" ${var_name} "${${var_name}}")
225 endforeach()
226 endforeach()
227 endif()
228 #
229 set(LABEL_SUFFIX "${LABEL_SUFFIX} ${LIB_RT_SUFFIX}")
230
231 # b) Change prefix for static libraries
232 set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # to distinguish static libraries from DLL import libs
233
234 # c) Correct suffixes for static libraries
235 if(NOT BUILD_SHARED_LIBS)
236 ### General stuff
237 set(LIB_TARGET_SUFFIX "${LIB_SUFFIX}${LIB_RT_SUFFIX}")
238 endif()
239
240 ### Project stuff
241 # /W3 = set warning level; see http://msdn.microsoft.com/en-us/library/thxezb7y.aspx
242 # /wd4127 = disable warning C4127 "conditional expression is constant"; see http://msdn.microsoft.com/en-us/library/6t66728h.aspx
243 # /wd4355 = disable warning C4355 "'this' : used in base member initializer list"; http://msdn.microsoft.com/en-us/library/3c594ae3.aspx
244 set(yaml_cxx_flags "/W3 /wd4127 /wd4355 ${yaml_cxx_flags}")
245endif()
246
247
248###
249### General install settings
250###
251if(WIN32)
252 set(_library_dir bin) # .dll are in PATH, like executables
253else()
254 set(_library_dir ${CMAKE_INSTALL_PREFIX}/lib)
255endif()
256
257set(INCLUDE_INSTALL_ROOT_DIR include)
258
259set(INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_ROOT_DIR}/yaml-cpp)
260SET(LIB_INSTALL_DIR "${_library_dir}${LIB_SUFFIX}" CACHE
261 "Directory relative to CMAKE_INSTALL_PREFIX in which to install libraries"
262 STRING)
263MARK_AS_ADVANCED(LIB_INSTALL_DIR)
264
265set(_INSTALL_DESTINATIONS
266 RUNTIME DESTINATION bin
267 LIBRARY DESTINATION ${LIB_INSTALL_DIR}
268 ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
269)
270
271
272###
273### Library
274###
275add_library(yaml-cpp ${library_sources})
276set_target_properties(yaml-cpp PROPERTIES
277 COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags}"
278)
279
280set_target_properties(yaml-cpp PROPERTIES
281 VERSION "${YAML_CPP_VERSION}"
282 SOVERSION "${YAML_CPP_VERSION_MAJOR}.${YAML_CPP_VERSION_MINOR}"
283 PROJECT_LABEL "yaml-cpp ${LABEL_SUFFIX}"
284)
285
286if(IPHONE)
287 set_target_properties(yaml-cpp PROPERTIES
288 XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "3.0"
289 )
290endif()
291
292if(MSVC)
293 if(NOT BUILD_SHARED_LIBS)
294 # correct library names
295 set_target_properties(yaml-cpp PROPERTIES
296 DEBUG_POSTFIX "${LIB_TARGET_SUFFIX}d"
297 RELEASE_POSTFIX "${LIB_TARGET_SUFFIX}"
298 MINSIZEREL_POSTFIX "${LIB_TARGET_SUFFIX}"
299 RELWITHDEBINFO_POSTFIX "${LIB_TARGET_SUFFIX}"
300 )
301 endif()
302endif()
303
304install(TARGETS yaml-cpp EXPORT yaml-cpp-targets ${_INSTALL_DESTINATIONS})
305install(
306 DIRECTORY ${header_directory}
307 DESTINATION ${INCLUDE_INSTALL_DIR}
308 FILES_MATCHING PATTERN "*.h"
309)
310
311export(
312 TARGETS yaml-cpp
313 FILE "${PROJECT_BINARY_DIR}/yaml-cpp-targets.cmake")
314export(PACKAGE yaml-cpp)
315set(EXPORT_TARGETS yaml-cpp CACHE INTERNAL "export targets")
316
317set(CONFIG_INCLUDE_DIRS "${YAML_CPP_SOURCE_DIR}/include")
318configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in
319 "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" @ONLY)
320
321set(INSTALL_CMAKE_DIR ${LIB_INSTALL_DIR}/cmake/yaml-cpp)
322file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/include")
323set(CONFIG_INCLUDE_DIRS "\${YAML_CPP_CMAKE_DIR}/${REL_INCLUDE_DIR}")
324configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in
325 "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/yaml-cpp-config.cmake" @ONLY)
326
327configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config-version.cmake.in
328 "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" @ONLY)
329
330install(FILES
331 "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/yaml-cpp-config.cmake"
332 "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake"
333 DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev)
334install(EXPORT yaml-cpp-targets DESTINATION ${INSTALL_CMAKE_DIR})
335
336if(UNIX)
337 set(PC_FILE ${CMAKE_BINARY_DIR}/yaml-cpp.pc)
338 configure_file("yaml-cpp.pc.cmake" ${PC_FILE} @ONLY)
339 install(FILES ${PC_FILE} DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
340endif()
341
342
343###
344### Extras
345###
346if(YAML_CPP_BUILD_TOOLS)
347 add_subdirectory(test)
348 add_subdirectory(util)
349endif()
350
351### Formatting
352get_property(all_sources GLOBAL PROPERTY SRCS_LIST)
353add_custom_target(format
354 COMMAND clang-format --style=file -i ${all_sources}
355 COMMENT "Running clang-format"
356 VERBATIM)
0357
=== added directory 'dist/yaml-cpp/debian'
=== added file 'dist/yaml-cpp/debian/changelog'
--- dist/yaml-cpp/debian/changelog 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/changelog 2016-10-18 07:57:32 +0000
@@ -0,0 +1,56 @@
1yaml-cpp (0.5.2-3) unstable; urgency=medium
2
3 * Fix error in yaml-cpp-config.cmake
4 * Disable gtest's use of pthread on hurd and kfreebsd
5
6 -- Paul Novotny <paul@paulnovo.us> Mon, 30 Nov 2015 16:53:57 -0500
7
8yaml-cpp (0.5.2-2) unstable; urgency=medium
9
10 * Rename libyaml-cpp0.5 to libyaml-cpp0.5v5 for gcc5 transition
11 (Closes: #791317)
12
13 -- Paul Novotny <paul@paulnovo.us> Tue, 04 Aug 2015 18:03:35 -0400
14
15yaml-cpp (0.5.2-1) unstable; urgency=medium
16
17 * Update due to yaml-cpp from Google Code to GitHub
18 * Imported Upstream version 0.5.2
19 * Remove patches/fix-unit-test.patch, applied upstream
20 * Remove patches/remove-conflicting-google-libs.patch, applied upstream
21
22 -- Paul Novotny <paul@paulnovo.us> Thu, 23 Apr 2015 16:40:20 -0400
23
24yaml-cpp (0.5.1+hg20150210-1) experimental; urgency=medium
25
26 [ Andreas Tille ]
27 * Import latest upstream
28 * Fix failing unit tests
29 * Inject package into collab-maint to enable more people contributing
30 * cme fix dpkg-control
31 * debhelper 9
32
33 [ Paul Novotny ]
34 * Add myself as Uploader
35 * Import latest upstream VCS status
36 * Fix failing unit tests, update version number
37 * Install cmake development files
38
39 -- Andreas Tille <tille@debian.org> Mon, 09 Feb 2015 13:36:42 +0100
40
41yaml-cpp (0.5.1-1) unstable; urgency=low
42
43 * New upstream release. (Closes: #706708)
44 * Bump Standards-Version to 3.9.4.
45 * libyaml-cpp-dev: remove multiarch path in yaml-cpp.pc to make
46 lintian happy.
47 * debian/copyright: new Format URI.
48 * debian/control: remove Vcs-Svn field.
49
50 -- Lifeng Sun <lifongsun@gmail.com> Fri, 30 Aug 2013 18:29:05 +0800
51
52yaml-cpp (0.3.0-1) unstable; urgency=low
53
54 * Initial release (Closes: #636985)
55
56 -- Lifeng Sun <lifongsun@gmail.com> Sun, 03 Jun 2012 23:48:30 +0800
057
=== added file 'dist/yaml-cpp/debian/compat'
--- dist/yaml-cpp/debian/compat 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/compat 2016-10-18 07:57:32 +0000
@@ -0,0 +1,1 @@
19
02
=== added file 'dist/yaml-cpp/debian/control'
--- dist/yaml-cpp/debian/control 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/control 2016-10-18 07:57:32 +0000
@@ -0,0 +1,39 @@
1Source: yaml-cpp
2Maintainer: Lifeng Sun <lifongsun@gmail.com>
3Uploaders: Andreas Tille <tille@debian.org>,
4 Paul Novotny <paul@paulnovo.us>
5Section: devel
6Priority: optional
7Build-Depends: debhelper (>= 9),
8 cmake,
9 libboost-dev
10Standards-Version: 3.9.6
11Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/yaml-cpp.git
12Vcs-Git: git://anonscm.debian.org/collab-maint/yaml-cpp.git
13Homepage: https://github.com/jbeder/yaml-cpp
14
15Package: libyaml-cpp0.5v5
16Architecture: any
17Multi-Arch: same
18Section: libs
19Depends: ${shlibs:Depends},
20 ${misc:Depends}
21Pre-Depends: ${misc:Pre-Depends}
22Conflicts: libyaml-cpp0.5
23Replaces: libyaml-cpp0.5
24Description: YAML parser and emitter for C++
25 yaml-cpp is a C++ library for parsing and emitting data in YAML 1.2, a
26 human-readable data serialization format.
27 .
28 This package provides run-time library of yaml-cpp.
29
30Package: libyaml-cpp-dev
31Architecture: any
32Section: libdevel
33Depends: libyaml-cpp0.5v5 (= ${binary:Version}),
34 ${misc:Depends}
35Description: YAML parser and emitter for C++ - development files
36 yaml-cpp is a C++ library for parsing and emitting data in YAML 1.2, a
37 human-readable data serialization format.
38 .
39 This package provides development files of yaml-cpp.
040
=== added file 'dist/yaml-cpp/debian/copyright'
--- dist/yaml-cpp/debian/copyright 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/copyright 2016-10-18 07:57:32 +0000
@@ -0,0 +1,44 @@
1Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2Upstream-Name: yaml-cpp
3Source: https://github.com/jbeder/yaml-cpp
4
5Files: *
6Copyright: 2008 Jesse Beder <jbeder@gmail.com>
7License: X11
8 Permission is hereby granted, free of charge, to any person obtaining a
9 copy of this software and associated documentation files (the "Software"),
10 to deal in the Software without restriction, including without limitation
11 the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 and/or sell copies of the Software, and to permit persons to whom the
13 Software is furnished to do so, subject to the following conditions:
14 .
15 The above copyright notice and this permission notice shall be included
16 in all copies or substantial portions of the Software.
17 .
18 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21 IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
22 OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
24 OTHER DEALINGS IN THE SOFTWARE.
25
26Files: debian/*
27Copyright: 2011-2013 Lifeng Sun <lifongsun@gmail.com>
28License: GPL-2.0+
29 This package is free software; you can redistribute it and/or modify
30 it under the terms of the GNU General Public License as published by
31 the Free Software Foundation; either version 2 of the License, or
32 (at your option) any later version.
33 .
34 This package is distributed in the hope that it will be useful,
35 but WITHOUT ANY WARRANTY; without even the implied warranty of
36 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
37 GNU General Public License for more details.
38 .
39 You should have received a copy of the GNU General Public License
40 along with this program. If not, see <http://www.gnu.org/licenses/>
41 .
42 On Debian systems, the complete text of the GNU General
43 Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
44
045
=== added file 'dist/yaml-cpp/debian/libyaml-cpp-dev.install'
--- dist/yaml-cpp/debian/libyaml-cpp-dev.install 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/libyaml-cpp-dev.install 2016-10-18 07:57:32 +0000
@@ -0,0 +1,5 @@
1usr/include/
2usr/lib/*/*.a
3usr/lib/*/*.so
4usr/lib/*/pkgconfig/
5usr/lib/*/cmake/
06
=== added file 'dist/yaml-cpp/debian/libyaml-cpp0.5v5.install'
--- dist/yaml-cpp/debian/libyaml-cpp0.5v5.install 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/libyaml-cpp0.5v5.install 2016-10-18 07:57:32 +0000
@@ -0,0 +1,1 @@
1usr/lib/*/libyaml-cpp.so.*
02
=== added directory 'dist/yaml-cpp/debian/patches'
=== added file 'dist/yaml-cpp/debian/patches/install-cmake-dev-files.patch'
--- dist/yaml-cpp/debian/patches/install-cmake-dev-files.patch 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/patches/install-cmake-dev-files.patch 2016-10-18 07:57:32 +0000
@@ -0,0 +1,69 @@
1Description: Install libs and cmake files to the Debian location
2 Instead of moving the libs to the DEB_HOST_MULTIARCH lib directory during
3 packaging, have cmake install the libs directly. This is needed so the CMake
4 development files point to the correct location for the libs. Also, install
5 yaml-cpp-config.cmake, yaml-cpp-config-version.cmake, and
6 yaml-cpp-targets.cmake.
7Author: Paul Novotny <paul@paulnovo.us>
8Forwarded: not-needed
9Last-Update: 2015-11-29
10
11--- a/CMakeLists.txt
12+++ b/CMakeLists.txt
13@@ -251,18 +251,21 @@
14 if(WIN32)
15 set(_library_dir bin) # .dll are in PATH, like executables
16 else()
17- set(_library_dir lib)
18+ set(_library_dir ${CMAKE_INSTALL_PREFIX}/lib)
19 endif()
20
21 set(INCLUDE_INSTALL_ROOT_DIR include)
22
23 set(INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_ROOT_DIR}/yaml-cpp)
24-set(LIB_INSTALL_DIR "${_library_dir}${LIB_SUFFIX}")
25+SET(LIB_INSTALL_DIR "${_library_dir}${LIB_SUFFIX}" CACHE
26+ "Directory relative to CMAKE_INSTALL_PREFIX in which to install libraries"
27+ STRING)
28+MARK_AS_ADVANCED(LIB_INSTALL_DIR)
29
30 set(_INSTALL_DESTINATIONS
31 RUNTIME DESTINATION bin
32 LIBRARY DESTINATION ${LIB_INSTALL_DIR}
33- ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
34+ ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
35 )
36
37
38@@ -298,7 +301,7 @@
39 endif()
40 endif()
41
42-install(TARGETS yaml-cpp ${_INSTALL_DESTINATIONS})
43+install(TARGETS yaml-cpp EXPORT yaml-cpp-targets ${_INSTALL_DESTINATIONS})
44 install(
45 DIRECTORY ${header_directory}
46 DESTINATION ${INCLUDE_INSTALL_DIR}
47@@ -314,9 +317,22 @@
48 set(CONFIG_INCLUDE_DIRS "${YAML_CPP_SOURCE_DIR}/include")
49 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in
50 "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" @ONLY)
51+
52+set(INSTALL_CMAKE_DIR ${LIB_INSTALL_DIR}/cmake/yaml-cpp)
53+file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_PREFIX}/include")
54+set(CONFIG_INCLUDE_DIRS "\${YAML_CPP_CMAKE_DIR}/${REL_INCLUDE_DIR}")
55+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in
56+ "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/yaml-cpp-config.cmake" @ONLY)
57+
58 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config-version.cmake.in
59 "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" @ONLY)
60
61+install(FILES
62+ "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/yaml-cpp-config.cmake"
63+ "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake"
64+ DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev)
65+install(EXPORT yaml-cpp-targets DESTINATION ${INSTALL_CMAKE_DIR})
66+
67 if(UNIX)
68 set(PC_FILE ${CMAKE_BINARY_DIR}/yaml-cpp.pc)
69 configure_file("yaml-cpp.pc.cmake" ${PC_FILE} @ONLY)
070
=== added file 'dist/yaml-cpp/debian/patches/pkgconfig.patch'
--- dist/yaml-cpp/debian/patches/pkgconfig.patch 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/patches/pkgconfig.patch 2016-10-18 07:57:32 +0000
@@ -0,0 +1,19 @@
1Author: Lifeng Sun <lifongsun@gmail.com>
2Last-Update: Fri, 30 Aug 2013 18:29:05 +0800
3Description: remove multiarch path in yaml-cpp.pc
4
5--- a/yaml-cpp.pc.cmake
6+++ b/yaml-cpp.pc.cmake
7@@ -1,11 +1,10 @@
8 prefix=@CMAKE_INSTALL_PREFIX@
9 exec_prefix=@CMAKE_INSTALL_PREFIX@
10-libdir=${prefix}/@LIB_INSTALL_DIR@
11 includedir=${prefix}/@INCLUDE_INSTALL_ROOT_DIR@
12
13 Name: Yaml-cpp
14 Description: A YAML parser and emitter for C++
15 Version: @YAML_CPP_VERSION@
16 Requires:
17-Libs: -L${libdir} -lyaml-cpp
18+Libs: -lyaml-cpp
19 Cflags: -I${includedir}
020
=== added file 'dist/yaml-cpp/debian/patches/series'
--- dist/yaml-cpp/debian/patches/series 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/patches/series 2016-10-18 07:57:32 +0000
@@ -0,0 +1,2 @@
1pkgconfig.patch
2install-cmake-dev-files.patch
03
=== added file 'dist/yaml-cpp/debian/rules'
--- dist/yaml-cpp/debian/rules 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/rules 2016-10-18 07:57:32 +0000
@@ -0,0 +1,64 @@
1#!/usr/bin/make -f
2
3# Uncomment this to turn on verbose mode.
4#export DH_VERBOSE=1
5
6# This has to be exported to make some magic below work.
7export DH_OPTIONS
8
9DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
10
11CPPFLAGS :=$(shell dpkg-buildflags --get CPPFLAGS)
12CFLAGS :=$(shell dpkg-buildflags --get CFLAGS)
13CXXFLAGS :=$(shell dpkg-buildflags --get CXXFLAGS)
14LDFLAGS :=$(shell dpkg-buildflags --get LDFLAGS)
15
16export DEB_HOST_MULTIARCH CPPFLAGS CFLAGS CXXFLAGS LDFLAGS
17
18ifeq (,$(filter $(DEB_BUILD_ARCH),kfreebsd-amd64 kfreebsd-i386 hurd-i386))
19 DISABLE_PTHREADS=OFF
20else
21 DISABLE_PTHREADS=ON
22endif
23
24override_dh_auto_configure:
25 dh_testdir
26 mkdir build-static; cd build-static; \
27 cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
28 -DLIB_INSTALL_DIR=/usr/lib/$(DEB_HOST_MULTIARCH) \
29 -DYAML_CPP_BUILD_TOOLS=ON \
30 -Dgtest_disable_pthreads=$(DISABLE_PTHREADS)
31 mkdir build-shared; cd build-shared; \
32 cmake .. -DCMAKE_INSTALL_PREFIX=/usr \
33 -DLIB_INSTALL_DIR=/usr/lib/$(DEB_HOST_MULTIARCH) \
34 -DBUILD_SHARED_LIBS=ON \
35 -DYAML_CPP_BUILD_TOOLS=ON \
36 -Dgtest_disable_pthreads=$(DISABLE_PTHREADS)
37
38override_dh_auto_build:
39 dh_testdir
40 $(MAKE) -C build-static
41 $(MAKE) -C build-shared
42 # It might make sense to also provide the utils in a separate package
43 # $(MAKE) -C build-shared util
44
45override_dh_auto_install:
46 dh_testdir
47 dh_prep
48 $(MAKE) -C build-static install DESTDIR=$(CURDIR)/debian/tmp
49 $(MAKE) -C build-shared install DESTDIR=$(CURDIR)/debian/tmp
50
51override_dh_auto_test:
52 $(MAKE) -C build-static test
53 $(MAKE) -C build-shared test
54
55clean:
56 dh_testdir
57 dh_auto_clean
58 dh_clean
59 rm -rf build-static build-shared
60
61%:
62 dh $@
63
64.PHONY: clean
065
=== added directory 'dist/yaml-cpp/debian/source'
=== added file 'dist/yaml-cpp/debian/source/format'
--- dist/yaml-cpp/debian/source/format 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/source/format 2016-10-18 07:57:32 +0000
@@ -0,0 +1,1 @@
13.0 (quilt)
02
=== added file 'dist/yaml-cpp/debian/watch'
--- dist/yaml-cpp/debian/watch 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/debian/watch 2016-10-18 07:57:32 +0000
@@ -0,0 +1,3 @@
1version=3
2opts=filenamemangle=s/.+\/release-?(\d\S*)\.tar\.gz/yaml-cpp-$1\.tar\.gz/ \
3 https://github.com/jbeder/yaml-cpp/releases .*/release-?(\d\S*)\.tar\.gz
04
=== added directory 'dist/yaml-cpp/include'
=== added directory 'dist/yaml-cpp/include/yaml-cpp'
=== added file 'dist/yaml-cpp/include/yaml-cpp/anchor.h'
--- dist/yaml-cpp/include/yaml-cpp/anchor.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/anchor.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,17 @@
1#ifndef ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include <cstddef>
11
12namespace YAML {
13typedef std::size_t anchor_t;
14const anchor_t NullAnchor = 0;
15}
16
17#endif // ANCHOR_H_62B23520_7C8E_11DE_8A39_0800200C9A66
018
=== added file 'dist/yaml-cpp/include/yaml-cpp/binary.h'
--- dist/yaml-cpp/include/yaml-cpp/binary.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/binary.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,67 @@
1#ifndef BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include <string>
11#include <vector>
12
13#include "yaml-cpp/dll.h"
14
15namespace YAML {
16YAML_CPP_API std::string EncodeBase64(const unsigned char *data,
17 std::size_t size);
18YAML_CPP_API std::vector<unsigned char> DecodeBase64(const std::string &input);
19
20class YAML_CPP_API Binary {
21 public:
22 Binary() : m_unownedData(0), m_unownedSize(0) {}
23 Binary(const unsigned char *data_, std::size_t size_)
24 : m_unownedData(data_), m_unownedSize(size_) {}
25
26 bool owned() const { return !m_unownedData; }
27 std::size_t size() const { return owned() ? m_data.size() : m_unownedSize; }
28 const unsigned char *data() const {
29 return owned() ? &m_data[0] : m_unownedData;
30 }
31
32 void swap(std::vector<unsigned char> &rhs) {
33 if (m_unownedData) {
34 m_data.swap(rhs);
35 rhs.clear();
36 rhs.resize(m_unownedSize);
37 std::copy(m_unownedData, m_unownedData + m_unownedSize, rhs.begin());
38 m_unownedData = 0;
39 m_unownedSize = 0;
40 } else {
41 m_data.swap(rhs);
42 }
43 }
44
45 bool operator==(const Binary &rhs) const {
46 const std::size_t s = size();
47 if (s != rhs.size())
48 return false;
49 const unsigned char *d1 = data();
50 const unsigned char *d2 = rhs.data();
51 for (std::size_t i = 0; i < s; i++) {
52 if (*d1++ != *d2++)
53 return false;
54 }
55 return true;
56 }
57
58 bool operator!=(const Binary &rhs) const { return !(*this == rhs); }
59
60 private:
61 std::vector<unsigned char> m_data;
62 const unsigned char *m_unownedData;
63 std::size_t m_unownedSize;
64};
65}
66
67#endif // BASE64_H_62B23520_7C8E_11DE_8A39_0800200C9A66
068
=== added directory 'dist/yaml-cpp/include/yaml-cpp/contrib'
=== added file 'dist/yaml-cpp/include/yaml-cpp/contrib/anchordict.h'
--- dist/yaml-cpp/include/yaml-cpp/contrib/anchordict.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/contrib/anchordict.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,37 @@
1#ifndef ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include <vector>
11
12#include "../anchor.h"
13
14namespace YAML {
15/// AnchorDict
16/// . An object that stores and retrieves values correlating to anchor_t
17/// values.
18/// . Efficient implementation that can make assumptions about how anchor_t
19/// values are assigned by the Parser class.
20template <class T>
21class AnchorDict {
22 public:
23 void Register(anchor_t anchor, T value) {
24 if (anchor > m_data.size()) {
25 m_data.resize(anchor);
26 }
27 m_data[anchor - 1] = value;
28 }
29
30 T Get(anchor_t anchor) const { return m_data[anchor - 1]; }
31
32 private:
33 std::vector<T> m_data;
34};
35}
36
37#endif // ANCHORDICT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
038
=== added file 'dist/yaml-cpp/include/yaml-cpp/contrib/graphbuilder.h'
--- dist/yaml-cpp/include/yaml-cpp/contrib/graphbuilder.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/contrib/graphbuilder.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,147 @@
1#ifndef GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include "yaml-cpp/mark.h"
11#include <string>
12
13namespace YAML {
14class Parser;
15
16// GraphBuilderInterface
17// . Abstraction of node creation
18// . pParentNode is always NULL or the return value of one of the NewXXX()
19// functions.
20class GraphBuilderInterface {
21 public:
22 // Create and return a new node with a null value.
23 virtual void *NewNull(const Mark &mark, void *pParentNode) = 0;
24
25 // Create and return a new node with the given tag and value.
26 virtual void *NewScalar(const Mark &mark, const std::string &tag,
27 void *pParentNode, const std::string &value) = 0;
28
29 // Create and return a new sequence node
30 virtual void *NewSequence(const Mark &mark, const std::string &tag,
31 void *pParentNode) = 0;
32
33 // Add pNode to pSequence. pNode was created with one of the NewXxx()
34 // functions and pSequence with NewSequence().
35 virtual void AppendToSequence(void *pSequence, void *pNode) = 0;
36
37 // Note that no moew entries will be added to pSequence
38 virtual void SequenceComplete(void *pSequence) { (void)pSequence; }
39
40 // Create and return a new map node
41 virtual void *NewMap(const Mark &mark, const std::string &tag,
42 void *pParentNode) = 0;
43
44 // Add the pKeyNode => pValueNode mapping to pMap. pKeyNode and pValueNode
45 // were created with one of the NewXxx() methods and pMap with NewMap().
46 virtual void AssignInMap(void *pMap, void *pKeyNode, void *pValueNode) = 0;
47
48 // Note that no more assignments will be made in pMap
49 virtual void MapComplete(void *pMap) { (void)pMap; }
50
51 // Return the node that should be used in place of an alias referencing
52 // pNode (pNode by default)
53 virtual void *AnchorReference(const Mark &mark, void *pNode) {
54 (void)mark;
55 return pNode;
56 }
57};
58
59// Typesafe wrapper for GraphBuilderInterface. Assumes that Impl defines
60// Node, Sequence, and Map types. Sequence and Map must derive from Node
61// (unless Node is defined as void). Impl must also implement function with
62// all of the same names as the virtual functions in GraphBuilderInterface
63// -- including the ones with default implementations -- but with the
64// prototypes changed to accept an explicit Node*, Sequence*, or Map* where
65// appropriate.
66template <class Impl>
67class GraphBuilder : public GraphBuilderInterface {
68 public:
69 typedef typename Impl::Node Node;
70 typedef typename Impl::Sequence Sequence;
71 typedef typename Impl::Map Map;
72
73 GraphBuilder(Impl &impl) : m_impl(impl) {
74 Map *pMap = NULL;
75 Sequence *pSeq = NULL;
76 Node *pNode = NULL;
77
78 // Type consistency checks
79 pNode = pMap;
80 pNode = pSeq;
81 }
82
83 GraphBuilderInterface &AsBuilderInterface() { return *this; }
84
85 virtual void *NewNull(const Mark &mark, void *pParentNode) {
86 return CheckType<Node>(m_impl.NewNull(mark, AsNode(pParentNode)));
87 }
88
89 virtual void *NewScalar(const Mark &mark, const std::string &tag,
90 void *pParentNode, const std::string &value) {
91 return CheckType<Node>(
92 m_impl.NewScalar(mark, tag, AsNode(pParentNode), value));
93 }
94
95 virtual void *NewSequence(const Mark &mark, const std::string &tag,
96 void *pParentNode) {
97 return CheckType<Sequence>(
98 m_impl.NewSequence(mark, tag, AsNode(pParentNode)));
99 }
100 virtual void AppendToSequence(void *pSequence, void *pNode) {
101 m_impl.AppendToSequence(AsSequence(pSequence), AsNode(pNode));
102 }
103 virtual void SequenceComplete(void *pSequence) {
104 m_impl.SequenceComplete(AsSequence(pSequence));
105 }
106
107 virtual void *NewMap(const Mark &mark, const std::string &tag,
108 void *pParentNode) {
109 return CheckType<Map>(m_impl.NewMap(mark, tag, AsNode(pParentNode)));
110 }
111 virtual void AssignInMap(void *pMap, void *pKeyNode, void *pValueNode) {
112 m_impl.AssignInMap(AsMap(pMap), AsNode(pKeyNode), AsNode(pValueNode));
113 }
114 virtual void MapComplete(void *pMap) { m_impl.MapComplete(AsMap(pMap)); }
115
116 virtual void *AnchorReference(const Mark &mark, void *pNode) {
117 return CheckType<Node>(m_impl.AnchorReference(mark, AsNode(pNode)));
118 }
119
120 private:
121 Impl &m_impl;
122
123 // Static check for pointer to T
124 template <class T, class U>
125 static T *CheckType(U *p) {
126 return p;
127 }
128
129 static Node *AsNode(void *pNode) { return static_cast<Node *>(pNode); }
130 static Sequence *AsSequence(void *pSeq) {
131 return static_cast<Sequence *>(pSeq);
132 }
133 static Map *AsMap(void *pMap) { return static_cast<Map *>(pMap); }
134};
135
136void *BuildGraphOfNextDocument(Parser &parser,
137 GraphBuilderInterface &graphBuilder);
138
139template <class Impl>
140typename Impl::Node *BuildGraphOfNextDocument(Parser &parser, Impl &impl) {
141 GraphBuilder<Impl> graphBuilder(impl);
142 return static_cast<typename Impl::Node *>(
143 BuildGraphOfNextDocument(parser, graphBuilder));
144}
145}
146
147#endif // GRAPHBUILDER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
0148
=== added file 'dist/yaml-cpp/include/yaml-cpp/dll.h'
--- dist/yaml-cpp/include/yaml-cpp/dll.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/dll.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,37 @@
1#ifndef DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10// The following ifdef block is the standard way of creating macros which make
11// exporting
12// from a DLL simpler. All files within this DLL are compiled with the
13// yaml_cpp_EXPORTS
14// symbol defined on the command line. this symbol should not be defined on any
15// project
16// that uses this DLL. This way any other project whose source files include
17// this file see
18// YAML_CPP_API functions as being imported from a DLL, whereas this DLL sees
19// symbols
20// defined with this macro as being exported.
21#undef YAML_CPP_API
22
23#ifdef YAML_CPP_DLL // Using or Building YAML-CPP DLL (definition defined
24 // manually)
25#ifdef yaml_cpp_EXPORTS // Building YAML-CPP DLL (definition created by CMake
26 // or defined manually)
27// #pragma message( "Defining YAML_CPP_API for DLL export" )
28#define YAML_CPP_API __declspec(dllexport)
29#else // yaml_cpp_EXPORTS
30// #pragma message( "Defining YAML_CPP_API for DLL import" )
31#define YAML_CPP_API __declspec(dllimport)
32#endif // yaml_cpp_EXPORTS
33#else // YAML_CPP_DLL
34#define YAML_CPP_API
35#endif // YAML_CPP_DLL
36
37#endif // DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66
038
=== added file 'dist/yaml-cpp/include/yaml-cpp/emitfromevents.h'
--- dist/yaml-cpp/include/yaml-cpp/emitfromevents.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/emitfromevents.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,57 @@
1#ifndef EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include <stack>
11
12#include "yaml-cpp/anchor.h"
13#include "yaml-cpp/emitterstyle.h"
14#include "yaml-cpp/eventhandler.h"
15
16namespace YAML {
17struct Mark;
18} // namespace YAML
19
20namespace YAML {
21class Emitter;
22
23class EmitFromEvents : public EventHandler {
24 public:
25 EmitFromEvents(Emitter& emitter);
26
27 virtual void OnDocumentStart(const Mark& mark);
28 virtual void OnDocumentEnd();
29
30 virtual void OnNull(const Mark& mark, anchor_t anchor);
31 virtual void OnAlias(const Mark& mark, anchor_t anchor);
32 virtual void OnScalar(const Mark& mark, const std::string& tag,
33 anchor_t anchor, const std::string& value);
34
35 virtual void OnSequenceStart(const Mark& mark, const std::string& tag,
36 anchor_t anchor, EmitterStyle::value style);
37 virtual void OnSequenceEnd();
38
39 virtual void OnMapStart(const Mark& mark, const std::string& tag,
40 anchor_t anchor, EmitterStyle::value style);
41 virtual void OnMapEnd();
42
43 private:
44 void BeginNode();
45 void EmitProps(const std::string& tag, anchor_t anchor);
46
47 private:
48 Emitter& m_emitter;
49
50 struct State {
51 enum value { WaitingForSequenceEntry, WaitingForKey, WaitingForValue };
52 };
53 std::stack<State::value> m_stateStack;
54};
55}
56
57#endif // EMITFROMEVENTS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
058
=== added file 'dist/yaml-cpp/include/yaml-cpp/emitter.h'
--- dist/yaml-cpp/include/yaml-cpp/emitter.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/emitter.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,254 @@
1#ifndef EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include <cstddef>
11#include <memory>
12#include <sstream>
13#include <string>
14
15#include "yaml-cpp/binary.h"
16#include "yaml-cpp/dll.h"
17#include "yaml-cpp/emitterdef.h"
18#include "yaml-cpp/emittermanip.h"
19#include "yaml-cpp/noncopyable.h"
20#include "yaml-cpp/null.h"
21#include "yaml-cpp/ostream_wrapper.h"
22
23namespace YAML {
24class Binary;
25struct _Null;
26} // namespace YAML
27
28namespace YAML {
29class EmitterState;
30
31class YAML_CPP_API Emitter : private noncopyable {
32 public:
33 Emitter();
34 explicit Emitter(std::ostream& stream);
35 ~Emitter();
36
37 // output
38 const char* c_str() const;
39 std::size_t size() const;
40
41 // state checking
42 bool good() const;
43 const std::string GetLastError() const;
44
45 // global setters
46 bool SetOutputCharset(EMITTER_MANIP value);
47 bool SetStringFormat(EMITTER_MANIP value);
48 bool SetBoolFormat(EMITTER_MANIP value);
49 bool SetIntBase(EMITTER_MANIP value);
50 bool SetSeqFormat(EMITTER_MANIP value);
51 bool SetMapFormat(EMITTER_MANIP value);
52 bool SetIndent(std::size_t n);
53 bool SetPreCommentIndent(std::size_t n);
54 bool SetPostCommentIndent(std::size_t n);
55 bool SetFloatPrecision(std::size_t n);
56 bool SetDoublePrecision(std::size_t n);
57
58 // local setters
59 Emitter& SetLocalValue(EMITTER_MANIP value);
60 Emitter& SetLocalIndent(const _Indent& indent);
61 Emitter& SetLocalPrecision(const _Precision& precision);
62
63 // overloads of write
64 Emitter& Write(const std::string& str);
65 Emitter& Write(bool b);
66 Emitter& Write(char ch);
67 Emitter& Write(const _Alias& alias);
68 Emitter& Write(const _Anchor& anchor);
69 Emitter& Write(const _Tag& tag);
70 Emitter& Write(const _Comment& comment);
71 Emitter& Write(const _Null& n);
72 Emitter& Write(const Binary& binary);
73
74 template <typename T>
75 Emitter& WriteIntegralType(T value);
76
77 template <typename T>
78 Emitter& WriteStreamable(T value);
79
80 private:
81 template <typename T>
82 void SetStreamablePrecision(std::stringstream&) {}
83 std::size_t GetFloatPrecision() const;
84 std::size_t GetDoublePrecision() const;
85
86 void PrepareIntegralStream(std::stringstream& stream) const;
87 void StartedScalar();
88
89 private:
90 void EmitBeginDoc();
91 void EmitEndDoc();
92 void EmitBeginSeq();
93 void EmitEndSeq();
94 void EmitBeginMap();
95 void EmitEndMap();
96 void EmitNewline();
97 void EmitKindTag();
98 void EmitTag(bool verbatim, const _Tag& tag);
99
100 void PrepareNode(EmitterNodeType::value child);
101 void PrepareTopNode(EmitterNodeType::value child);
102 void FlowSeqPrepareNode(EmitterNodeType::value child);
103 void BlockSeqPrepareNode(EmitterNodeType::value child);
104
105 void FlowMapPrepareNode(EmitterNodeType::value child);
106
107 void FlowMapPrepareLongKey(EmitterNodeType::value child);
108 void FlowMapPrepareLongKeyValue(EmitterNodeType::value child);
109 void FlowMapPrepareSimpleKey(EmitterNodeType::value child);
110 void FlowMapPrepareSimpleKeyValue(EmitterNodeType::value child);
111
112 void BlockMapPrepareNode(EmitterNodeType::value child);
113
114 void BlockMapPrepareLongKey(EmitterNodeType::value child);
115 void BlockMapPrepareLongKeyValue(EmitterNodeType::value child);
116 void BlockMapPrepareSimpleKey(EmitterNodeType::value child);
117 void BlockMapPrepareSimpleKeyValue(EmitterNodeType::value child);
118
119 void SpaceOrIndentTo(bool requireSpace, std::size_t indent);
120
121 const char* ComputeFullBoolName(bool b) const;
122 bool CanEmitNewline() const;
123
124 private:
125 std::auto_ptr<EmitterState> m_pState;
126 ostream_wrapper m_stream;
127};
128
129template <typename T>
130inline Emitter& Emitter::WriteIntegralType(T value) {
131 if (!good())
132 return *this;
133
134 PrepareNode(EmitterNodeType::Scalar);
135
136 std::stringstream stream;
137 PrepareIntegralStream(stream);
138 stream << value;
139 m_stream << stream.str();
140
141 StartedScalar();
142
143 return *this;
144}
145
146template <typename T>
147inline Emitter& Emitter::WriteStreamable(T value) {
148 if (!good())
149 return *this;
150
151 PrepareNode(EmitterNodeType::Scalar);
152
153 std::stringstream stream;
154 SetStreamablePrecision<T>(stream);
155 stream << value;
156 m_stream << stream.str();
157
158 StartedScalar();
159
160 return *this;
161}
162
163template <>
164inline void Emitter::SetStreamablePrecision<float>(std::stringstream& stream) {
165 stream.precision(GetFloatPrecision());
166}
167
168template <>
169inline void Emitter::SetStreamablePrecision<double>(std::stringstream& stream) {
170 stream.precision(GetDoublePrecision());
171}
172
173// overloads of insertion
174inline Emitter& operator<<(Emitter& emitter, const std::string& v) {
175 return emitter.Write(v);
176}
177inline Emitter& operator<<(Emitter& emitter, bool v) {
178 return emitter.Write(v);
179}
180inline Emitter& operator<<(Emitter& emitter, char v) {
181 return emitter.Write(v);
182}
183inline Emitter& operator<<(Emitter& emitter, unsigned char v) {
184 return emitter.Write(static_cast<char>(v));
185}
186inline Emitter& operator<<(Emitter& emitter, const _Alias& v) {
187 return emitter.Write(v);
188}
189inline Emitter& operator<<(Emitter& emitter, const _Anchor& v) {
190 return emitter.Write(v);
191}
192inline Emitter& operator<<(Emitter& emitter, const _Tag& v) {
193 return emitter.Write(v);
194}
195inline Emitter& operator<<(Emitter& emitter, const _Comment& v) {
196 return emitter.Write(v);
197}
198inline Emitter& operator<<(Emitter& emitter, const _Null& v) {
199 return emitter.Write(v);
200}
201inline Emitter& operator<<(Emitter& emitter, const Binary& b) {
202 return emitter.Write(b);
203}
204
205inline Emitter& operator<<(Emitter& emitter, const char* v) {
206 return emitter.Write(std::string(v));
207}
208
209inline Emitter& operator<<(Emitter& emitter, int v) {
210 return emitter.WriteIntegralType(v);
211}
212inline Emitter& operator<<(Emitter& emitter, unsigned int v) {
213 return emitter.WriteIntegralType(v);
214}
215inline Emitter& operator<<(Emitter& emitter, short v) {
216 return emitter.WriteIntegralType(v);
217}
218inline Emitter& operator<<(Emitter& emitter, unsigned short v) {
219 return emitter.WriteIntegralType(v);
220}
221inline Emitter& operator<<(Emitter& emitter, long v) {
222 return emitter.WriteIntegralType(v);
223}
224inline Emitter& operator<<(Emitter& emitter, unsigned long v) {
225 return emitter.WriteIntegralType(v);
226}
227inline Emitter& operator<<(Emitter& emitter, long long v) {
228 return emitter.WriteIntegralType(v);
229}
230inline Emitter& operator<<(Emitter& emitter, unsigned long long v) {
231 return emitter.WriteIntegralType(v);
232}
233
234inline Emitter& operator<<(Emitter& emitter, float v) {
235 return emitter.WriteStreamable(v);
236}
237inline Emitter& operator<<(Emitter& emitter, double v) {
238 return emitter.WriteStreamable(v);
239}
240
241inline Emitter& operator<<(Emitter& emitter, EMITTER_MANIP value) {
242 return emitter.SetLocalValue(value);
243}
244
245inline Emitter& operator<<(Emitter& emitter, _Indent indent) {
246 return emitter.SetLocalIndent(indent);
247}
248
249inline Emitter& operator<<(Emitter& emitter, _Precision precision) {
250 return emitter.SetLocalPrecision(precision);
251}
252}
253
254#endif // EMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
0255
=== added file 'dist/yaml-cpp/include/yaml-cpp/emitterdef.h'
--- dist/yaml-cpp/include/yaml-cpp/emitterdef.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/emitterdef.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,16 @@
1#ifndef EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10namespace YAML {
11struct EmitterNodeType {
12 enum value { NoType, Property, Scalar, FlowSeq, BlockSeq, FlowMap, BlockMap };
13};
14}
15
16#endif // EMITTERDEF_H_62B23520_7C8E_11DE_8A39_0800200C9A66
017
=== added file 'dist/yaml-cpp/include/yaml-cpp/emittermanip.h'
--- dist/yaml-cpp/include/yaml-cpp/emittermanip.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/emittermanip.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,137 @@
1#ifndef EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include <string>
11
12namespace YAML {
13enum EMITTER_MANIP {
14 // general manipulators
15 Auto,
16 TagByKind,
17 Newline,
18
19 // output character set
20 EmitNonAscii,
21 EscapeNonAscii,
22
23 // string manipulators
24 // Auto, // duplicate
25 SingleQuoted,
26 DoubleQuoted,
27 Literal,
28
29 // bool manipulators
30 YesNoBool, // yes, no
31 TrueFalseBool, // true, false
32 OnOffBool, // on, off
33 UpperCase, // TRUE, N
34 LowerCase, // f, yes
35 CamelCase, // No, Off
36 LongBool, // yes, On
37 ShortBool, // y, t
38
39 // int manipulators
40 Dec,
41 Hex,
42 Oct,
43
44 // document manipulators
45 BeginDoc,
46 EndDoc,
47
48 // sequence manipulators
49 BeginSeq,
50 EndSeq,
51 Flow,
52 Block,
53
54 // map manipulators
55 BeginMap,
56 EndMap,
57 Key,
58 Value,
59 // Flow, // duplicate
60 // Block, // duplicate
61 // Auto, // duplicate
62 LongKey
63};
64
65struct _Indent {
66 _Indent(int value_) : value(value_) {}
67 int value;
68};
69
70inline _Indent Indent(int value) { return _Indent(value); }
71
72struct _Alias {
73 _Alias(const std::string& content_) : content(content_) {}
74 std::string content;
75};
76
77inline _Alias Alias(const std::string content) { return _Alias(content); }
78
79struct _Anchor {
80 _Anchor(const std::string& content_) : content(content_) {}
81 std::string content;
82};
83
84inline _Anchor Anchor(const std::string content) { return _Anchor(content); }
85
86struct _Tag {
87 struct Type {
88 enum value { Verbatim, PrimaryHandle, NamedHandle };
89 };
90
91 explicit _Tag(const std::string& prefix_, const std::string& content_,
92 Type::value type_)
93 : prefix(prefix_), content(content_), type(type_) {}
94 std::string prefix;
95 std::string content;
96 Type::value type;
97};
98
99inline _Tag VerbatimTag(const std::string content) {
100 return _Tag("", content, _Tag::Type::Verbatim);
101}
102
103inline _Tag LocalTag(const std::string content) {
104 return _Tag("", content, _Tag::Type::PrimaryHandle);
105}
106
107inline _Tag LocalTag(const std::string& prefix, const std::string content) {
108 return _Tag(prefix, content, _Tag::Type::NamedHandle);
109}
110
111inline _Tag SecondaryTag(const std::string content) {
112 return _Tag("", content, _Tag::Type::NamedHandle);
113}
114
115struct _Comment {
116 _Comment(const std::string& content_) : content(content_) {}
117 std::string content;
118};
119
120inline _Comment Comment(const std::string content) { return _Comment(content); }
121
122struct _Precision {
123 _Precision(int floatPrecision_, int doublePrecision_)
124 : floatPrecision(floatPrecision_), doublePrecision(doublePrecision_) {}
125
126 int floatPrecision;
127 int doublePrecision;
128};
129
130inline _Precision FloatPrecision(int n) { return _Precision(n, -1); }
131
132inline _Precision DoublePrecision(int n) { return _Precision(-1, n); }
133
134inline _Precision Precision(int n) { return _Precision(n, n); }
135}
136
137#endif // EMITTERMANIP_H_62B23520_7C8E_11DE_8A39_0800200C9A66
0138
=== added file 'dist/yaml-cpp/include/yaml-cpp/emitterstyle.h'
--- dist/yaml-cpp/include/yaml-cpp/emitterstyle.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/emitterstyle.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,16 @@
1#ifndef EMITTERSTYLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define EMITTERSTYLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10namespace YAML {
11struct EmitterStyle {
12 enum value { Default, Block, Flow };
13};
14}
15
16#endif // EMITTERSTYLE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
017
=== added file 'dist/yaml-cpp/include/yaml-cpp/eventhandler.h'
--- dist/yaml-cpp/include/yaml-cpp/eventhandler.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/eventhandler.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,40 @@
1#ifndef EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include <string>
11
12#include "yaml-cpp/anchor.h"
13#include "yaml-cpp/emitterstyle.h"
14
15namespace YAML {
16struct Mark;
17
18class EventHandler {
19 public:
20 virtual ~EventHandler() {}
21
22 virtual void OnDocumentStart(const Mark& mark) = 0;
23 virtual void OnDocumentEnd() = 0;
24
25 virtual void OnNull(const Mark& mark, anchor_t anchor) = 0;
26 virtual void OnAlias(const Mark& mark, anchor_t anchor) = 0;
27 virtual void OnScalar(const Mark& mark, const std::string& tag,
28 anchor_t anchor, const std::string& value) = 0;
29
30 virtual void OnSequenceStart(const Mark& mark, const std::string& tag,
31 anchor_t anchor, EmitterStyle::value style) = 0;
32 virtual void OnSequenceEnd() = 0;
33
34 virtual void OnMapStart(const Mark& mark, const std::string& tag,
35 anchor_t anchor, EmitterStyle::value style) = 0;
36 virtual void OnMapEnd() = 0;
37};
38}
39
40#endif // EVENTHANDLER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
041
=== added file 'dist/yaml-cpp/include/yaml-cpp/exceptions.h'
--- dist/yaml-cpp/include/yaml-cpp/exceptions.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/exceptions.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,227 @@
1#ifndef EXCEPTIONS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define EXCEPTIONS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include "yaml-cpp/mark.h"
11#include "yaml-cpp/traits.h"
12#include <stdexcept>
13#include <string>
14#include <sstream>
15
16namespace YAML {
17// error messages
18namespace ErrorMsg {
19const char* const YAML_DIRECTIVE_ARGS =
20 "YAML directives must have exactly one argument";
21const char* const YAML_VERSION = "bad YAML version: ";
22const char* const YAML_MAJOR_VERSION = "YAML major version too large";
23const char* const REPEATED_YAML_DIRECTIVE = "repeated YAML directive";
24const char* const TAG_DIRECTIVE_ARGS =
25 "TAG directives must have exactly two arguments";
26const char* const REPEATED_TAG_DIRECTIVE = "repeated TAG directive";
27const char* const CHAR_IN_TAG_HANDLE =
28 "illegal character found while scanning tag handle";
29const char* const TAG_WITH_NO_SUFFIX = "tag handle with no suffix";
30const char* const END_OF_VERBATIM_TAG = "end of verbatim tag not found";
31const char* const END_OF_MAP = "end of map not found";
32const char* const END_OF_MAP_FLOW = "end of map flow not found";
33const char* const END_OF_SEQ = "end of sequence not found";
34const char* const END_OF_SEQ_FLOW = "end of sequence flow not found";
35const char* const MULTIPLE_TAGS =
36 "cannot assign multiple tags to the same node";
37const char* const MULTIPLE_ANCHORS =
38 "cannot assign multiple anchors to the same node";
39const char* const MULTIPLE_ALIASES =
40 "cannot assign multiple aliases to the same node";
41const char* const ALIAS_CONTENT =
42 "aliases can't have any content, *including* tags";
43const char* const INVALID_HEX = "bad character found while scanning hex number";
44const char* const INVALID_UNICODE = "invalid unicode: ";
45const char* const INVALID_ESCAPE = "unknown escape character: ";
46const char* const UNKNOWN_TOKEN = "unknown token";
47const char* const DOC_IN_SCALAR = "illegal document indicator in scalar";
48const char* const EOF_IN_SCALAR = "illegal EOF in scalar";
49const char* const CHAR_IN_SCALAR = "illegal character in scalar";
50const char* const TAB_IN_INDENTATION =
51 "illegal tab when looking for indentation";
52const char* const FLOW_END = "illegal flow end";
53const char* const BLOCK_ENTRY = "illegal block entry";
54const char* const MAP_KEY = "illegal map key";
55const char* const MAP_VALUE = "illegal map value";
56const char* const ALIAS_NOT_FOUND = "alias not found after *";
57const char* const ANCHOR_NOT_FOUND = "anchor not found after &";
58const char* const CHAR_IN_ALIAS =
59 "illegal character found while scanning alias";
60const char* const CHAR_IN_ANCHOR =
61 "illegal character found while scanning anchor";
62const char* const ZERO_INDENT_IN_BLOCK =
63 "cannot set zero indentation for a block scalar";
64const char* const CHAR_IN_BLOCK = "unexpected character in block scalar";
65const char* const AMBIGUOUS_ANCHOR =
66 "cannot assign the same alias to multiple nodes";
67const char* const UNKNOWN_ANCHOR = "the referenced anchor is not defined";
68
69const char* const INVALID_NODE =
70 "invalid node; this may result from using a map iterator as a sequence "
71 "iterator, or vice-versa";
72const char* const INVALID_SCALAR = "invalid scalar";
73const char* const KEY_NOT_FOUND = "key not found";
74const char* const BAD_CONVERSION = "bad conversion";
75const char* const BAD_DEREFERENCE = "bad dereference";
76const char* const BAD_SUBSCRIPT = "operator[] call on a scalar";
77const char* const BAD_PUSHBACK = "appending to a non-sequence";
78const char* const BAD_INSERT = "inserting in a non-convertible-to-map";
79
80const char* const UNMATCHED_GROUP_TAG = "unmatched group tag";
81const char* const UNEXPECTED_END_SEQ = "unexpected end sequence token";
82const char* const UNEXPECTED_END_MAP = "unexpected end map token";
83const char* const SINGLE_QUOTED_CHAR =
84 "invalid character in single-quoted string";
85const char* const INVALID_ANCHOR = "invalid anchor";
86const char* const INVALID_ALIAS = "invalid alias";
87const char* const INVALID_TAG = "invalid tag";
88const char* const BAD_FILE = "bad file";
89
90template <typename T>
91inline const std::string KEY_NOT_FOUND_WITH_KEY(
92 const T&, typename disable_if<is_numeric<T> >::type* = 0) {
93 return KEY_NOT_FOUND;
94}
95
96inline const std::string KEY_NOT_FOUND_WITH_KEY(const std::string& key) {
97 std::stringstream stream;
98 stream << KEY_NOT_FOUND << ": " << key;
99 return stream.str();
100}
101
102template <typename T>
103inline const std::string KEY_NOT_FOUND_WITH_KEY(
104 const T& key, typename enable_if<is_numeric<T> >::type* = 0) {
105 std::stringstream stream;
106 stream << KEY_NOT_FOUND << ": " << key;
107 return stream.str();
108}
109}
110
111class Exception : public std::runtime_error {
112 public:
113 Exception(const Mark& mark_, const std::string& msg_)
114 : std::runtime_error(build_what(mark_, msg_)), mark(mark_), msg(msg_) {}
115 virtual ~Exception() throw() {}
116
117 Mark mark;
118 std::string msg;
119
120 private:
121 static const std::string build_what(const Mark& mark,
122 const std::string& msg) {
123 std::stringstream output;
124 output << "yaml-cpp: error at line " << mark.line + 1 << ", column "
125 << mark.column + 1 << ": " << msg;
126 return output.str();
127 }
128};
129
130class ParserException : public Exception {
131 public:
132 ParserException(const Mark& mark_, const std::string& msg_)
133 : Exception(mark_, msg_) {}
134};
135
136class RepresentationException : public Exception {
137 public:
138 RepresentationException(const Mark& mark_, const std::string& msg_)
139 : Exception(mark_, msg_) {}
140};
141
142// representation exceptions
143class InvalidScalar : public RepresentationException {
144 public:
145 InvalidScalar(const Mark& mark_)
146 : RepresentationException(mark_, ErrorMsg::INVALID_SCALAR) {}
147};
148
149class KeyNotFound : public RepresentationException {
150 public:
151 template <typename T>
152 KeyNotFound(const Mark& mark_, const T& key_)
153 : RepresentationException(mark_, ErrorMsg::KEY_NOT_FOUND_WITH_KEY(key_)) {
154 }
155};
156
157template <typename T>
158class TypedKeyNotFound : public KeyNotFound {
159 public:
160 TypedKeyNotFound(const Mark& mark_, const T& key_)
161 : KeyNotFound(mark_, key_), key(key_) {}
162 virtual ~TypedKeyNotFound() throw() {}
163
164 T key;
165};
166
167template <typename T>
168inline TypedKeyNotFound<T> MakeTypedKeyNotFound(const Mark& mark,
169 const T& key) {
170 return TypedKeyNotFound<T>(mark, key);
171}
172
173class InvalidNode : public RepresentationException {
174 public:
175 InvalidNode()
176 : RepresentationException(Mark::null_mark(), ErrorMsg::INVALID_NODE) {}
177};
178
179class BadConversion : public RepresentationException {
180 public:
181 BadConversion()
182 : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_CONVERSION) {}
183};
184
185template <typename T>
186class TypedBadConversion : public BadConversion {
187 public:
188 TypedBadConversion() : BadConversion() {}
189};
190
191class BadDereference : public RepresentationException {
192 public:
193 BadDereference()
194 : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_DEREFERENCE) {}
195};
196
197class BadSubscript : public RepresentationException {
198 public:
199 BadSubscript()
200 : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_SUBSCRIPT) {}
201};
202
203class BadPushback : public RepresentationException {
204 public:
205 BadPushback()
206 : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_PUSHBACK) {}
207};
208
209class BadInsert : public RepresentationException {
210 public:
211 BadInsert()
212 : RepresentationException(Mark::null_mark(), ErrorMsg::BAD_INSERT) {}
213};
214
215class EmitterException : public Exception {
216 public:
217 EmitterException(const std::string& msg_)
218 : Exception(Mark::null_mark(), msg_) {}
219};
220
221class BadFile : public Exception {
222 public:
223 BadFile() : Exception(Mark::null_mark(), ErrorMsg::BAD_FILE) {}
224};
225}
226
227#endif // EXCEPTIONS_H_62B23520_7C8E_11DE_8A39_0800200C9A66
0228
=== added file 'dist/yaml-cpp/include/yaml-cpp/mark.h'
--- dist/yaml-cpp/include/yaml-cpp/mark.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/mark.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,27 @@
1#ifndef MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include "yaml-cpp/dll.h"
11
12namespace YAML {
13struct YAML_CPP_API Mark {
14 Mark() : pos(0), line(0), column(0) {}
15
16 static const Mark null_mark() { return Mark(-1, -1, -1); }
17
18 int pos;
19 int line, column;
20
21 private:
22 Mark(int pos_, int line_, int column_)
23 : pos(pos_), line(line_), column(column_) {}
24};
25}
26
27#endif // MARK_H_62B23520_7C8E_11DE_8A39_0800200C9A66
028
=== added directory 'dist/yaml-cpp/include/yaml-cpp/node'
=== added file 'dist/yaml-cpp/include/yaml-cpp/node/convert.h'
--- dist/yaml-cpp/include/yaml-cpp/node/convert.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/node/convert.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,286 @@
1#ifndef NODE_CONVERT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define NODE_CONVERT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10#include <limits>
11#include <list>
12#include <map>
13#include <sstream>
14#include <vector>
15
16#include "yaml-cpp/binary.h"
17#include "yaml-cpp/node/impl.h"
18#include "yaml-cpp/node/iterator.h"
19#include "yaml-cpp/node/node.h"
20#include "yaml-cpp/node/type.h"
21#include "yaml-cpp/null.h"
22
23namespace YAML {
24class Binary;
25struct _Null;
26template <typename T>
27struct convert;
28} // namespace YAML
29
30namespace YAML {
31namespace conversion {
32inline bool IsInfinity(const std::string& input) {
33 return input == ".inf" || input == ".Inf" || input == ".INF" ||
34 input == "+.inf" || input == "+.Inf" || input == "+.INF";
35}
36
37inline bool IsNegativeInfinity(const std::string& input) {
38 return input == "-.inf" || input == "-.Inf" || input == "-.INF";
39}
40
41inline bool IsNaN(const std::string& input) {
42 return input == ".nan" || input == ".NaN" || input == ".NAN";
43}
44}
45
46// std::string
47template <>
48struct convert<std::string> {
49 static Node encode(const std::string& rhs) { return Node(rhs); }
50
51 static bool decode(const Node& node, std::string& rhs) {
52 if (!node.IsScalar())
53 return false;
54 rhs = node.Scalar();
55 return true;
56 }
57};
58
59// C-strings can only be encoded
60template <>
61struct convert<const char*> {
62 static Node encode(const char*& rhs) { return Node(rhs); }
63};
64
65template <std::size_t N>
66struct convert<const char[N]> {
67 static Node encode(const char(&rhs)[N]) { return Node(rhs); }
68};
69
70template <>
71struct convert<_Null> {
72 static Node encode(const _Null& /* rhs */) { return Node(); }
73
74 static bool decode(const Node& node, _Null& /* rhs */) {
75 return node.IsNull();
76 }
77};
78
79#define YAML_DEFINE_CONVERT_STREAMABLE(type, negative_op) \
80 template <> \
81 struct convert<type> { \
82 static Node encode(const type& rhs) { \
83 std::stringstream stream; \
84 stream.precision(std::numeric_limits<type>::digits10 + 1); \
85 stream << rhs; \
86 return Node(stream.str()); \
87 } \
88 \
89 static bool decode(const Node& node, type& rhs) { \
90 if (node.Type() != NodeType::Scalar) \
91 return false; \
92 const std::string& input = node.Scalar(); \
93 std::stringstream stream(input); \
94 stream.unsetf(std::ios::dec); \
95 if ((stream >> std::noskipws >> rhs) && (stream >> std::ws).eof()) \
96 return true; \
97 if (std::numeric_limits<type>::has_infinity) { \
98 if (conversion::IsInfinity(input)) { \
99 rhs = std::numeric_limits<type>::infinity(); \
100 return true; \
101 } else if (conversion::IsNegativeInfinity(input)) { \
102 rhs = negative_op std::numeric_limits<type>::infinity(); \
103 return true; \
104 } \
105 } \
106 \
107 if (std::numeric_limits<type>::has_quiet_NaN && \
108 conversion::IsNaN(input)) { \
109 rhs = std::numeric_limits<type>::quiet_NaN(); \
110 return true; \
111 } \
112 \
113 return false; \
114 } \
115 }
116
117#define YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(type) \
118 YAML_DEFINE_CONVERT_STREAMABLE(type, -)
119
120#define YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(type) \
121 YAML_DEFINE_CONVERT_STREAMABLE(type, +)
122
123YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(int);
124YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(short);
125YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(long);
126YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(long long);
127YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned);
128YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned short);
129YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned long);
130YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned long long);
131
132YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(char);
133YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(signed char);
134YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED(unsigned char);
135
136YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(float);
137YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(double);
138YAML_DEFINE_CONVERT_STREAMABLE_SIGNED(long double);
139
140#undef YAML_DEFINE_CONVERT_STREAMABLE_SIGNED
141#undef YAML_DEFINE_CONVERT_STREAMABLE_UNSIGNED
142#undef YAML_DEFINE_CONVERT_STREAMABLE
143
144// bool
145template <>
146struct convert<bool> {
147 static Node encode(bool rhs) { return rhs ? Node("true") : Node("false"); }
148
149 YAML_CPP_API static bool decode(const Node& node, bool& rhs);
150};
151
152// std::map
153template <typename K, typename V>
154struct convert<std::map<K, V> > {
155 static Node encode(const std::map<K, V>& rhs) {
156 Node node(NodeType::Map);
157 for (typename std::map<K, V>::const_iterator it = rhs.begin();
158 it != rhs.end(); ++it)
159 node.force_insert(it->first, it->second);
160 return node;
161 }
162
163 static bool decode(const Node& node, std::map<K, V>& rhs) {
164 if (!node.IsMap())
165 return false;
166
167 rhs.clear();
168 for (const_iterator it = node.begin(); it != node.end(); ++it)
169#if defined(__GNUC__) && __GNUC__ < 4
170 // workaround for GCC 3:
171 rhs[it->first.template as<K>()] = it->second.template as<V>();
172#else
173 rhs[it->first.as<K>()] = it->second.as<V>();
174#endif
175 return true;
176 }
177};
178
179// std::vector
180template <typename T>
181struct convert<std::vector<T> > {
182 static Node encode(const std::vector<T>& rhs) {
183 Node node(NodeType::Sequence);
184 for (typename std::vector<T>::const_iterator it = rhs.begin();
185 it != rhs.end(); ++it)
186 node.push_back(*it);
187 return node;
188 }
189
190 static bool decode(const Node& node, std::vector<T>& rhs) {
191 if (!node.IsSequence())
192 return false;
193
194 rhs.clear();
195 for (const_iterator it = node.begin(); it != node.end(); ++it)
196#if defined(__GNUC__) && __GNUC__ < 4
197 // workaround for GCC 3:
198 rhs.push_back(it->template as<T>());
199#else
200 rhs.push_back(it->as<T>());
201#endif
202 return true;
203 }
204};
205
206// std::list
207template <typename T>
208struct convert<std::list<T> > {
209 static Node encode(const std::list<T>& rhs) {
210 Node node(NodeType::Sequence);
211 for (typename std::list<T>::const_iterator it = rhs.begin();
212 it != rhs.end(); ++it)
213 node.push_back(*it);
214 return node;
215 }
216
217 static bool decode(const Node& node, std::list<T>& rhs) {
218 if (!node.IsSequence())
219 return false;
220
221 rhs.clear();
222 for (const_iterator it = node.begin(); it != node.end(); ++it)
223#if defined(__GNUC__) && __GNUC__ < 4
224 // workaround for GCC 3:
225 rhs.push_back(it->template as<T>());
226#else
227 rhs.push_back(it->as<T>());
228#endif
229 return true;
230 }
231};
232
233// std::pair
234template <typename T, typename U>
235struct convert<std::pair<T, U> > {
236 static Node encode(const std::pair<T, U>& rhs) {
237 Node node(NodeType::Sequence);
238 node.push_back(rhs.first);
239 node.push_back(rhs.second);
240 return node;
241 }
242
243 static bool decode(const Node& node, std::pair<T, U>& rhs) {
244 if (!node.IsSequence())
245 return false;
246 if (node.size() != 2)
247 return false;
248
249#if defined(__GNUC__) && __GNUC__ < 4
250 // workaround for GCC 3:
251 rhs.first = node[0].template as<T>();
252#else
253 rhs.first = node[0].as<T>();
254#endif
255#if defined(__GNUC__) && __GNUC__ < 4
256 // workaround for GCC 3:
257 rhs.second = node[1].template as<U>();
258#else
259 rhs.second = node[1].as<U>();
260#endif
261 return true;
262 }
263};
264
265// binary
266template <>
267struct convert<Binary> {
268 static Node encode(const Binary& rhs) {
269 return Node(EncodeBase64(rhs.data(), rhs.size()));
270 }
271
272 static bool decode(const Node& node, Binary& rhs) {
273 if (!node.IsScalar())
274 return false;
275
276 std::vector<unsigned char> data = DecodeBase64(node.Scalar());
277 if (data.empty() && !node.Scalar().empty())
278 return false;
279
280 rhs.swap(data);
281 return true;
282 }
283};
284}
285
286#endif // NODE_CONVERT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
0287
=== added directory 'dist/yaml-cpp/include/yaml-cpp/node/detail'
=== added file 'dist/yaml-cpp/include/yaml-cpp/node/detail/bool_type.h'
--- dist/yaml-cpp/include/yaml-cpp/node/detail/bool_type.h 1970-01-01 00:00:00 +0000
+++ dist/yaml-cpp/include/yaml-cpp/node/detail/bool_type.h 2016-10-18 07:57:32 +0000
@@ -0,0 +1,26 @@
1#ifndef NODE_DETAIL_BOOL_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2#define NODE_DETAIL_BOOL_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
3
4#if defined(_MSC_VER) || \
5 (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
6 (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4
7#pragma once
8#endif
9
10namespace YAML {
11namespace detail {
12struct unspecified_bool {
13 struct NOT_ALLOWED;
14 static void true_value(NOT_ALLOWED*) {}
15};
16typedef void (*unspecified_bool_type)(unspecified_bool::NOT_ALLOWED*);
17}
18}
19
20#define YAML_CPP_OPERATOR_BOOL() \
21 operator YAML::detail::unspecified_bool_type() const { \
22 return this->operator!() ? 0 \
23 : &YAML::detail::unspecified_bool::true_value; \
24 }
25
26#endif // NODE_DETAIL_BOOL_TYPE_H_62B23520_7C8E_11DE_8A39_0800200C9A66
027
=== added file 'dist/yaml-cpp/include/yaml-cpp/node/detail/impl.h'
--- dist/yaml-cpp/include/yaml-cpp/node/detail/impl.h 1970-01-01 00:00:00 +0000
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches