Merge branch 'next'
This commit is contained in:
commit
98ea23cd59
15 changed files with 161 additions and 157 deletions
143
acprep
143
acprep
|
|
@ -188,7 +188,7 @@ class PrepareBuild(CommandLineApp):
|
|||
self.sys_library_dirs = []
|
||||
|
||||
self.CPPFLAGS = []
|
||||
self.CCFLAGS = []
|
||||
self.CFLAGS = []
|
||||
self.CXXFLAGS = []
|
||||
self.LDFLAGS = []
|
||||
|
||||
|
|
@ -200,7 +200,7 @@ class PrepareBuild(CommandLineApp):
|
|||
'LEDGER_PRODUCTS': None,
|
||||
'CC': 'gcc',
|
||||
'CPPFLAGS': '',
|
||||
'CCFLAGS': '',
|
||||
'CFLAGS': '',
|
||||
'CXX': 'g++',
|
||||
'CXXFLAGS': '',
|
||||
'LD': 'g++',
|
||||
|
|
@ -554,7 +554,7 @@ class PrepareBuild(CommandLineApp):
|
|||
'automake',
|
||||
'autoconf',
|
||||
'libtool',
|
||||
'python26',
|
||||
'python26', '+universal',
|
||||
'libiconv', '+universal',
|
||||
'zlib', '+universal',
|
||||
'gmp' ,'+universal',
|
||||
|
|
@ -564,8 +564,8 @@ class PrepareBuild(CommandLineApp):
|
|||
'gettext' ,'+universal',
|
||||
'libedit' ,'+universal',
|
||||
'boost-jam',
|
||||
'boost', '+st+python26+icu',
|
||||
'cppunit',
|
||||
'boost', '+icu+python26+st+universal',
|
||||
'cppunit', '+universal',
|
||||
#'texlive',
|
||||
#'doxygen',
|
||||
#'graphviz',
|
||||
|
|
@ -605,7 +605,7 @@ class PrepareBuild(CommandLineApp):
|
|||
'libboost1.40-dev',
|
||||
'libboost-regex1.40-dev',
|
||||
'libboost-date-time1.40-dev',
|
||||
'libboost-filesystem1.40-dev'
|
||||
'libboost-filesystem1.40-dev',
|
||||
'libboost-python1.40-dev',
|
||||
'libedit-dev',
|
||||
'libcppunit-dev',
|
||||
|
|
@ -636,7 +636,7 @@ class PrepareBuild(CommandLineApp):
|
|||
'libboost-python1.35-dev',
|
||||
'libboost-regex1.35-dev',
|
||||
'libboost-date-time1.35-dev',
|
||||
'libboost-filesystem1.35-dev'
|
||||
'libboost-filesystem1.35-dev',
|
||||
'libedit-dev',
|
||||
'libcppunit-dev',
|
||||
#'texlive-full',
|
||||
|
|
@ -654,16 +654,29 @@ class PrepareBuild(CommandLineApp):
|
|||
if release.readline().startswith('CentOS'):
|
||||
self.log.info('Looks like you are using YUM on CentOS')
|
||||
packages = [
|
||||
'sudo', 'yum', 'install', 'gcc', 'gcc-c++',
|
||||
'compat-gcc-*', 'make', 'libtool', 'autoconf',
|
||||
'automake', 'zlib-devel', 'bzip2-devel',
|
||||
'python-devel', 'bboost-devel',
|
||||
'gmp-devel', 'gettext-devel',
|
||||
#'mpfr-devel'
|
||||
'libedit-devel', 'cppunit-devel',
|
||||
#'texlive-full',
|
||||
#'doxygen', 'graphviz', 'texinfo',
|
||||
#'lcov', 'sloccount'
|
||||
'sudo', 'yum', 'install',
|
||||
'gcc',
|
||||
'gcc-c++',
|
||||
'compat-gcc-*',
|
||||
'make',
|
||||
'libtool',
|
||||
'autoconf',
|
||||
'automake',
|
||||
'zlib-devel',
|
||||
'bzip2-devel',
|
||||
'python-devel',
|
||||
'bboost-devel',
|
||||
'gmp-devel',
|
||||
'gettext-devel',
|
||||
#'mpfr-devel'
|
||||
'libedit-devel',
|
||||
'cppunit-devel',
|
||||
#'texlive-full',
|
||||
#'doxygen',
|
||||
#'graphviz',
|
||||
'texinfo',
|
||||
#'lcov',
|
||||
#'sloccount'
|
||||
]
|
||||
self.log.info('Executing: ' + string.join(packages, ' '))
|
||||
self.execute(*packages)
|
||||
|
|
@ -676,15 +689,15 @@ class PrepareBuild(CommandLineApp):
|
|||
|
||||
environ, conf_args = self.configure_environment()
|
||||
|
||||
boost = 'boost_1_40_0'
|
||||
tarball = boost + '.tar.bz2'
|
||||
boost = 'boost_1_41_0'
|
||||
tarball = boost + '.7z'
|
||||
|
||||
if not exists(boost):
|
||||
if not exists(tarball):
|
||||
self.log.info('Downloading Boost source tarball ...')
|
||||
self.execute('curl', '-L', '-o', tarball,
|
||||
'http://downloads.sourceforge.net/boost/' +
|
||||
boost + '.tar.bz2?use_mirror=ufpr')
|
||||
boost + '.7z?use_mirror=ufpr')
|
||||
|
||||
if not exists(tarball):
|
||||
self.log.error('Failed to locate the Boost source tarball')
|
||||
|
|
@ -699,12 +712,12 @@ class PrepareBuild(CommandLineApp):
|
|||
fd.close()
|
||||
digest = csum.hexdigest()
|
||||
|
||||
if digest != 'a17281fd88c48e0d866e1a12deecbcc0':
|
||||
if digest != 'b74ee2f0f46cef601544dd4ac2d7dec4':
|
||||
self.log.error('Boost source tarball fails to match checksum')
|
||||
sys.exit(1)
|
||||
|
||||
self.log.info('Extracting Boost source tarball ...')
|
||||
self.execute('tar', 'xjf', tarball)
|
||||
self.execute('7za', 'x', tarball)
|
||||
|
||||
if not exists(boost):
|
||||
self.log.error('Failed to locate the Boost sources')
|
||||
|
|
@ -804,7 +817,7 @@ class PrepareBuild(CommandLineApp):
|
|||
self.sys_library_dirs.append(path)
|
||||
|
||||
def setup_for_johnw(self):
|
||||
if self.current_flavor != 'opt':
|
||||
if self.current_flavor == 'debug' or self.current_flavor == 'gcov':
|
||||
if exists('/usr/local/stow/cppunit/include'):
|
||||
self.sys_include_dirs.insert(0, '/usr/local/stow/cppunit/include')
|
||||
self.sys_library_dirs.insert(0, '/usr/local/stow/cppunit/lib')
|
||||
|
|
@ -814,13 +827,13 @@ class PrepareBuild(CommandLineApp):
|
|||
self.sys_library_dirs.insert(0, '/usr/local/stow/icu/lib')
|
||||
|
||||
self.CPPFLAGS.append('-D_GLIBCXX_FULLY_DYNAMIC_STRING=1')
|
||||
self.configure_args.append('--disable-shared')
|
||||
|
||||
self.options.use_glibcxx_debug = True
|
||||
else:
|
||||
self.CXXFLAGS.append('-march=nocona')
|
||||
self.CXXFLAGS.append('-msse3')
|
||||
|
||||
self.CXXFLAGS.append('-march=nocona')
|
||||
self.CXXFLAGS.append('-msse3')
|
||||
|
||||
self.configure_args.append('--disable-shared')
|
||||
self.configure_args.append('--enable-doxygen')
|
||||
self.configure_args.append('--enable-python')
|
||||
|
||||
|
|
@ -853,7 +866,8 @@ class PrepareBuild(CommandLineApp):
|
|||
|
||||
self.locate_darwin_libraries()
|
||||
|
||||
if self.current_flavor == 'opt' and \
|
||||
if (self.current_flavor == 'opt' or \
|
||||
self.current_flavor == 'default') and \
|
||||
exists('/usr/bin/g++-4.2'):
|
||||
self.envvars['CC'] = '/usr/bin/gcc-4.2'
|
||||
self.envvars['CXX'] = '/usr/bin/g++-4.2'
|
||||
|
|
@ -912,7 +926,7 @@ class PrepareBuild(CommandLineApp):
|
|||
def finalize_config(self):
|
||||
self.setup_flavor()
|
||||
|
||||
for var in ('CPPFLAGS', 'CCFLAGS', 'CXXFLAGS', 'LDFLAGS'):
|
||||
for var in ('CPPFLAGS', 'CFLAGS', 'CXXFLAGS', 'LDFLAGS'):
|
||||
value = self.__dict__[var]
|
||||
if value:
|
||||
first = not self.envvars[var]
|
||||
|
|
@ -1031,39 +1045,23 @@ class PrepareBuild(CommandLineApp):
|
|||
#########################################################################
|
||||
|
||||
def locate_darwin_libraries(self):
|
||||
if self.current_flavor != 'opt':
|
||||
if self.current_flavor == 'debug' or self.current_flavor == 'gcov':
|
||||
self.log.debug('We are using GLIBCXX_DEBUG, so setting up flags')
|
||||
|
||||
if self.options.use_glibcxx_debug:
|
||||
self.CPPFLAGS.append('-D_GLIBCXX_DEBUG=1')
|
||||
|
||||
if exists('/usr/local/stow/cppunit-debug/include'):
|
||||
if '/usr/local/stow/cppunit/include' in self.sys_include_dirs:
|
||||
self.sys_include_dirs.remove('/usr/local/stow/cppunit/include')
|
||||
self.sys_library_dirs.remove('/usr/local/stow/cppunit/lib')
|
||||
|
||||
self.sys_include_dirs.insert(0, '/usr/local/stow/cppunit-debug/include')
|
||||
self.sys_library_dirs.insert(0, '/usr/local/stow/cppunit-debug/lib')
|
||||
|
||||
if exists('/usr/local/stow/icu-debug/include'):
|
||||
if '/usr/local/stow/icu/include' in self.sys_include_dirs:
|
||||
self.sys_include_dirs.remove('/usr/local/stow/icu/include')
|
||||
self.sys_library_dirs.remove('/usr/local/stow/icu/lib')
|
||||
|
||||
self.sys_include_dirs.insert(0, '/usr/local/stow/icu-debug/include')
|
||||
self.sys_library_dirs.insert(0, '/usr/local/stow/icu-debug/lib')
|
||||
|
||||
if exists('/usr/local/lib/libboost_regex-xgcc44-sd-1_40.a'):
|
||||
if exists('/usr/local/lib/libboost_regex-xgcc44-sd-1_41.a'):
|
||||
self.envvars['BOOST_HOME'] = '/usr/local'
|
||||
self.envvars['BOOST_SUFFIX'] = '-xgcc44-sd-1_40'
|
||||
self.sys_include_dirs.append('/usr/local/include/boost-1_40')
|
||||
self.envvars['BOOST_SUFFIX'] = '-xgcc44-sd-1_41'
|
||||
self.sys_include_dirs.append('/usr/local/include/boost-1_41')
|
||||
self.inform_boost_location('is really located',
|
||||
self.envvars['BOOST_SUFFIX'])
|
||||
|
||||
elif exists('/usr/local/lib/libboost_regex-xgcc44-d-1_40.a'):
|
||||
elif exists('/usr/local/lib/libboost_regex-xgcc44-d-1_41.a'):
|
||||
self.envvars['BOOST_HOME'] = '/usr/local'
|
||||
self.envvars['BOOST_SUFFIX'] = '-xgcc44-d-1_40'
|
||||
self.sys_include_dirs.append('/usr/local/include/boost-1_40')
|
||||
self.envvars['BOOST_SUFFIX'] = '-xgcc44-d-1_41'
|
||||
self.sys_include_dirs.append('/usr/local/include/boost-1_41')
|
||||
self.inform_boost_location('is really located',
|
||||
self.envvars['BOOST_SUFFIX'])
|
||||
|
||||
|
|
@ -1082,17 +1080,17 @@ class PrepareBuild(CommandLineApp):
|
|||
self.inform_boost_location('is really located',
|
||||
self.envvars['BOOST_SUFFIX'])
|
||||
|
||||
elif exists('/usr/local/lib/libboost_regex-xgcc44-s-1_40.a'):
|
||||
elif exists('/usr/local/lib/libboost_regex-xgcc44-s-1_41.a'):
|
||||
self.envvars['BOOST_HOME'] = '/usr/local'
|
||||
self.envvars['BOOST_SUFFIX'] = '-xgcc44-s-1_40'
|
||||
self.sys_include_dirs.append('/usr/local/include/boost-1_40')
|
||||
self.envvars['BOOST_SUFFIX'] = '-xgcc44-s-1_41'
|
||||
self.sys_include_dirs.append('/usr/local/include/boost-1_41')
|
||||
self.inform_boost_location('is really located',
|
||||
self.envvars['BOOST_SUFFIX'])
|
||||
|
||||
elif exists('/usr/local/lib/libboost_regex-xgcc44-1_40.a'):
|
||||
elif exists('/usr/local/lib/libboost_regex-xgcc44-1_41.a'):
|
||||
self.envvars['BOOST_HOME'] = '/usr/local'
|
||||
self.envvars['BOOST_SUFFIX'] = '-xgcc44-1_40'
|
||||
self.sys_include_dirs.append('/usr/local/include/boost-1_40')
|
||||
self.envvars['BOOST_SUFFIX'] = '-xgcc44-1_41'
|
||||
self.sys_include_dirs.append('/usr/local/include/boost-1_41')
|
||||
self.inform_boost_location('is really located',
|
||||
self.envvars['BOOST_SUFFIX'])
|
||||
|
||||
|
|
@ -1107,13 +1105,23 @@ class PrepareBuild(CommandLineApp):
|
|||
|
||||
def setup_flavor_opt(self):
|
||||
if self.darwin_gcc:
|
||||
self.CXXFLAGS.append('-fast')
|
||||
self.LDFLAGS.append('-fast')
|
||||
self.option_no_pch()
|
||||
if '--disable-shared' in self.configure_args:
|
||||
self.configure_args.remove('--disable-shared')
|
||||
self.configure_args.append('--disable-dependency-tracking')
|
||||
for i in ['-fast']:
|
||||
self.CXXFLAGS.append(i)
|
||||
self.CFLAGS.append(i)
|
||||
self.LDFLAGS.append(i)
|
||||
for i in ['-arch', 'i386', '-arch', 'x86_64']:
|
||||
self.CXXFLAGS.append(i)
|
||||
self.CFLAGS.append(i)
|
||||
self.LDFLAGS.append(i)
|
||||
else:
|
||||
self.CXXFLAGS.append('-O3')
|
||||
self.LDFLAGS.append('-O3')
|
||||
self.CXXFLAGS.append('-fomit-frame-pointer')
|
||||
self.LDFLAGS.append('-fomit-frame-pointer')
|
||||
for i in ['-O3', '-fomit-frame-pointer']:
|
||||
self.CXXFLAGS.append(i)
|
||||
self.CFLAGS.append(i)
|
||||
self.LDFLAGS.append(i)
|
||||
|
||||
def setup_flavor_gcov(self):
|
||||
self.CXXFLAGS.append('-g')
|
||||
|
|
@ -1180,7 +1188,7 @@ class PrepareBuild(CommandLineApp):
|
|||
conf_args = ['sh', join(self.source_dir, 'configure'),
|
||||
'--srcdir', self.source_dir]
|
||||
|
||||
for var in ('CC', 'CPPFLAGS', 'CCFLAGS', 'CXX', 'CXXFLAGS',
|
||||
for var in ('CC', 'CPPFLAGS', 'CFLAGS', 'CXX', 'CXXFLAGS',
|
||||
'LD', 'LDFLAGS'):
|
||||
if self.envvars.has_key(var) and self.envvars[var] and \
|
||||
(var.endswith('FLAGS') or exists(self.envvars[var])):
|
||||
|
|
@ -1237,6 +1245,11 @@ class PrepareBuild(CommandLineApp):
|
|||
|
||||
if not self.options.no_patch:
|
||||
self.phase_patch()
|
||||
|
||||
# Wipe the pre-compiled header, if there is one
|
||||
pch = join(self.build_directory(), 'system.hh.gch')
|
||||
if exists(pch):
|
||||
os.remove(pch)
|
||||
else:
|
||||
if not self.options.no_patch and \
|
||||
self.isnewer('Makefile', '.timestamp'):
|
||||
|
|
|
|||
104
lib/Makefile
104
lib/Makefile
|
|
@ -2,96 +2,58 @@
|
|||
# This is only important if you intend to produce a Ledger binary for
|
||||
# installation.
|
||||
|
||||
STOW_ROOT = /usr/local/stow
|
||||
PRODUCTS = $(HOME)/Products
|
||||
STOW_ROOT = /usr/local/stow
|
||||
PRODUCTS = $(HOME)/Products
|
||||
|
||||
EXTRA_DEFINES = -D_GLIBCXX_FULLY_DYNAMIC_STRING=1
|
||||
CC = gcc-mp-4.4
|
||||
CXX = g++-mp-4.4
|
||||
LD = gcc-mp-4.4
|
||||
CPPFLAGS = -D_GLIBCXX_DEBUG=1 -D_GLIBCXX_FULLY_DYNAMIC_STRING=1
|
||||
CFLAGS = $(CPPFLAGS) -g
|
||||
LDFLAGS = -g
|
||||
|
||||
BOOST_SOURCE = boost
|
||||
BOOST_VERSION = 1_40_0
|
||||
BOOST_VERSION = 1_41_0
|
||||
BOOST_SOURCE = boost_$(BOOST_VERSION)
|
||||
BOOST_TOOLSET = darwin
|
||||
BOOST_DEFINES = define=_GLIBCXX_FULLY_DYNAMIC_STRING=1
|
||||
BOOST_DEFINES = define=_GLIBCXX_DEBUG=1 define=_GLIBCXX_FULLY_DYNAMIC_STRING=1
|
||||
#BOOST_FLAGS = --architecture=x86 --address_model=32_64
|
||||
BOOST_FLAGS = --toolset=$(BOOST_TOOLSET) \
|
||||
--build-type=complete --layout=versioned \
|
||||
$(BOOST_DEFINES)
|
||||
ICU_FLAGS = -sHAVE_ICU=1 -sICU_PATH=$(STOW_ROOT)/icu
|
||||
ICU_DBG_FLAGS = -sHAVE_ICU=1 -sICU_PATH=$(STOW_ROOT)/icu-debug
|
||||
ICU_FLAGS = -sHAVE_ICU=1 -sICU_PATH=$(STOW_ROOT)/icu
|
||||
|
||||
icu-release:
|
||||
-(cd icu/source; make distclean)
|
||||
(cd icu/source; sh autogen.sh; \
|
||||
./configure CPPFLAGS="$(EXTRA_DEFINES)" \
|
||||
CFLAGS="$(EXTRA_DEFINES) $(ARCH_CFLAGS)" \
|
||||
LDFLAGS="$(ARCH_LDFLAGS)" \
|
||||
CC="$(CC)" CXX="$(CXX)" LD="$(LD)" \
|
||||
--enable-static \
|
||||
--prefix=$(STOW_ROOT)/icu && \
|
||||
make install)
|
||||
all: boost-build cppunit-build icu-build boost-icu-build
|
||||
|
||||
icu-debug:
|
||||
-(cd icu/source; make distclean)
|
||||
(cd icu/source; sh autogen.sh; \
|
||||
./configure CPPFLAGS="-D_GLIBCXX_DEBUG=1 $(EXTRA_DEFINES)" \
|
||||
CFLAGS="-g $(EXTRA_DEFINES) $(ARCH_CFLAGS)" \
|
||||
LDFLAGS="-g $(ARCH_LDFLAGS)" \
|
||||
CC="$(CC)" CXX="$(CXX)" LD="$(LD)" \
|
||||
--enable-static --enable-debug \
|
||||
--prefix=$(STOW_ROOT)/icu-debug && \
|
||||
make install)
|
||||
|
||||
icu-build: icu-release icu-debug
|
||||
|
||||
boost-icu-release:
|
||||
(cd $(BOOST_SOURCE) && \
|
||||
bjam release --prefix=$(STOW_ROOT)/boost_$(BOOST_VERSION)-icu \
|
||||
--build-dir=$(PRODUCTS)/boost_$(BOOST_VERSION)-icu \
|
||||
$(BOOST_FLAGS) $(ICU_FLAGS) install)
|
||||
|
||||
boost-icu-debug:
|
||||
(cd $(BOOST_SOURCE) && \
|
||||
bjam debug --prefix=$(STOW_ROOT)/boost_$(BOOST_VERSION)-icu \
|
||||
--build-dir=$(PRODUCTS)/boost_$(BOOST_VERSION)-icu \
|
||||
$(BOOST_FLAGS) define=_GLIBCXX_DEBUG=1 \
|
||||
$(ICU_DBG_FLAGS) install)
|
||||
|
||||
boost-icu-build: boost-icu-release boost-icu-debug
|
||||
|
||||
boost-release:
|
||||
(cd $(BOOST_SOURCE) && \
|
||||
bjam release --prefix=$(STOW_ROOT)/boost_$(BOOST_VERSION) \
|
||||
--build-dir=$(PRODUCTS)/boost_$(BOOST_VERSION) \
|
||||
$(BOOST_FLAGS) install)
|
||||
|
||||
boost-debug:
|
||||
boost-build:
|
||||
(cd $(BOOST_SOURCE) && \
|
||||
bjam debug --prefix=$(STOW_ROOT)/boost_$(BOOST_VERSION) \
|
||||
--build-dir=$(PRODUCTS)/boost_$(BOOST_VERSION) \
|
||||
$(BOOST_FLAGS) define=_GLIBCXX_DEBUG=1 install)
|
||||
$(BOOST_FLAGS) install)
|
||||
|
||||
boost-build: boost-release boost-debug
|
||||
|
||||
cppunit-release:
|
||||
cppunit-build:
|
||||
-(cd cppunit; make distclean)
|
||||
(cd cppunit; sh autogen.sh; \
|
||||
./configure CPPFLAGS="$(EXTRA_DEFINES)" \
|
||||
CFLAGS="$(EXTRA_DEFINES) $(ARCH_CFLAGS)" \
|
||||
LDFLAGS="$(ARCH_LDFLAGS)" \
|
||||
./configure CPPFLAGS="$(CPPFLAGS)" \
|
||||
CFLAGS="$(CFLAGS)" \
|
||||
LDFLAGS="$(LDFLAGS)" \
|
||||
CC="$(CC)" CXX="$(CXX)" LD="$(LD)" \
|
||||
--prefix=$(STOW_ROOT)/cppunit \
|
||||
--disable-doxygen --disable-dot && \
|
||||
make install)
|
||||
|
||||
cppunit-debug:
|
||||
-(cd cppunit; make distclean)
|
||||
(cd cppunit; sh autogen.sh; \
|
||||
./configure CPPFLAGS="-D_GLIBCXX_DEBUG=1 $(EXTRA_DEFINES)" \
|
||||
CFLAGS="-g $(EXTRA_DEFINES) $(ARCH_CFLAGS)" \
|
||||
LDFLAGS="-g $(ARCH_LDFLAGS)" \
|
||||
icu-build:
|
||||
-(cd icu/source; make distclean)
|
||||
(cd icu/source; sh autogen.sh; \
|
||||
./configure CPPFLAGS="$(CPPFLAGS)" \
|
||||
CFLAGS="$(CFLAGS)" \
|
||||
LDFLAGS="$(LDFLAGS)" \
|
||||
CC="$(CC)" CXX="$(CXX)" LD="$(LD)" \
|
||||
--prefix=$(STOW_ROOT)/cppunit-debug \
|
||||
--disable-doxygen --disable-dot && \
|
||||
--enable-static --enable-debug \
|
||||
--prefix=$(STOW_ROOT)/icu && \
|
||||
make install)
|
||||
|
||||
cppunit-build: cppunit-release cppunit-debug
|
||||
|
||||
all: boost-build boost-icu-build cppunit-build
|
||||
boost-icu-build:
|
||||
(cd $(BOOST_SOURCE) && \
|
||||
bjam debug --prefix=$(STOW_ROOT)/boost_$(BOOST_VERSION)-icu \
|
||||
--build-dir=$(PRODUCTS)/boost_$(BOOST_VERSION)-icu \
|
||||
$(BOOST_FLAGS) $(ICU_FLAGS) install)
|
||||
|
|
|
|||
|
|
@ -185,7 +185,7 @@ protected:
|
|||
symbol(_symbol), precision(0), searched(false) {
|
||||
TRACE_CTOR(base_t, "const string&");
|
||||
}
|
||||
~base_t() {
|
||||
virtual ~base_t() {
|
||||
TRACE_DTOR(base_t);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -430,12 +430,22 @@ changed_value_posts::changed_value_posts(post_handler_ptr handler,
|
|||
display_total_expr = report.HANDLER(display_total_).expr;
|
||||
changed_values_only = report.HANDLED(revalued_only);
|
||||
|
||||
string gains_equity_account_name;
|
||||
if (report.HANDLED(unrealized_gains_))
|
||||
gains_equity_account_name = report.HANDLER(unrealized_gains_).str();
|
||||
else
|
||||
gains_equity_account_name = _("Equity:Unrealized Gains");
|
||||
gains_equity_account =
|
||||
report.session.journal->master->find_account(_("Equity:Unrealized Gains"));
|
||||
report.session.journal->master->find_account(gains_equity_account_name);
|
||||
gains_equity_account->add_flags(ACCOUNT_GENERATED);
|
||||
|
||||
string losses_equity_account_name;
|
||||
if (report.HANDLED(unrealized_losses_))
|
||||
losses_equity_account_name = report.HANDLER(unrealized_losses_).str();
|
||||
else
|
||||
losses_equity_account_name = _("Equity:Unrealized Losses");
|
||||
losses_equity_account =
|
||||
report.session.journal->master->find_account(_("Equity:Unrealized Losses"));
|
||||
report.session.journal->master->find_account(losses_equity_account_name);
|
||||
losses_equity_account->add_flags(ACCOUNT_GENERATED);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -115,7 +115,8 @@ void item_t::set_tag(const string& tag,
|
|||
assert(result.second);
|
||||
}
|
||||
|
||||
void item_t::parse_tags(const char * p, optional<date_t::year_type> current_year)
|
||||
void item_t::parse_tags(const char * p,
|
||||
optional<date_t::year_type> current_year)
|
||||
{
|
||||
if (const char * b = std::strchr(p, '[')) {
|
||||
if (*(b + 1) != '\0' &&
|
||||
|
|
@ -164,7 +165,8 @@ void item_t::parse_tags(const char * p, optional<date_t::year_type> current_year
|
|||
}
|
||||
}
|
||||
|
||||
void item_t::append_note(const char * p, optional<date_t::year_type> current_year)
|
||||
void item_t::append_note(const char * p,
|
||||
optional<date_t::year_type> current_year)
|
||||
{
|
||||
if (note) {
|
||||
*note += '\n';
|
||||
|
|
|
|||
|
|
@ -316,7 +316,7 @@ optional<price_point_t> commodity_pool_t::parse_price_directive(char * line)
|
|||
|
||||
price_point_t point;
|
||||
point.when = datetime;
|
||||
point.price.parse(symbol_and_price);
|
||||
point.price.parse(symbol_and_price, PARSE_NO_MIGRATE);
|
||||
VERIFY(point.price.valid());
|
||||
|
||||
DEBUG("commodity.download", "Looking up symbol: " << symbol);
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ public:
|
|||
|
||||
explicit commodity_pool_t();
|
||||
|
||||
~commodity_pool_t() {
|
||||
virtual ~commodity_pool_t() {
|
||||
TRACE_DTOR(commodity_pool_t);
|
||||
foreach (commodities_map::value_type pair, commodities)
|
||||
checked_delete(pair.second);
|
||||
|
|
|
|||
|
|
@ -887,6 +887,8 @@ option_t<report_t> * report_t::lookup_option(const char * p)
|
|||
OPT(unbudgeted);
|
||||
else OPT(uncleared);
|
||||
else OPT(unrealized);
|
||||
else OPT(unrealized_gains_);
|
||||
else OPT(unrealized_losses_);
|
||||
else OPT(unround);
|
||||
else OPT(unsorted);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -302,6 +302,8 @@ public:
|
|||
HANDLER(unbudgeted).report(out);
|
||||
HANDLER(uncleared).report(out);
|
||||
HANDLER(unrealized).report(out);
|
||||
HANDLER(unrealized_gains_).report(out);
|
||||
HANDLER(unrealized_losses_).report(out);
|
||||
HANDLER(unround).report(out);
|
||||
HANDLER(unsorted).report(out);
|
||||
HANDLER(weekly).report(out);
|
||||
|
|
@ -876,6 +878,9 @@ public:
|
|||
|
||||
OPTION(report_t, unrealized);
|
||||
|
||||
OPTION(report_t, unrealized_gains_);
|
||||
OPTION(report_t, unrealized_losses_);
|
||||
|
||||
OPTION_(report_t, unround, DO() {
|
||||
parent->HANDLER(display_amount_)
|
||||
.set_expr(string("--unround"), "unrounded(amount_expr)");
|
||||
|
|
|
|||
28
src/scope.cc
28
src/scope.cc
|
|
@ -42,15 +42,18 @@ void symbol_scope_t::define(const symbol_t::kind_t kind,
|
|||
{
|
||||
DEBUG("scope.symbols", "Defining '" << name << "' = " << def);
|
||||
|
||||
std::pair<symbol_map::iterator, bool> result
|
||||
= symbols.insert(symbol_map::value_type(symbol_t(kind, name, def), def));
|
||||
if (! result.second) {
|
||||
symbol_map::iterator i = symbols.find(symbol_t(kind, name));
|
||||
assert(i != symbols.end());
|
||||
symbols.erase(i);
|
||||
if (! symbols)
|
||||
symbols = symbol_map();
|
||||
|
||||
result = symbols.insert(symbol_map::value_type(symbol_t(kind, name, def),
|
||||
def));
|
||||
std::pair<symbol_map::iterator, bool> result
|
||||
= symbols->insert(symbol_map::value_type(symbol_t(kind, name, def), def));
|
||||
if (! result.second) {
|
||||
symbol_map::iterator i = symbols->find(symbol_t(kind, name));
|
||||
assert(i != symbols->end());
|
||||
symbols->erase(i);
|
||||
|
||||
result = symbols->insert(symbol_map::value_type(symbol_t(kind, name, def),
|
||||
def));
|
||||
if (! result.second)
|
||||
throw_(compile_error,
|
||||
_("Redefinition of '%1' in the same scope") << name);
|
||||
|
|
@ -60,10 +63,11 @@ void symbol_scope_t::define(const symbol_t::kind_t kind,
|
|||
expr_t::ptr_op_t symbol_scope_t::lookup(const symbol_t::kind_t kind,
|
||||
const string& name)
|
||||
{
|
||||
symbol_map::const_iterator i = symbols.find(symbol_t(kind, name));
|
||||
if (i != symbols.end())
|
||||
return (*i).second;
|
||||
|
||||
if (symbols) {
|
||||
symbol_map::const_iterator i = symbols->find(symbol_t(kind, name));
|
||||
if (i != symbols->end())
|
||||
return (*i).second;
|
||||
}
|
||||
return child_scope_t::lookup(kind, name);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ class symbol_scope_t : public child_scope_t
|
|||
{
|
||||
typedef std::map<symbol_t, expr_t::ptr_op_t> symbol_map;
|
||||
|
||||
symbol_map symbols;
|
||||
optional<symbol_map> symbols;
|
||||
|
||||
public:
|
||||
explicit symbol_scope_t() {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
pricedb --pricedb-format='P %(date) %(scrub(display_amount))\n'
|
||||
<<<
|
||||
D $1,000.00
|
||||
|
||||
P 2009/01/01 13:30:00 AAPL $10.00
|
||||
P 2009/01/01 14:30:00 AAPL $20.00
|
||||
P 2009/01/01 15:30:00 AAPL $30.00
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
prices --prices-format='%(datetime) %(scrub(display_amount))\n'
|
||||
<<<
|
||||
D $1,000.00
|
||||
|
||||
P 2009/01/01 13:30:00 AAPL $10.00
|
||||
P 2009/01/01 14:30:00 AAPL $20.00
|
||||
P 2009/01/01 15:30:00 AAPL $30.00
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
reg -V --end=2009/06/16
|
||||
<<<
|
||||
D 1000.00 EUR
|
||||
|
||||
2008/04/15 * Paid expenses back from cie.
|
||||
Expenses:Cie-Reimbursements 2000 CAD @ 1.10 EUR
|
||||
Assets:Checking
|
||||
|
|
|
|||
|
|
@ -232,7 +232,7 @@ ledger_la_CPPFLAGS = $(libledger_python_la_CPPFLAGS)
|
|||
ledger_la_SOURCES = src/pyledger.cc
|
||||
ledger_la_DEPENDENCIES = $(lib_LTLIBRARIES)
|
||||
ledger_la_LDFLAGS = -avoid-version -module
|
||||
ledger_la_LIBADD = $(LIBOBJS) $(lib_LTLIBRARIES) $(INTLLIBS)
|
||||
ledger_la_LIBADD = $(LIBOBJS) $(lib_LTLIBRARIES)
|
||||
|
||||
pkgpython_PYTHON = python/__init__.py python/server.py
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue