GithubHelp home page GithubHelp logo

timpokorny / cpptask Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 4.0 3.92 MB

Simple Ant tasks for compiling C++ code via the command line with Visual Studio or GCC

Shell 2.15% Java 47.77% Perl 1.92% Python 0.64% XSLT 43.13% Batchfile 4.38%

cpptask's Introduction

       ===============================================
       ===== Welcome to the cpptask Ant Project! =====
       ===============================================

This project provides a simple C++ command-line compiling Ant task
for use in your Ant builds. It was born out of my general frustration
around not being able to get the simple results I wanted out of the
<cc> task in the ant-contrib packages.

This task really just provides a thin wrapper around basic command-line
tools for compiling C++ code. Rather than attempt to provide a massive,
fully featured, "will do everything on all compilers" task, this task
provides a simplified wrapper with basic support for setting paths (to
source, includes and libraries) and symbols. More direct access to the
compiler is provided by allowing (requiring) you to set the compiler
and linker command line arguments directly.

This task is predicated on the notion that you already know the options
to pass to the compiler to get it to do what you want, and provides only
help for specifying source, include and library paths, but that's about
it.

License
-------------------------
The cpptask project is provided an Open Source Software and released
under the Common Developer and Distribution License (CDDL).

Usage Example
-------------------------
To make the task available in your build, you must ensure that the
cpptask.jar file is in your ANT_LIB directory (or otherwise available
on Ant's classpath) and then define the task in your build file as
follows:

<!-- bring in the cpp compiling ant task -->
<taskdef name="cpptask" classname="com.lbf.cpptask.CppTask"/>

Consider the example Ant build snippet below:

<cpptask outfile="${build.dir}/complete/test13"
         objdir="${build.dir}/obj"
         outtype="executable"
         compiler="g++"
         compilerArgs="-g"
         linkerArgs="-arch i386">
    <fileset dir="${test13.src.dir}" includes="**/*.cpp"/>
    <includepath path="${hla13.include.dir}/ng6"/>
    <includepath path="${hla13.src.dir}/hla/time"/>
    <includepath path="${cppunit.include}"/>
    <define name="RTI_USES_STD_FSTREAM"/>
    <library path="${ng6.complete.dir}" libs="RTI-NG"/>
    <library path="${cppunit.lib}" libs="cppunit"/>
</cpptask>

This compiles all the selected code from the ${hla13.src.dir}, using
a few different include paths and specifying a few defines.

Attributes and Options
-------------------------
You can specify the following attributes against the task:

  * outfile:      The name of the file to generate.
  * objdir:       The directory to dump intermediate object files into.
  * outtype:      Can be "executable" or "shared". General exe or library.
  * compiler:     The compiler to use. Supports "g++" or "msvc".
  * compilerArgs: The command line arguments to pass to the compiler.
  * linkerArgs:   The command line arguments to pass to the linker.

You can specify any number of the following four types in the body of
the task:

  * fileset:     Set of all source code to be compiled. Standard Ant fileset.

  * define:      Symbol definitions to be included for the compiler

  * includepath: For specifying a value to be appended to the include path.
                 You can specify multiple paths with the system path separator
                 or you can specify the tag multiple times.
  * library:     Takes a path and a comma-separated list of libraries to load
                 when linking takes place.

Building cpptask
-------------------------
To build this project, just check it out and run the provided Ant build
file with the "jar" target (or use -projecthelp to get a list of all public
targets).


--------------------------
 The littlebluefrog labs
--------------------------
The littlebluefrog labs is the name given to a bunch of projects created by
a small group of developers who share a common background and workplace.

For more information see: http://labs.littebluefrog.com

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.