Hi guys,

I just checked in three additional files for Fluid. Note that these are not 
linked anywhere yet! You can test the new feature by simply linking the files 
to Fluid. You will get two new command line arguments.

These files implement a database that can generate all IDE support files for us 
without further maintenance. A developer wants to add a new source file to the 
core library? Just add it to the database, and Fluid will generate support for 
all IDEs, make, and CMake. Need a new app in the Test directory? Just add the 
.fl or .cxx file to the db and Fluid does the rest. Need another application 
like Fluid? Just as easy... .

Currently working is generating the database, and using the database to 
generate Xcode3 support:

 % fluid -help
 % fluid --fltkdb fltk.db
 % fluid --dbxcode3 fltk.db .

In the next iteration, it will also generate full IDE support for user 
projects, so they can distribute full blown Xcode support, even though they 
only develop on a Linux machine, etc. .

Although this is all not finished yet, it already provided a huge help for 
fixing the Xcode setup. I will publish my progress.

Oh, and btw.: this implementation uses Fl_Plugin to demonstrate how easy we can 
link additional module on demand. We should probably use this technique for 
registering image support as well.

Hope you'll like it,

 - Matthias




Here is a comment from ide_support.cxx

 IDE SUPPORT IN FLUID
 
 One of the biggest issues in maintaining FLTK has been the maintenance of 
build 
 environments. Users are confused when new features of FLTK ar not available
 yet for their platform, and may never be unless a volunteer updates and 
 maintains the corresponding IDE support. 
 
 "ide support" will generate sets of IDE files for all supported build 
 environments, including Makefiles and CMake. Ading a new source file to the 
 FLTK build tree is as easy as adding the file to the database and 
 running Fluid.
 
 This module will give Fluid the power to create a database for FLTK based 
 projects. By linking further IDE support modules, the database can be used
 to create IDE build files for many platforms, compilers, and development 
 environments.
 
 This module creates a database specifically for the FLTK project itself. A
 user interface shold be created to create databases for arbitrary projects.
 
 > fluid -fltkdb <filename>     # creates the fltk database
 
 
 DATABASE FORMAT
 
 The database is constructed using Fl_Preferences. Objects in the database are
 defined by using a UUID as the group name. References to objects are done 
using 
 the same UUID as a value. The mandatory structure is defined in the first block
 below. When writing IDE files, additional optional key/value pairs may be 
 generated. Their key should be marked by a unique prefix.
 
 Standard database format:
 
 /projectName:                  # name of the project (FLTK)
 
 /ide/                          # contains IDE specific data
 /targets/                      # contains various groups for differen target 
types
 /./libs/                       # targets that will be buildt as libraries
 /././UUID/                     # [multiple] description of a library target
 /./././sources/                # all source files required to build the library
 /././././UUID/                 # [multiple] description of this dependency
 /./././././refUUID:            # reference to file definitin in /files/
 /./././libs/                   # all libraries required to build the library
 /././././....                  # see /targets/libs/UUID/sources/...
 /./././fluid/                  # all Fluid UI defs required to build the 
library
 /././././....                  # see /targets/libs/UUID/sources/...
 /./././externals/              # all external libraries required to build the 
library
 /././././....                  # see /targets/libs/UUID/sources/...
 /./././deps/                   # all dependencies on other targets in this 
project
 /././././....                  # see /targets/libs/UUID/sources/...
 /./apps/                       # full blown applications
 /././UUID/                     # [multiple] description of a application target
 /./././...                     # see /targets/libs/UUID/...
 /./tests/                      # smaller test applications
 /././UUID/                     # [multiple] description of a test app target
 /./././...                     # see /targets/libs/UUID/...
 /files/                        # more information on al referenced files
 /./UUID/                       # [multiple] description of a file
 /././pathAndName:              # path and file name relative to the archive 
root
 
 Xcode3 IDE FILES: see ide_xcode.cxx
 
 VISUALC 2005 IDE FILES: not yet implemented
 
 VISUALC 2008 IDE FILES: not yet implemented
 
 VISUALC 2010 IDE FILES: not yet implemented
 
 CMAKE FILES: not yet implemented
 
 MAKEFILE SYSTEM: not yet implemented
 
 others: not yet implemented

_______________________________________________
fltk-dev mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-dev

Reply via email to