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
