Code Monkey home page Code Monkey logo

libkode's Introduction

libkode

This repository contains C++/Qt code mainly for C++ code generation and XML/XSD parsing.

The code was originally part of the kode and the KDSOAP project.

Later we moved it to a separate repository to ease the developent between the two projects.

Code generation

The goal of these codes to ease generation of C++ code from Qt based applications.

The code generator is designed to support generating C++11 and onwards compliant code.

Projects using this code

  • kode - Qt based XML meta programming tool
  • KDSOAP - A Qt-based client-side and server-side SOAP component
  • nut-codegen - code generator for the Nut ORM

If you would like to get your public project using libkode listed here please let us know in an issue.

libkode's People

Contributors

anoymouserver avatar dantti avatar dfaure-kdab avatar martonmiklos avatar raphaelcotty avatar winterheart avatar winterz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

libkode's Issues

Move the schematest.cpp to a separate folder/remove it

There is a schematest.cpp in the schema folder which is at the moment not built at all. It would be useful to move it to a separate tests folder or remove it in the case if we add CI which runs similar test with the dependant projects (I think about running CI on libkode with kode/KDSOAP tests).

Add support for C++11 style member initializers

libkode supports setting initializers for (class) member variables.

However these initializers are always generated to the class constructors initializer section.
C++11 allows the non const variables to be initialized in the member declaration, and it would be useful to support it in the libkode. (I am generating some code where some nested classes exists only as a declaration.)

@dfaure-kdab I would love to hear your opinions about this!

If the C++11 will be a requirement for KDSoap in the near future I would vote for moving the initializers to the declarations and generate only C++11 compliant code.

If not it might be useful to add a member to the Printer which could be used to set the C++ standard of the generated code.
At the moment no other C++11 feature came into my mind which would be useful, but later we can implement other C++11 only features this way. However it adds some maintenance burden what we should really avoid.

QMake buildsystem needs love

For KDSoap we still need to support the qmake buildsystem.

I see some problems already:

  • common/common.pro, libkode/libkode.pro, schema/schema.pro refer to kdwsdl2cpp INCUDEPATHs
  • common/common.pro, libkode/libkode.pro, schema/schema.pro include $${TOP_SOURCE_DIR}/variables.pri which is only found in kdsoap as the TOP_SOURCE_DIR
  • common/common.pro, libkode/libkode.pro, schema/schema.pro need to add $${TOP_SOURCE_DIR}/kdwsdl2cpp/libkode to their INCLUDEPATHs

Not only that, there should be a top-level libkode.pro for building and installing as a stand-alone project

Setup Travis CI

It would be useful to add a Travis CI to build and run the kdwsdl2cpp tests from KODE each commit (and kode once I manage to fix the tests).

@cornelius , @dfaure-kdab do you have any objections or hints around this idea?

License missing

please add license information to the github page, probably with a top-level LICENSE.txt
also how the resulting generated code is licensed.

would be nice to use SPDX headers (https://reuse.software)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.