/
usr
/
share
/
boost-build
/
src
/
contrib
/
/usr/share/boost-build/src/contrib
mkdir
upload
Name
Size
Mode
Actions
boost.jam
10704
0644
edit
dl
rm
modular.jam
10223
0644
edit
dl
rm
tntnet.jam
4774
0644
edit
dl
rm
wxFormBuilder.jam
7047
0644
edit
dl
rm
Edit:
/usr/share/boost-build/src/contrib/wxFormBuilder.jam
(7047B)
################################################################################ # # Copyright (c) 2007-2008 Dario Senic, Jurko Gospodnetic. # # Use, modification and distribution is subject to the Boost Software # License Version 1.0. (See accompanying file LICENSE_1_0.txt or # http://www.boost.org/LICENSE_1_0.txt) # ################################################################################ ################################################################################ # # Boost Build wxFormBuilder generator tool module. # # wxFormBuilder is a GUI designer tool for the wxWidgets library. It can then # generate C++ sources modeling the designed GUI using the wxWidgets library # APIs. # # This module defines a wxFormBuilder project file type and rules needed to # generate C++ source files from those projects. With it you can simply list # wxFormBuilder projects as sources for some target and Boost Build will # automatically convert them to C++ sources and process from there. # # The wxFormBuilder executable location may be provided as a parameter when # configuring this toolset. Otherwise the default wxFormBuilder.exe executable # name is used located in the folder pointed to by the WXFORMBUILDER environment # variable. # # Current limitations: # # * Works only on Windows. # * Works only when run via Boost Jam using the native Windows cmd.exe command # interpreter, i.e. the default native Windows Boost Jam build. # * Used wxFormBuilder projects need to have their output file names defined # consistently with target names assumed by this build script. This means # that their target names must use the prefix 'wxFormBuilderGenerated_' and # have no output folder defined where the base name is equal to the .fpb # project file's name. # ################################################################################ ################################################################################ # # Implementation note: # # Avoiding the limitation on the generated target file names can be done but # would require depending on external tools to copy the wxFormBuilder project to # a temp location and then modify it in-place to set its target file names. On # the other hand wxFormBuilder is expected to add command-line options for # choosing the target file names from the command line which will allow us to # remove this limitation in a much cleaner way. # (23.08.2008.) (Jurko) # ################################################################################ import generators ; import os ; import path ; import toolset ; import type ; ################################################################################ # # wxFormBuilder.generate() # ------------------------ # # Action for processing WX_FORM_BUILDER_PROJECT types. # ################################################################################ # # Implementation notes: # # wxFormBuilder generated CPP and H files need to be moved to the location # where the Boost Build target system expects them so that the generated CPP # file can be included into the compile process and that the clean rule # successfully deletes both CPP and H files. We expect wxFormBuilder to generate # files in the same location where the provided WX_FORM_BUILDER_PROJECT file is # located. # (15.05.2007.) (Dario) # ################################################################################ actions generate { start "" /wait "$(EXECUTABLE)" /g "$(2)" move "$(1[1]:BSR=$(2:P))" "$(1[1]:P)" move "$(1[2]:BSR=$(2:P))" "$(1[2]:P)" } ################################################################################ # # wxFormBuilder.init() # -------------------- # # Main toolset initialization rule called via the toolset.using rule. # ################################################################################ rule init ( executable ? ) { if $(.initialized) { if $(.debug-configuration) { ECHO notice: [wxFormBuilder-cfg] Repeated initialization request (executable \"$(executable:E="")\") detected and ignored. ; } } else { local environmentVariable = WXFORMBUILDER ; if $(.debug-configuration) { ECHO notice: [wxFormBuilder-cfg] Configuring wxFormBuilder... ; } # Deduce the path to the used wxFormBuilder executable. if ! $(executable) { executable = "wxFormBuilder.exe" ; local executable-path = [ os.environ $(environmentVariable) ] ; if $(executable-path)-is-not-empty { executable = [ path.root $(executable) $(executable-path) ] ; } else if $(.debug-configuration) { ECHO notice: [wxFormBuilder-cfg] No wxFormBuilder path configured either explicitly or using the $(environmentVariable) environment variable. ; ECHO notice: [wxFormBuilder-cfg] To avoid complications please update your configuration to includes a correct path to the wxFormBuilder executable. ; ECHO notice: [wxFormBuilder-cfg] wxFormBuilder executable will be searched for on the system path. ; } } if $(.debug-configuration) { ECHO notice: [wxFormBuilder-cfg] Will use wxFormBuilder executable \"$(executable)\". ; } # Now we are sure we have everything we need to initialize this toolset. .initialized = true ; # Store the path to the used wxFormBuilder executable. .executable = $(executable) ; # Type registration. type.register WX_FORM_BUILDER_PROJECT : fbp ; # Parameters to be forwarded to the action rule. toolset.flags wxFormBuilder.generate EXECUTABLE : $(.executable) ; # Generator definition and registration. generators.register-standard wxFormBuilder.generate : WX_FORM_BUILDER_PROJECT : CPP(wxFormBuilderGenerated_%) H(wxFormBuilderGenerated_%) ; } } ################################################################################ # # wxFormBuilder.is-initialized() # ------------------------------ # # Returns whether this toolset has been initialized. # ################################################################################ rule is-initialized ( ) { return $(.initialized) ; } ################################################################################ # # Startup code executed when loading this module. # ################################################################################ # Global variables for this module. .executable = ; .initialized = ; if [ MATCH (--debug-configuration) : [ modules.peek : ARGV ] ] { .debug-configuration = true ; }
Save
cmd:
run