Added svn:eol-style native

This commit is contained in:
Christopher Dunn 2007-06-14 17:58:59 +00:00
parent f4b73938d2
commit e0d7224804
7 changed files with 573 additions and 573 deletions

View File

@ -1,174 +1,174 @@
import os import os
import os.path import os.path
import sys import sys
JSONCPP_VERSION = '0.1' JSONCPP_VERSION = '0.1'
DIST_DIR = '#dist' DIST_DIR = '#dist'
options = Options() options = Options()
options.Add( EnumOption('platform', options.Add( EnumOption('platform',
'Platform (compiler/stl) used to build the project', 'Platform (compiler/stl) used to build the project',
'msvc71', 'msvc71',
allowed_values='suncc vacpp mingw msvc6 msvc7 msvc71 msvc80 linux-gcc'.split(), allowed_values='suncc vacpp mingw msvc6 msvc7 msvc71 msvc80 linux-gcc'.split(),
ignorecase=2) ) ignorecase=2) )
try: try:
platform = ARGUMENTS['platform'] platform = ARGUMENTS['platform']
except KeyError: except KeyError:
print 'You must specify a "platform"' print 'You must specify a "platform"'
sys.exit(2) sys.exit(2)
print "Building using PLATFORM =", platform print "Building using PLATFORM =", platform
rootbuild_dir = Dir('#buildscons') rootbuild_dir = Dir('#buildscons')
build_dir = os.path.join( '#buildscons', platform ) build_dir = os.path.join( '#buildscons', platform )
bin_dir = os.path.join( '#bin', platform ) bin_dir = os.path.join( '#bin', platform )
lib_dir = os.path.join( '#libs', platform ) lib_dir = os.path.join( '#libs', platform )
sconsign_dir_path = Dir(build_dir).abspath sconsign_dir_path = Dir(build_dir).abspath
sconsign_path = os.path.join( sconsign_dir_path, '.sconsign.dbm' ) sconsign_path = os.path.join( sconsign_dir_path, '.sconsign.dbm' )
# Ensure build directory exist (SConsignFile fail otherwise!) # Ensure build directory exist (SConsignFile fail otherwise!)
if not os.path.exists( sconsign_dir_path ): if not os.path.exists( sconsign_dir_path ):
os.makedirs( sconsign_dir_path ) os.makedirs( sconsign_dir_path )
# Store all dependencies signature in a database # Store all dependencies signature in a database
SConsignFile( sconsign_path ) SConsignFile( sconsign_path )
env = Environment( ENV = {'PATH' : os.environ['PATH']}, env = Environment( ENV = {'PATH' : os.environ['PATH']},
toolpath = ['scons-tools'], toolpath = ['scons-tools'],
tools=[] ) #, tools=['default'] ) tools=[] ) #, tools=['default'] )
if platform == 'suncc': if platform == 'suncc':
env.Tool( 'sunc++' ) env.Tool( 'sunc++' )
env.Tool( 'sunlink' ) env.Tool( 'sunlink' )
env.Tool( 'sunar' ) env.Tool( 'sunar' )
env.Append( LIBS = ['pthreads'] ) env.Append( LIBS = ['pthreads'] )
elif platform == 'vacpp': elif platform == 'vacpp':
env.Tool( 'default' ) env.Tool( 'default' )
env.Tool( 'aixcc' ) env.Tool( 'aixcc' )
env['CXX'] = 'xlC_r' #scons does not pick-up the correct one ! env['CXX'] = 'xlC_r' #scons does not pick-up the correct one !
# using xlC_r ensure multi-threading is enabled: # using xlC_r ensure multi-threading is enabled:
# http://publib.boulder.ibm.com/infocenter/pseries/index.jsp?topic=/com.ibm.vacpp7a.doc/compiler/ref/cuselect.htm # http://publib.boulder.ibm.com/infocenter/pseries/index.jsp?topic=/com.ibm.vacpp7a.doc/compiler/ref/cuselect.htm
env.Append( CCFLAGS = '-qrtti=all', env.Append( CCFLAGS = '-qrtti=all',
LINKFLAGS='-bh:5' ) # -bh:5 remove duplicate symbol warning LINKFLAGS='-bh:5' ) # -bh:5 remove duplicate symbol warning
elif platform == 'msvc6': elif platform == 'msvc6':
env['MSVS_VERSION']='6.0' env['MSVS_VERSION']='6.0'
for tool in ['msvc', 'msvs', 'mslink', 'masm', 'mslib']: for tool in ['msvc', 'msvs', 'mslink', 'masm', 'mslib']:
env.Tool( tool ) env.Tool( tool )
env['CXXFLAGS']='-GR -GX /nologo /MT' env['CXXFLAGS']='-GR -GX /nologo /MT'
elif platform == 'msvc70': elif platform == 'msvc70':
env['MSVS_VERSION']='7.0' env['MSVS_VERSION']='7.0'
for tool in ['msvc', 'msvs', 'mslink', 'masm', 'mslib']: for tool in ['msvc', 'msvs', 'mslink', 'masm', 'mslib']:
env.Tool( tool ) env.Tool( tool )
env['CXXFLAGS']='-GR -GX /nologo /MT' env['CXXFLAGS']='-GR -GX /nologo /MT'
elif platform == 'msvc71': elif platform == 'msvc71':
env['MSVS_VERSION']='7.1' env['MSVS_VERSION']='7.1'
for tool in ['msvc', 'msvs', 'mslink', 'masm', 'mslib']: for tool in ['msvc', 'msvs', 'mslink', 'masm', 'mslib']:
env.Tool( tool ) env.Tool( tool )
env['CXXFLAGS']='-GR -GX /nologo /MT' env['CXXFLAGS']='-GR -GX /nologo /MT'
elif platform == 'msvc80': elif platform == 'msvc80':
env['MSVS_VERSION']='8.0' env['MSVS_VERSION']='8.0'
for tool in ['msvc', 'msvs', 'mslink', 'masm', 'mslib']: for tool in ['msvc', 'msvs', 'mslink', 'masm', 'mslib']:
env.Tool( tool ) env.Tool( tool )
env['CXXFLAGS']='-GR -EHsc /nologo /MT' env['CXXFLAGS']='-GR -EHsc /nologo /MT'
elif platform == 'mingw': elif platform == 'mingw':
env.Tool( 'mingw' ) env.Tool( 'mingw' )
env.Append( CPPDEFINES=[ "WIN32", "NDEBUG", "_MT" ] ) env.Append( CPPDEFINES=[ "WIN32", "NDEBUG", "_MT" ] )
elif platform == 'linux-gcc': elif platform == 'linux-gcc':
env.Tool( 'default' ) env.Tool( 'default' )
env.Append( LIBS = ['pthread'], CCFLAGS = "-Wall" ) env.Append( LIBS = ['pthread'], CCFLAGS = "-Wall" )
else: else:
print "UNSUPPORTED PLATFORM." print "UNSUPPORTED PLATFORM."
env.Exit(1) env.Exit(1)
env.Tool('doxygen') env.Tool('doxygen')
env.Tool('substinfile') env.Tool('substinfile')
env.Tool('targz') env.Tool('targz')
env.Tool('srcdist') env.Tool('srcdist')
env.Append( CPPPATH = ['#include'], env.Append( CPPPATH = ['#include'],
LIBPATH = lib_dir ) LIBPATH = lib_dir )
short_platform = platform short_platform = platform
if short_platform.startswith('msvc'): if short_platform.startswith('msvc'):
short_platform = short_platform[2:] short_platform = short_platform[2:]
env['LIB_PLATFORM'] = short_platform env['LIB_PLATFORM'] = short_platform
env['LIB_LINK_TYPE'] = 'lib' # static env['LIB_LINK_TYPE'] = 'lib' # static
env['LIB_CRUNTIME'] = 'mt' env['LIB_CRUNTIME'] = 'mt'
env['LIB_NAME_SUFFIX'] = '${LIB_PLATFORM}_${LIB_LINK_TYPE}${LIB_CRUNTIME}' # must match autolink naming convention env['LIB_NAME_SUFFIX'] = '${LIB_PLATFORM}_${LIB_LINK_TYPE}${LIB_CRUNTIME}' # must match autolink naming convention
env['JSONCPP_VERSION'] = JSONCPP_VERSION env['JSONCPP_VERSION'] = JSONCPP_VERSION
env['BUILD_DIR'] = env.Dir(build_dir) env['BUILD_DIR'] = env.Dir(build_dir)
env['ROOTBUILD_DIR'] = env.Dir(rootbuild_dir) env['ROOTBUILD_DIR'] = env.Dir(rootbuild_dir)
env['DIST_DIR'] = DIST_DIR env['DIST_DIR'] = DIST_DIR
class SrcDistAdder: class SrcDistAdder:
def __init__( self, env ): def __init__( self, env ):
self.env = env self.env = env
def __call__( self, *args, **kw ): def __call__( self, *args, **kw ):
apply( self.env.SrcDist, (self.env['SRCDIST_TARGET'],) + args, kw ) apply( self.env.SrcDist, (self.env['SRCDIST_TARGET'],) + args, kw )
env['SRCDIST_ADD'] = SrcDistAdder( env ) env['SRCDIST_ADD'] = SrcDistAdder( env )
env['SRCDIST_TARGET'] = os.path.join( DIST_DIR, 'jsoncpp-src-%s.tar.gz' % env['JSONCPP_VERSION'] ) env['SRCDIST_TARGET'] = os.path.join( DIST_DIR, 'jsoncpp-src-%s.tar.gz' % env['JSONCPP_VERSION'] )
env['SRCDIST_BUILDER'] = env.TarGz env['SRCDIST_BUILDER'] = env.TarGz
env_testing = env.Copy( ) env_testing = env.Copy( )
env_testing.Append( LIBS = ['json_${LIB_NAME_SUFFIX}'] ) env_testing.Append( LIBS = ['json_${LIB_NAME_SUFFIX}'] )
def buildJSONExample( env, target_sources, target_name ): def buildJSONExample( env, target_sources, target_name ):
env = env.Copy() env = env.Copy()
env.Append( CPPPATH = ['#'] ) env.Append( CPPPATH = ['#'] )
exe = env.Program( target=target_name, exe = env.Program( target=target_name,
source=target_sources ) source=target_sources )
env['SRCDIST_ADD']( source=[target_sources] ) env['SRCDIST_ADD']( source=[target_sources] )
global bin_dir global bin_dir
return env.Install( bin_dir, exe ) return env.Install( bin_dir, exe )
def buildJSONTests( env, target_sources, target_name ): def buildJSONTests( env, target_sources, target_name ):
jsontests_node = buildJSONExample( env, target_sources, target_name ) jsontests_node = buildJSONExample( env, target_sources, target_name )
check_alias_target = env.Alias( 'check', jsontests_node, RunJSONTests( jsontests_node, jsontests_node ) ) check_alias_target = env.Alias( 'check', jsontests_node, RunJSONTests( jsontests_node, jsontests_node ) )
env.AlwaysBuild( check_alias_target ) env.AlwaysBuild( check_alias_target )
def buildLibrary( env, target_sources, target_name ): def buildLibrary( env, target_sources, target_name ):
static_lib = env.StaticLibrary( target=target_name + '_${LIB_NAME_SUFFIX}', static_lib = env.StaticLibrary( target=target_name + '_${LIB_NAME_SUFFIX}',
source=target_sources ) source=target_sources )
shared_lib = env.SharedLibrary( target=target_name + '_${LIB_NAME_SUFFIX}', shared_lib = env.SharedLibrary( target=target_name + '_${LIB_NAME_SUFFIX}',
source=target_sources ) source=target_sources )
global lib_dir global lib_dir
env.Install( lib_dir, static_lib ) env.Install( lib_dir, static_lib )
env.Install( lib_dir, shared_lib ) env.Install( lib_dir, shared_lib )
env['SRCDIST_ADD']( source=[target_sources] ) env['SRCDIST_ADD']( source=[target_sources] )
Export( 'env env_testing buildJSONExample buildLibrary buildJSONTests' ) Export( 'env env_testing buildJSONExample buildLibrary buildJSONTests' )
def buildProjectInDirectory( target_directory ): def buildProjectInDirectory( target_directory ):
global build_dir global build_dir
target_build_dir = os.path.join( build_dir, target_directory ) target_build_dir = os.path.join( build_dir, target_directory )
target = os.path.join( target_directory, 'sconscript' ) target = os.path.join( target_directory, 'sconscript' )
SConscript( target, build_dir=target_build_dir, duplicate=0 ) SConscript( target, build_dir=target_build_dir, duplicate=0 )
env['SRCDIST_ADD']( source=[target] ) env['SRCDIST_ADD']( source=[target] )
def runJSONTests_action( target, source = None, env = None ): def runJSONTests_action( target, source = None, env = None ):
# Add test scripts to python path # Add test scripts to python path
jsontest_path = Dir( '#test' ).abspath jsontest_path = Dir( '#test' ).abspath
sys.path.insert( 0, jsontest_path ) sys.path.insert( 0, jsontest_path )
import runjsontests import runjsontests
return runjsontests.runAllTests( os.path.abspath(source), jsontest_path ) return runjsontests.runAllTests( os.path.abspath(source), jsontest_path )
def runJSONTests_string( target, source = None, env = None ): def runJSONTests_string( target, source = None, env = None ):
return 'RunJSONTests("%s")' % source return 'RunJSONTests("%s")' % source
##def buildDoc( doxyfile_path ): ##def buildDoc( doxyfile_path ):
## doc_cmd = env.Doxygen( doxyfile_path ) ## doc_cmd = env.Doxygen( doxyfile_path )
import SCons.Action import SCons.Action
ActionFactory = SCons.Action.ActionFactory ActionFactory = SCons.Action.ActionFactory
RunJSONTests = ActionFactory(runJSONTests_action, runJSONTests_string ) RunJSONTests = ActionFactory(runJSONTests_action, runJSONTests_string )
env.Alias( 'check' ) env.Alias( 'check' )
srcdist_cmd = env['SRCDIST_ADD']( source = """ srcdist_cmd = env['SRCDIST_ADD']( source = """
AUTHORS README.txt SConstruct AUTHORS README.txt SConstruct
""".split() ) """.split() )
env.Alias( 'src-dist', srcdist_cmd ) env.Alias( 'src-dist', srcdist_cmd )
buildProjectInDirectory( 'src/jsontestrunner' ) buildProjectInDirectory( 'src/jsontestrunner' )
buildProjectInDirectory( 'src/lib_json' ) buildProjectInDirectory( 'src/lib_json' )
buildProjectInDirectory( 'doc' ) buildProjectInDirectory( 'doc' )

View File

@ -1,232 +1,232 @@
# Doxyfile 1.4.3 # Doxyfile 1.4.3
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Project related configuration options # Project related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
PROJECT_NAME = "JsonCpp" PROJECT_NAME = "JsonCpp"
PROJECT_NUMBER = %JSONCPP_VERSION% PROJECT_NUMBER = %JSONCPP_VERSION%
OUTPUT_DIRECTORY = %DOC_TOPDIR% OUTPUT_DIRECTORY = %DOC_TOPDIR%
CREATE_SUBDIRS = NO CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \ ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \ "The $name widget" \
"The $name file" \ "The $name file" \
is \ is \
provides \ provides \
specifies \ specifies \
contains \ contains \
represents \ represents \
a \ a \
an \ an \
the the
ALWAYS_DETAILED_SEC = NO ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES FULL_PATH_NAMES = YES
STRIP_FROM_PATH = %TOPDIR% STRIP_FROM_PATH = %TOPDIR%
STRIP_FROM_INC_PATH = %TOPDIR%/include STRIP_FROM_INC_PATH = %TOPDIR%/include
SHORT_NAMES = NO SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO JAVADOC_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO DETAILS_AT_TOP = NO
INHERIT_DOCS = YES INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO DISTRIBUTE_GROUP_DOC = NO
SEPARATE_MEMBER_PAGES = NO SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 3 TAB_SIZE = 3
ALIASES = ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES SUBGROUPING = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Build related configuration options # Build related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
EXTRACT_ALL = YES EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO EXTRACT_PRIVATE = NO
EXTRACT_STATIC = YES EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = NO EXTRACT_LOCAL_CLASSES = NO
EXTRACT_LOCAL_METHODS = NO EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = YES INTERNAL_DOCS = YES
CASE_SENSE_NAMES = NO CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES INLINE_INFO = YES
SORT_MEMBER_DOCS = YES SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30 MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES SHOW_DIRECTORIES = YES
FILE_VERSION_FILTER = FILE_VERSION_FILTER =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to warning and progress messages # configuration options related to warning and progress messages
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
QUIET = NO QUIET = NO
WARNINGS = YES WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text" WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = jsoncpp-doxygen-warning.log WARN_LOGFILE = jsoncpp-doxygen-warning.log
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the input files # configuration options related to the input files
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
INPUT = ../include ../src/lib_json . INPUT = ../include ../src/lib_json .
FILE_PATTERNS = *.h *.cpp *.dox FILE_PATTERNS = *.h *.cpp *.dox
RECURSIVE = YES RECURSIVE = YES
EXCLUDE = EXCLUDE =
EXCLUDE_SYMLINKS = NO EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = EXCLUDE_PATTERNS =
EXAMPLE_PATH = EXAMPLE_PATH =
EXAMPLE_PATTERNS = * EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO EXAMPLE_RECURSIVE = NO
IMAGE_PATH = IMAGE_PATH =
INPUT_FILTER = INPUT_FILTER =
FILTER_PATTERNS = FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO FILTER_SOURCE_FILES = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to source browsing # configuration options related to source browsing
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
SOURCE_BROWSER = YES SOURCE_BROWSER = YES
INLINE_SOURCES = NO INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES REFERENCES_RELATION = YES
USE_HTAGS = NO USE_HTAGS = NO
VERBATIM_HEADERS = YES VERBATIM_HEADERS = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the alphabetical class index # configuration options related to the alphabetical class index
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5 COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX = IGNORE_PREFIX =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the HTML output # configuration options related to the HTML output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_HTML = YES GENERATE_HTML = YES
HTML_OUTPUT = json-html-doc-%JSONCPP_VERSION% HTML_OUTPUT = json-html-doc-%JSONCPP_VERSION%
HTML_FILE_EXTENSION = .html HTML_FILE_EXTENSION = .html
HTML_HEADER = header.html HTML_HEADER = header.html
HTML_FOOTER = footer.html HTML_FOOTER = footer.html
HTML_STYLESHEET = HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO GENERATE_HTMLHELP = NO
CHM_FILE = jsoncpp.chm CHM_FILE = jsoncpp.chm
HHC_LOCATION = HHC_LOCATION =
GENERATE_CHI = NO GENERATE_CHI = NO
BINARY_TOC = NO BINARY_TOC = NO
TOC_EXPAND = NO TOC_EXPAND = NO
DISABLE_INDEX = NO DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4 ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250 TREEVIEW_WIDTH = 250
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the LaTeX output # configuration options related to the LaTeX output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_LATEX = NO GENERATE_LATEX = NO
LATEX_OUTPUT = latex LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO COMPACT_LATEX = NO
PAPER_TYPE = a4wide PAPER_TYPE = a4wide
EXTRA_PACKAGES = EXTRA_PACKAGES =
LATEX_HEADER = LATEX_HEADER =
PDF_HYPERLINKS = NO PDF_HYPERLINKS = NO
USE_PDFLATEX = NO USE_PDFLATEX = NO
LATEX_BATCHMODE = NO LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO LATEX_HIDE_INDICES = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the RTF output # configuration options related to the RTF output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_RTF = NO GENERATE_RTF = NO
RTF_OUTPUT = rtf RTF_OUTPUT = rtf
COMPACT_RTF = NO COMPACT_RTF = NO
RTF_HYPERLINKS = NO RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE = RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE = RTF_EXTENSIONS_FILE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the man page output # configuration options related to the man page output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_MAN = NO GENERATE_MAN = NO
MAN_OUTPUT = man MAN_OUTPUT = man
MAN_EXTENSION = .3 MAN_EXTENSION = .3
MAN_LINKS = NO MAN_LINKS = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the XML output # configuration options related to the XML output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_XML = NO GENERATE_XML = NO
XML_OUTPUT = xml XML_OUTPUT = xml
XML_SCHEMA = XML_SCHEMA =
XML_DTD = XML_DTD =
XML_PROGRAMLISTING = YES XML_PROGRAMLISTING = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output # configuration options for the AutoGen Definitions output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO GENERATE_AUTOGEN_DEF = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the Perl module output # configuration options related to the Perl module output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_PERLMOD = NO GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX = PERLMOD_MAKEVAR_PREFIX =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the preprocessor # Configuration options related to the preprocessor
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES SEARCH_INCLUDES = YES
INCLUDE_PATH = ../include INCLUDE_PATH = ../include
INCLUDE_FILE_PATTERNS = *.h INCLUDE_FILE_PATTERNS = *.h
PREDEFINED = JSONCPP_DOC_EXCLUDE_IMPLEMENTATION JSON_VALUE_USE_INTERNAL_MAP PREDEFINED = JSONCPP_DOC_EXCLUDE_IMPLEMENTATION JSON_VALUE_USE_INTERNAL_MAP
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES SKIP_FUNCTION_MACROS = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration::additions related to external references # Configuration::additions related to external references
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
TAGFILES = TAGFILES =
GENERATE_TAGFILE = GENERATE_TAGFILE =
ALLEXTERNALS = NO ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl PERL_PATH = /usr/bin/perl
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the dot tool # Configuration options related to the dot tool
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO CLASS_DIAGRAMS = NO
HIDE_UNDOC_RELATIONS = YES HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO HAVE_DOT = NO
CLASS_GRAPH = YES CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES GROUP_GRAPHS = YES
UML_LOOK = NO UML_LOOK = NO
TEMPLATE_RELATIONS = NO TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png DOT_IMAGE_FORMAT = png
DOT_PATH = DOT_PATH =
DOTFILE_DIRS = DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 1000 MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES GENERATE_LEGEND = YES
DOT_CLEANUP = YES DOT_CLEANUP = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration::additions related to the search engine # Configuration::additions related to the search engine
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
SEARCHENGINE = NO SEARCHENGINE = NO

View File

@ -1,23 +1,23 @@
<hr> <hr>
<table width="100%"> <table width="100%">
<tr> <tr>
<td width="10%" align="left" valign="center"> <td width="10%" align="left" valign="center">
<a href="http://sourceforge.net"> <a href="http://sourceforge.net">
<img <img
src="http://sourceforge.net/sflogo.php?group_id=144446" src="http://sourceforge.net/sflogo.php?group_id=144446"
width="88" height="31" border="0" alt="SourceForge Logo"></a> width="88" height="31" border="0" alt="SourceForge Logo"></a>
</td> </td>
<td width="20%" align="left" valign="center"> <td width="20%" align="left" valign="center">
hosts this site. hosts this site.
</td> </td>
<td> <td>
</td> </td>
<td align="right" valign="center"> <td align="right" valign="center">
Send comments to:<br> Send comments to:<br>
<a href="mailto:jsoncpp-devel@lists.sourceforge.net">Json-cpp Developers</a> <a href="mailto:jsoncpp-devel@lists.sourceforge.net">Json-cpp Developers</a>
</td> </td>
</tr> </tr>
</table> </table>
</body> </body>
</html> </html>

View File

@ -1,24 +1,24 @@
<html> <html>
<head> <head>
<title> <title>
JsonCpp - JSON data format manipulation library JsonCpp - JSON data format manipulation library
</title> </title>
<link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css">
</head> </head>
<body bgcolor="#ffffff"> <body bgcolor="#ffffff">
<table width="100%"> <table width="100%">
<tr> <tr>
<td width="40%" align="left" valign="center"> <td width="40%" align="left" valign="center">
<a href="http://sourceforge.net/projects/jsoncpp"> <a href="http://sourceforge.net/projects/jsoncpp">
JsonCpp project page JsonCpp project page
</a> </a>
</td> </td>
<td width="40%" align="right" valign="center"> <td width="40%" align="right" valign="center">
<a href="http://jsoncpp.sourceforge.net">JsonCpp home page</a> <a href="http://jsoncpp.sourceforge.net">JsonCpp home page</a>
</td> </td>
</tr> </tr>
</table> </table>
<hr> <hr>

View File

@ -1,97 +1,97 @@
/** /**
\mainpage \mainpage
\section _intro Introduction \section _intro Introduction
<a HREF="http://www.json.org/">JSON (JavaScript Object Notation)</a> <a HREF="http://www.json.org/">JSON (JavaScript Object Notation)</a>
is a lightweight data-interchange format. is a lightweight data-interchange format.
It can represents integer, real number, string, an ordered sequence of value, and It can represents integer, real number, string, an ordered sequence of value, and
a collection of name/value pairs. a collection of name/value pairs.
Here is an example of JSON data: Here is an example of JSON data:
\verbatim \verbatim
// Configuration options // Configuration options
{ {
// Default encoding for text // Default encoding for text
"encoding" : "UTF-8", "encoding" : "UTF-8",
// Plug-ins loaded at start-up // Plug-ins loaded at start-up
"plug-ins" : [ "plug-ins" : [
"python", "python",
"c++", "c++",
"ruby" "ruby"
], ],
// Tab indent size // Tab indent size
indent : { length : 3, use_space = true } indent : { length : 3, use_space = true }
} }
\endverbatim \endverbatim
\section _features Features \section _features Features
- read and write JSON document - read and write JSON document
- rewrite JSON document preserving original comments - rewrite JSON document preserving original comments
\code \code
Json::Value root; // will contains the root value after parsing. Json::Value root; // will contains the root value after parsing.
Json::Reader reader; Json::Reader reader;
bool parsingSuccessful = reader.parse( config_doc, root ); bool parsingSuccessful = reader.parse( config_doc, root );
if ( !parsingSuccessful ) if ( !parsingSuccessful )
{ {
// report to the user the failure and their locations in the document. // report to the user the failure and their locations in the document.
std::cout << "Failed to parse configuration\n" std::cout << "Failed to parse configuration\n"
<< reader.getFormatedErrorMessages(); << reader.getFormatedErrorMessages();
return; return;
} }
// Get the value of the member of root named 'encoding', return 'UTF-8' if there is no // Get the value of the member of root named 'encoding', return 'UTF-8' if there is no
// such member. // such member.
std::string encoding = root.get("encoding", "UTF-8" ).asString(); std::string encoding = root.get("encoding", "UTF-8" ).asString();
// Get the value of the member of root named 'encoding', return a 'null' value if // Get the value of the member of root named 'encoding', return a 'null' value if
// there is no such member. // there is no such member.
const Json::Value plugins = root["plug-ins"]; const Json::Value plugins = root["plug-ins"];
for ( int index = 0; index < plugins.size(); ++index ) // Iterates over the sequence elements. for ( int index = 0; index < plugins.size(); ++index ) // Iterates over the sequence elements.
loadPlugIn( plugins[index].asString() ); loadPlugIn( plugins[index].asString() );
setIndentLength( root["indent"].get("length", 3).asInt() ); setIndentLength( root["indent"].get("length", 3).asInt() );
setIndentUseSpace( root["indent"].get("use_space", true).asBool() ); setIndentUseSpace( root["indent"].get("use_space", true).asBool() );
// ... // ...
// At application shutdown to make the new configuration document: // At application shutdown to make the new configuration document:
// Since Json::Value has implicit constructor for all value types, it is not // Since Json::Value has implicit constructor for all value types, it is not
// necessary to explicitely construct the Json::Value object: // necessary to explicitely construct the Json::Value object:
root["encoding"] = getCurrentEncoding(); root["encoding"] = getCurrentEncoding();
root["indent"]["length"] = getCurrentIndentLength(); root["indent"]["length"] = getCurrentIndentLength();
root["indent"]["use_space"] = getCurrentIndentUseSpace(); root["indent"]["use_space"] = getCurrentIndentUseSpace();
Json::StyledWriter writer; Json::StyledWriter writer;
// Make a new JSON document for the configuration. Preserve original comments. // Make a new JSON document for the configuration. Preserve original comments.
std::string outputConfig = writer.write( root ); std::string outputConfig = writer.write( root );
// You can also use streams. This will put the contents of any JSON // You can also use streams. This will put the contents of any JSON
// stream at a particular sub-value, if you'd like. // stream at a particular sub-value, if you'd like.
std::cin >> root["subtree"]; std::cin >> root["subtree"];
// And you can write to a stream, using the StyledWriter automatically. // And you can write to a stream, using the StyledWriter automatically.
std::cout << root; std::cout << root;
\endcode \endcode
\section _plinks Build instructions \section _plinks Build instructions
The build instruction are located in the file The build instruction are located in the file
<a HREF="README.txt">README.txt</a> in the top-directory of the project. <a HREF="README.txt">README.txt</a> in the top-directory of the project.
Permanent link to the lastest revision of the file in subversion: Permanent link to the lastest revision of the file in subversion:
<a HREF="http://svn.sourceforge.net/viewcvs.cgi/jsoncpp/README.txt?view=markup">lastest README.txt</a> <a HREF="http://svn.sourceforge.net/viewcvs.cgi/jsoncpp/README.txt?view=markup">lastest README.txt</a>
\section _plinks Project links \section _plinks Project links
- <a HREF="http://jsoncpp.sourceforge.net">json-cpp home</a> - <a HREF="http://jsoncpp.sourceforge.net">json-cpp home</a>
- <a HREF="http://www.sourceforge.net/projects/jsoncpp">json-cpp sourceforge project</a> - <a HREF="http://www.sourceforge.net/projects/jsoncpp">json-cpp sourceforge project</a>
\section _rlinks Related links \section _rlinks Related links
- <a HREF="http://www.json.org/">JSON</a> Specification and alternate language implementations. - <a HREF="http://www.json.org/">JSON</a> Specification and alternate language implementations.
- <a HREF="http://www.yaml.org/">YAML</a> A data format designed for human readability. - <a HREF="http://www.yaml.org/">YAML</a> A data format designed for human readability.
- <a HREF="http://www.cl.cam.ac.uk/~mgk25/unicode.html">UTF-8 and Unicode FAQ</a>. - <a HREF="http://www.cl.cam.ac.uk/~mgk25/unicode.html">UTF-8 and Unicode FAQ</a>.
\section _license License \section _license License
The json-cpp library and this documentation are in Public Domain. The json-cpp library and this documentation are in Public Domain.
\author Baptiste Lepilleur <blep@users.sourceforge.net> \author Baptiste Lepilleur <blep@users.sourceforge.net>
*/ */

View File

@ -1 +1 @@
The documentation is generated using doxygen (http://www.doxygen.org). The documentation is generated using doxygen (http://www.doxygen.org).

View File

@ -1,22 +1,22 @@
Import( 'env' ) Import( 'env' )
import os.path import os.path
if 'doxygen' in env['TOOLS']: if 'doxygen' in env['TOOLS']:
doc_topdir = env['ROOTBUILD_DIR'] doc_topdir = env['ROOTBUILD_DIR']
doxyfile = env.SubstInFile( '#doc/doxyfile', 'doxyfile.in', doxyfile = env.SubstInFile( '#doc/doxyfile', 'doxyfile.in',
SUBST_DICT = { SUBST_DICT = {
'%JSONCPP_VERSION%' : env['JSONCPP_VERSION'], '%JSONCPP_VERSION%' : env['JSONCPP_VERSION'],
'%TOPDIR%' : env.Dir('#').abspath, '%TOPDIR%' : env.Dir('#').abspath,
'%DOC_TOPDIR%' : str(doc_topdir) } ) '%DOC_TOPDIR%' : str(doc_topdir) } )
doc_cmd = env.Doxygen( doxyfile ) doc_cmd = env.Doxygen( doxyfile )
alias_doc_cmd = env.Alias('doc', doc_cmd ) alias_doc_cmd = env.Alias('doc', doc_cmd )
env.AlwaysBuild(alias_doc_cmd) env.AlwaysBuild(alias_doc_cmd)
for dir in doc_cmd: for dir in doc_cmd:
env.Alias('doc', env.Install( '#' + dir.path, '#README.txt' ) ) env.Alias('doc', env.Install( '#' + dir.path, '#README.txt' ) )
filename = os.path.split(dir.path)[1] filename = os.path.split(dir.path)[1]
targz_path = os.path.join( env['DIST_DIR'], '%s.tar.gz' % filename ) targz_path = os.path.join( env['DIST_DIR'], '%s.tar.gz' % filename )
zip_doc_cmd = env.TarGz( targz_path, [env.Dir(dir)], zip_doc_cmd = env.TarGz( targz_path, [env.Dir(dir)],
TARGZ_BASEDIR = doc_topdir ) TARGZ_BASEDIR = doc_topdir )
env.Depends( zip_doc_cmd, alias_doc_cmd ) env.Depends( zip_doc_cmd, alias_doc_cmd )
env.Alias( 'doc-dist', zip_doc_cmd ) env.Alias( 'doc-dist', zip_doc_cmd )