www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - CDC- Compile D Code

reply Eric Poggel <dnewsgroup yage3d.net> writes:
Hello,

I wrote a new build tool for D.  I'm calling it CDC (for Compile D 
Code).  It's hosted at http://dsource.org/projects/cdc .  I'm open to 
any ideas or constructive criticism.  My target here is anyone looking 
for a very simple build solution, not an everything and the kitchen sink 
project like DSSS (not that that's a bad thing).


 From the project description:

This is a D programming language build script (and library) that can be 
used to compile D (version 1) source code. Unlike Bud, DSSS/Rebuild, 
Jake, and similar tools, CDC is contained within a single file that can 
easily be distributed with projects. This simplifies the build process 
since no other tools are required. The customBuild() function can be 
utilized to turn CDC into a custom build script for your project.

CDC's only requirement is a D compiler. It is/will be supported on any 
operating system supported by the language. It works with dmd, ldc 
(soon), and gdc, phobos or tango.

CDC can be used just like dmd, except for the following improvements.

     * CDC can accept paths as as well as individual source files for
       compilation. Each path is recursively searched for source,
       library,
       object, and ddoc files.
     * CDC automatically creates a modules.ddoc file for use with
       CandyDoc? and similar documentation utilities.
     * CDC defaults to use the compiler that was used to build itself.
       Compiler flags are passed straight through to that compiler.
     * The -op flag is always used, to prevent name conflicts in object
       and doc files.
     * Documentation files are all placed in the same folder with their
       full package names. This makes relative links between documents
       easier.
Jul 03 2009
next sibling parent reply Michael P. <baseball.mjp gmail.com> writes:
Eric Poggel Wrote:

 Hello,
 
 I wrote a new build tool for D.  I'm calling it CDC (for Compile D 
 Code).  It's hosted at http://dsource.org/projects/cdc .  I'm open to 
 any ideas or constructive criticism.  My target here is anyone looking 
 for a very simple build solution, not an everything and the kitchen sink 
 project like DSSS (not that that's a bad thing).
 
 
  From the project description:
 
 This is a D programming language build script (and library) that can be 
 used to compile D (version 1) source code. Unlike Bud, DSSS/Rebuild, 
 Jake, and similar tools, CDC is contained within a single file that can 
 easily be distributed with projects. This simplifies the build process 
 since no other tools are required. The customBuild() function can be 
 utilized to turn CDC into a custom build script for your project.
 
 CDC's only requirement is a D compiler. It is/will be supported on any 
 operating system supported by the language. It works with dmd, ldc 
 (soon), and gdc, phobos or tango.
 
 CDC can be used just like dmd, except for the following improvements.
 
      * CDC can accept paths as as well as individual source files for
        compilation. Each path is recursively searched for source,
        library,
        object, and ddoc files.
      * CDC automatically creates a modules.ddoc file for use with
        CandyDoc? and similar documentation utilities.
      * CDC defaults to use the compiler that was used to build itself.
        Compiler flags are passed straight through to that compiler.
      * The -op flag is always used, to prevent name conflicts in object
        and doc files.
      * Documentation files are all placed in the same folder with their
        full package names. This makes relative links between documents
        easier.

It didn't build right away for me with DMD1.045 + Phobos. I changed line 141 which is: import std.c.time : sleep; to import std.c.time : sleep, usleep; And it built fine. The errors were: michael ubuntu:~/d/cdc/trunk$ dmd cdc.d cdc.d(623): Error: undefined identifier usleep cdc.d(623): Error: function expected before (), not usleep of type int
Jul 03 2009
parent reply Eric Poggel <dnewsgroup yage3d.net> writes:
Michael P. wrote:
 Eric Poggel Wrote:
 
 Hello,

 I wrote a new build tool for D.  I'm calling it CDC (for Compile D 
 Code).  It's hosted at http://dsource.org/projects/cdc .  I'm open to 
 any ideas or constructive criticism.  My target here is anyone looking 
 for a very simple build solution, not an everything and the kitchen sink 
 project like DSSS (not that that's a bad thing).


  From the project description:

 This is a D programming language build script (and library) that can be 
 used to compile D (version 1) source code. Unlike Bud, DSSS/Rebuild, 
 Jake, and similar tools, CDC is contained within a single file that can 
 easily be distributed with projects. This simplifies the build process 
 since no other tools are required. The customBuild() function can be 
 utilized to turn CDC into a custom build script for your project.

 CDC's only requirement is a D compiler. It is/will be supported on any 
 operating system supported by the language. It works with dmd, ldc 
 (soon), and gdc, phobos or tango.

 CDC can be used just like dmd, except for the following improvements.

      * CDC can accept paths as as well as individual source files for
        compilation. Each path is recursively searched for source,
        library,
        object, and ddoc files.
      * CDC automatically creates a modules.ddoc file for use with
        CandyDoc? and similar documentation utilities.
      * CDC defaults to use the compiler that was used to build itself.
        Compiler flags are passed straight through to that compiler.
      * The -op flag is always used, to prevent name conflicts in object
        and doc files.
      * Documentation files are all placed in the same folder with their
        full package names. This makes relative links between documents
        easier.

It didn't build right away for me with DMD1.045 + Phobos. I changed line 141 which is: import std.c.time : sleep; to import std.c.time : sleep, usleep; And it built fine. The errors were: michael ubuntu:~/d/cdc/trunk$ dmd cdc.d cdc.d(623): Error: undefined identifier usleep cdc.d(623): Error: function expected before (), not usleep of type int

Thanks. Your patch is now committed.
Jul 03 2009
parent Michael P. <baseball.mjp gmail.com> writes:
Eric Poggel Wrote:

 Michael P. wrote:
 Eric Poggel Wrote:
 
 Hello,

 I wrote a new build tool for D.  I'm calling it CDC (for Compile D 
 Code).  It's hosted at http://dsource.org/projects/cdc .  I'm open to 
 any ideas or constructive criticism.  My target here is anyone looking 
 for a very simple build solution, not an everything and the kitchen sink 
 project like DSSS (not that that's a bad thing).


  From the project description:

 This is a D programming language build script (and library) that can be 
 used to compile D (version 1) source code. Unlike Bud, DSSS/Rebuild, 
 Jake, and similar tools, CDC is contained within a single file that can 
 easily be distributed with projects. This simplifies the build process 
 since no other tools are required. The customBuild() function can be 
 utilized to turn CDC into a custom build script for your project.

 CDC's only requirement is a D compiler. It is/will be supported on any 
 operating system supported by the language. It works with dmd, ldc 
 (soon), and gdc, phobos or tango.

 CDC can be used just like dmd, except for the following improvements.

      * CDC can accept paths as as well as individual source files for
        compilation. Each path is recursively searched for source,
        library,
        object, and ddoc files.
      * CDC automatically creates a modules.ddoc file for use with
        CandyDoc? and similar documentation utilities.
      * CDC defaults to use the compiler that was used to build itself.
        Compiler flags are passed straight through to that compiler.
      * The -op flag is always used, to prevent name conflicts in object
        and doc files.
      * Documentation files are all placed in the same folder with their
        full package names. This makes relative links between documents
        easier.

It didn't build right away for me with DMD1.045 + Phobos. I changed line 141 which is: import std.c.time : sleep; to import std.c.time : sleep, usleep; And it built fine. The errors were: michael ubuntu:~/d/cdc/trunk$ dmd cdc.d cdc.d(623): Error: undefined identifier usleep cdc.d(623): Error: function expected before (), not usleep of type int

Thanks. Your patch is now committed.

No problem. Also, on the home page, http://dsource.org/projects/cdc, it says the homepage is http://yage3d.net in that little box. Might want to change that as well.
Jul 03 2009
prev sibling parent reply =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Eric Poggel wrote:
 CDC's only requirement is a D compiler. It is/will be supported on any 
 operating system supported by the language. It works with dmd, ldc 
 (soon), and gdc, phobos or tango.

$ ./cdc -v cdc.d /usr/bin/ld: unknown flag: -ocdc Seems to be missing a space ? translate["-of"] = "-o"; Works OK on Mac OS X otherwise... (tested with Phobos if it matters) --anders
Jul 03 2009
parent Eric Poggel <dnewsgroup yage3d.net> writes:
Anders F Björklund wrote:
 Eric Poggel wrote:
 CDC's only requirement is a D compiler. It is/will be supported on any 
 operating system supported by the language. It works with dmd, ldc 
 (soon), and gdc, phobos or tango.

$ ./cdc -v cdc.d /usr/bin/ld: unknown flag: -ocdc Seems to be missing a space ? translate["-of"] = "-o"; Works OK on Mac OS X otherwise... (tested with Phobos if it matters) --anders

Jul 03 2009