gnucash maint: Multiple changes pushed
John Ralls
jralls at code.gnucash.org
Tue Jan 12 17:48:11 EST 2016
Updated via https://github.com/Gnucash/gnucash/commit/44814868 (commit)
via https://github.com/Gnucash/gnucash/commit/1d474968 (commit)
from https://github.com/Gnucash/gnucash/commit/e5a4a5c4 (commit)
commit 448148681f9e212d3023c6e716cefa8fde20f4bb
Author: Rob Gowin <robgowin at gmail.com>
Date: Sat Dec 26 11:55:15 2015 -0500
CMake build changes for maint
* Rename various .cpp files back to .c
* Carry copy INSTALL and COPYING from autotools.
* Fix unrelated issue with installing quote scripts.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4f01b73..5421497 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,14 +14,14 @@ PROJECT (Gnucash)
# Version number of gnucash
SET (GNUCASH_MAJOR_VERSION 2)
SET (GNUCASH_MINOR_VERSION 6)
-SET (GNUCASH_MICRO_VERSION 99)
+SET (GNUCASH_MICRO_VERSION 11)
SET (GNUCASH_NANO_VERSION 0)
SET (VERSION "${GNUCASH_MAJOR_VERSION}.${GNUCASH_MINOR_VERSION}.${GNUCASH_MICRO_VERSION}")
SET (GNUCASH_LATEST_STABLE_SERIES 2.6)
SET (PACKAGE gnucash)
SET (PACKAGE_NAME GnuCash)
-SET (PACKAGE_VERSION 2.6.99)
+SET (PACKAGE_VERSION ${VERSION})
SET (PACKAGE_BUGREPORT gnucash-devel at gnucash.org)
SET (PACKAGE_TARNAME ${PACKAGE})
SET (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
@@ -321,34 +321,7 @@ ENDIF(NOT PERL_FOUND)
FIND_PROGRAM(POD2MAN_EXECUTABLE pod2man)
-#BOOST
-IF (APPLE)
- # I suppose I would rather use the shared Boost libraries here, but the Boost install procedure
- # does not set RPATH for it's shared library correctly. It uses a 'naked' RPATH, which requires
- # that DYLD_FALLBACK_LIBRARY_PATH be set. There is supposedly a dll-path option so set RPATH, but
- # I can't get it to work (http://www.boost.org/build/doc/html/bbv2/faq/dll-path.html) and neither
- # can some other random person on the internet:
- # http://stackoverflow.com/questions/33667795/dll-path-has-no-effect-when-building-boost
- # Using static libs simplifies things.
- SET (Boost_USE_STATIC_LIBS ON)
- SET (Boost_USE_STATIC_RUNTIME ON)
-ELSE()
- SET (Boost_USE_STATIC_LIBS OFF)
- SET (Boost_USE_STATIC_RUNTIME OFF)
-ENDIF()
-
-SET (Boost_USE_MULTITHREADED ON)
-SET (Boost_FIND_QUIETLY ON)
-
-FIND_PACKAGE (Boost 1.54.0 REQUIRED COMPONENTS date_time)
-
-IF (Boost_FOUND)
- include_directories(${Boost_INCLUDE_DIRS})
- SET(HAVE_BOOST 1)
-ELSE (Boost_FOUND)
- MESSAGE (SEND_ERROR "Boost 1.54.0 or later is not installed, and is required. Please install it and ensure that the following libraries are built: chrono, date_time, filesystem, log, program_options, regex, signals, system, and test.")
-ENDIF (Boost_FOUND)
-
+# Boost stuff removed, not required on maint.
# Compiler flags
@@ -363,7 +336,7 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") # FIXME: should be -std=
IF (UNIX)
- SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused")
+ SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -O2 -Wno-unused -std=gnu99")
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=deprecated-declarations")
ENDIF (UNIX)
IF (MINGW)
@@ -438,23 +411,15 @@ IF (GNC_BUILD_AS_INSTALL)
)
ENDIF()
ENDIF()
-# Install DOC files from top level directory
-FILE(WRITE COPYING
-"This is a placeholder for the COPYING file as generated by automake.
-If and when CMake becomes the default build system, we will need to
-put COPYING under version control."
-)
-
-FILE(WRITE INSTALL
-"This is a placeholder for the INSTALL file as generated by automake.
-If and when CMake becomes the default build system, we will need to
-put INSTALL under version control."
-)
SET(gnucash_DOCS
AUTHORS
ChangeLog
+ ChangeLog.1999
+ ChangeLog.2000
+ ChangeLog.2001
+ ChangeLog.2002
ChangeLog.2003
ChangeLog.2004
ChangeLog.2005
@@ -472,8 +437,6 @@ SET(gnucash_DOCS
LICENSE
NEWS
README.dependencies
- COPYING
- INSTALL
)
INSTALL(FILES ${gnucash_DOCS} DESTINATION share/doc/gnucash)
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 7c664c5..9589c7a 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -23,4 +23,6 @@ IF (GNC_BUILD_AS_INSTALL)
ADD_CUSTOM_TARGET(compiled-schemas ALL DEPENDS ${SCHEMA_DIRECTORY}/gschemas.compiled)
-ENDIF(GNC_BUILD_AS_INSTALL)
\ No newline at end of file
+ENDIF(GNC_BUILD_AS_INSTALL)
+
+INSTALL(FILES INSTALL COPYING DESTINATION share/doc/gnucash)
\ No newline at end of file
diff --git a/cmake/COPYING b/cmake/COPYING
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/cmake/COPYING
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/cmake/INSTALL b/cmake/INSTALL
new file mode 100644
index 0000000..2099840
--- /dev/null
+++ b/cmake/INSTALL
@@ -0,0 +1,370 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
+Inc.
+
+ Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved. This file is offered as-is,
+without warranty of any kind.
+
+Basic Installation
+==================
+
+ Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package. The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package. Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below. The lack of an optional feature in a given package is not
+necessarily a bug. More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+ The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package, generally using the just-built uninstalled binaries.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+ user, and only the `make install' phase executed with root
+ privileges.
+
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+ regular user, particularly if the prior `make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 7. Often, you can also type `make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+ 8. Some packages, particularly those that use Automake, provide `make
+ distcheck', which can by used by developers to test that all other
+ targets like `make install' and `make uninstall' work correctly.
+ This target is generally not run by end users.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you can use GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'. This
+is known as a "VPATH" build.
+
+ With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory. After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+Installation Names
+==================
+
+ By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them. In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+affected directory. For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'. Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated. The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+ The second method involves providing the `DESTDIR' variable. For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names. The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters. On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+ Some packages offer the ability to configure how verbose the
+execution of `make' will be. For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved. Use GNU `make'
+instead.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS
+ KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation. Until the limitation is lifted, you can use
+this workaround:
+
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
index ba7728f..080aed6 100644
--- a/po/CMakeLists.txt
+++ b/po/CMakeLists.txt
@@ -3,7 +3,7 @@
# Set of available languages.
SET (TP_LINGUAS az ca cs da eu fa ja nl pt rw sk sr sv tr uk zh_CN)
# already marked as external at TP:
-SET (GC_LINGUAS ar bg de el en_GB es fi fr gu he hi hu it kn ko lt lv mr nb ne pl pt_BR ro ru ta te ur vi zh_TW)
+SET (GC_LINGUAS ar bg de el en_GB es fi fr gu he hi hu it kn ko lt lv mr nb ne pl pt_BR pt_PT ro ru ta te ur vi zh_TW)
# not marked or no TP team:
SET (NEW_LINGUAS as brx doi es_NI kok kok at latin ks mai mni mni at bengali)
diff --git a/src/backend/dbi/CMakeLists.txt b/src/backend/dbi/CMakeLists.txt
index 8e96b81..ef3cc86 100644
--- a/src/backend/dbi/CMakeLists.txt
+++ b/src/backend/dbi/CMakeLists.txt
@@ -3,7 +3,7 @@
# Source file gncmod-backend-dbi.c does not appear to be use in Makefile.in, so not included here.
SET (backend_dbi_SOURCES
- gnc-backend-dbi.cpp
+ gnc-backend-dbi.c
)
SET (backend_dbi_noinst_HEADERS
gnc-backend-dbi.h gnc-backend-dbi-priv.h
diff --git a/src/backend/sql/CMakeLists.txt b/src/backend/sql/CMakeLists.txt
index 4da6bfa..644d165 100644
--- a/src/backend/sql/CMakeLists.txt
+++ b/src/backend/sql/CMakeLists.txt
@@ -3,29 +3,29 @@
SET (backend_sql_SOURCES
- gnc-backend-sql.cpp
- gnc-account-sql.cpp
- gnc-address-sql.cpp
- gnc-bill-term-sql.cpp
- gnc-book-sql.cpp
- gnc-budget-sql.cpp
- gnc-commodity-sql.cpp
- gnc-customer-sql.cpp
- gnc-employee-sql.cpp
- gnc-entry-sql.cpp
- gnc-invoice-sql.cpp
- gnc-job-sql.cpp
- gnc-lots-sql.cpp
- gnc-order-sql.cpp
- gnc-owner-sql.cpp
- gnc-price-sql.cpp
- gnc-recurrence-sql.cpp
- gnc-schedxaction-sql.cpp
- gnc-slots-sql.cpp
- gnc-tax-table-sql.cpp
- gnc-transaction-sql.cpp
- gnc-vendor-sql.cpp
- escape.cpp
+ gnc-backend-sql.c
+ gnc-account-sql.c
+ gnc-address-sql.c
+ gnc-bill-term-sql.c
+ gnc-book-sql.c
+ gnc-budget-sql.c
+ gnc-commodity-sql.c
+ gnc-customer-sql.c
+ gnc-employee-sql.c
+ gnc-entry-sql.c
+ gnc-invoice-sql.c
+ gnc-job-sql.c
+ gnc-lots-sql.c
+ gnc-order-sql.c
+ gnc-owner-sql.c
+ gnc-price-sql.c
+ gnc-recurrence-sql.c
+ gnc-schedxaction-sql.c
+ gnc-slots-sql.c
+ gnc-tax-table-sql.c
+ gnc-transaction-sql.c
+ gnc-vendor-sql.c
+ escape.c
)
SET (backend_sql_noinst_HEADERS
gnc-account-sql.h
diff --git a/src/backend/xml/CMakeLists.txt b/src/backend/xml/CMakeLists.txt
index 99fd698..3125f77 100644
--- a/src/backend/xml/CMakeLists.txt
+++ b/src/backend/xml/CMakeLists.txt
@@ -34,39 +34,39 @@ SET (backend_xml_utils_noinst_HEADERS
)
SET (backend_xml_utils_SOURCES
- gnc-account-xml-v2.cpp
- gnc-address-xml-v2.cpp
- gnc-bill-term-xml-v2.cpp
- gnc-book-xml-v2.cpp
- gnc-budget-xml-v2.cpp
- gnc-commodity-xml-v2.cpp
- gnc-customer-xml-v2.cpp
- gnc-employee-xml-v2.cpp
- gnc-entry-xml-v2.cpp
- gnc-freqspec-xml-v2.cpp
- gnc-invoice-xml-v2.cpp
- gnc-job-xml-v2.cpp
- gnc-lot-xml-v2.cpp
- gnc-order-xml-v2.cpp
- gnc-owner-xml-v2.cpp
- gnc-pricedb-xml-v2.cpp
- gnc-recurrence-xml-v2.cpp
- gnc-schedxaction-xml-v2.cpp
- gnc-tax-table-xml-v2.cpp
- gnc-transaction-xml-v2.cpp
- gnc-vendor-xml-v2.cpp
- gnc-xml-helper.cpp
- io-example-account.cpp
- io-gncxml-gen.cpp
- io-gncxml-v1.cpp
- io-gncxml-v2.cpp
- io-utils.cpp
- sixtp-dom-generators.cpp
- sixtp-dom-parsers.cpp
- sixtp-stack.cpp
- sixtp-to-dom-parser.cpp
- sixtp-utils.cpp
- sixtp.cpp
+ gnc-account-xml-v2.c
+ gnc-address-xml-v2.c
+ gnc-bill-term-xml-v2.c
+ gnc-book-xml-v2.c
+ gnc-budget-xml-v2.c
+ gnc-commodity-xml-v2.c
+ gnc-customer-xml-v2.c
+ gnc-employee-xml-v2.c
+ gnc-entry-xml-v2.c
+ gnc-freqspec-xml-v2.c
+ gnc-invoice-xml-v2.c
+ gnc-job-xml-v2.c
+ gnc-lot-xml-v2.c
+ gnc-order-xml-v2.c
+ gnc-owner-xml-v2.c
+ gnc-pricedb-xml-v2.c
+ gnc-recurrence-xml-v2.c
+ gnc-schedxaction-xml-v2.c
+ gnc-tax-table-xml-v2.c
+ gnc-transaction-xml-v2.c
+ gnc-vendor-xml-v2.c
+ gnc-xml-helper.c
+ io-example-account.c
+ io-gncxml-gen.c
+ io-gncxml-v1.c
+ io-gncxml-v2.c
+ io-utils.c
+ sixtp-dom-generators.c
+ sixtp-dom-parsers.c
+ sixtp-stack.c
+ sixtp-to-dom-parser.c
+ sixtp-utils.c
+ sixtp.c
)
@@ -95,7 +95,7 @@ INSTALL(TARGETS gnc-backend-xml-utils
# ----
-SET(libgncmod_backend_xml_SOURCES gnc-backend-xml.cpp)
+SET(libgncmod_backend_xml_SOURCES gnc-backend-xml.c)
SET_SOURCE_FILES_PROPERTIES (${libgncmod_backend_xml_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
diff --git a/src/import-export/CMakeLists.txt b/src/import-export/CMakeLists.txt
index 55c7fad..4750c44 100644
--- a/src/import-export/CMakeLists.txt
+++ b/src/import-export/CMakeLists.txt
@@ -20,6 +20,7 @@ SET (generic_import_SOURCES
import-commodity-matcher.c
import-backend.c
import-format-dialog.c
+ import-match-map.c
import-match-picker.c
import-parse.c
import-utilities.c
@@ -33,6 +34,7 @@ SET_SOURCE_FILES_PROPERTIES (${generic_import_SOURCES} PROPERTIES OBJECT_DEPENDS
SET (generic_import_HEADERS
import-parse.h
+ import-match-map.h
)
SET (generic_import_noinst_HEADERS
diff --git a/src/import-export/aqb/CMakeLists.txt b/src/import-export/aqb/CMakeLists.txt
index 9aa5902..f695ac0 100644
--- a/src/import-export/aqb/CMakeLists.txt
+++ b/src/import-export/aqb/CMakeLists.txt
@@ -10,6 +10,7 @@ SET (aqbanking_SOURCES
gnc-ab-getbalance.c
gnc-ab-gettrans.c
gnc-ab-kvp.c
+ gnc-ab-trans-templ.c
gnc-ab-transfer.c
gnc-ab-utils.c
gnc-file-aqb-import.c
@@ -28,6 +29,7 @@ SET (aqbanking_noinst_HEADERS
gnc-ab-getbalance.h
gnc-ab-gettrans.h
gnc-ab-kvp.h
+ gnc-ab-trans-templ.h
gnc-ab-transfer.h
gnc-ab-utils.h
gnc-file-aqb-import.h
diff --git a/src/import-export/csv-imp/CMakeLists.txt b/src/import-export/csv-imp/CMakeLists.txt
index dc42986..940453e 100644
--- a/src/import-export/csv-imp/CMakeLists.txt
+++ b/src/import-export/csv-imp/CMakeLists.txt
@@ -3,15 +3,11 @@ ADD_SUBDIRECTORY(gschemas)
SET(csv_import_SOURCES
gncmod-csv-import.c
assistant-csv-account-import.c
- assistant-csv-fixed-trans-import.c
assistant-csv-trans-import.c
gnc-plugin-csv-import.c
csv-account-import.c
- csv-fixed-trans-import.c
- gnc-csv-account-map.c
gnc-csv-model.c
gnc-csv-gnumeric-popup.c
- gnc-csv-trans-settings.c
${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.c
)
@@ -20,15 +16,11 @@ SET_SOURCE_FILES_PROPERTIES (${csv_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${C
SET(csv_import_noinst_HEADERS
assistant-csv-account-import.h
- assistant-csv-fixed-trans-import.h
assistant-csv-trans-import.h
gnc-plugin-csv-import.h
csv-account-import.h
- csv-fixed-trans-import.h
- gnc-csv-account-map.h
gnc-csv-model.h
gnc-csv-gnumeric-popup.h
- gnc-csv-trans-settings.h
${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.h
)
@@ -51,7 +43,7 @@ INSTALL(TARGETS gncmod-csv-import
# No headers to install
-SET(csv_import_GLADE assistant-csv-account-import.glade assistant-csv-fixed-trans-import.glade
+SET(csv_import_GLADE assistant-csv-account-import.glade
assistant-csv-trans-import.glade)
INSTALL(FILES ${csv_import_GLADE} DESTINATION share/gnucash/gtkbuilder)
diff --git a/src/libqof/CMakeLists.txt b/src/libqof/CMakeLists.txt
index ccc8f46..4b2f1a2 100644
--- a/src/libqof/CMakeLists.txt
+++ b/src/libqof/CMakeLists.txt
@@ -1,80 +1,77 @@
# CMakeLists.txt for src/libqof
SET (gnc_qof_HEADERS
- qof/gnc-aqbanking-templates.h
- qof/gnc-date-p.h
- qof/gnc-date.h
- qof/gnc-numeric.h
- qof/gnc-datetime.hpp
- qof/gnc-rational.hpp
- qof/gnc-timezone.hpp
- qof/guid.h
- qof/kvp_frame.hpp
- qof/kvp-value.hpp
- qof/qof.h
- qof/qofbackend-p.h
- qof/qofbackend.h
- qof/qofbook.h
- qof/qofbookslots.h
- qof/qofchoice.h
- qof/qofclass.h
- qof/qofevent.h
- qof/qofid-p.h
- qof/qofid.h
- qof/qofinstance-p.h
- qof/qofinstance.h
- qof/qoflog.h
- qof/qofobject.h
- qof/qofquery.h
- qof/qofquerycore.h
- qof/qofsession.h
- qof/qofutil.h
- qof/qof-gobject.h
- qof/qof-string-cache.h
+
+ qof/gnc-date-p.h
+ qof/gnc-date.h
+ qof/gnc-numeric.h
+ qof/guid.h
+ qof/kvp-util-p.h
+ qof/kvp-util.h
+ qof/kvp_frame.h
+ qof/qof.h
+ qof/qofbackend-p.h
+ qof/qofbackend.h
+ qof/qofbook.h
+ qof/qofbookslots.h
+ qof/qofchoice.h
+ qof/qofclass.h
+ qof/qofevent.h
+ qof/qofid-p.h
+ qof/qofid.h
+ qof/qofinstance-p.h
+ qof/qofinstance.h
+ qof/qoflog.h
+ qof/qofobject.h
+ qof/qofquery.h
+ qof/qofquerycore.h
+ qof/qofreference.h
+ qof/qofsession.h
+ qof/qof-string-cache.h
+ qof/qofutil.h
+ qof/qof-gobject.h
+
)
SET (gnc_qof_noinst_HEADERS
- qof/qofbook-p.h
- qof/qofclass-p.h
- qof/gnc-date-p.h
- qof/qofevent-p.h
- qof/gnc-int128.hpp
- qof/qofobject-p.h
- qof/qofquery-p.h
- qof/qofquerycore-p.h
- qof/qofsession-p.h
+ qof/md5.h
+ qof/qofbook-p.h
+ qof/qofclass-p.h
+ qof/qofevent-p.h
+ qof/qofmath128-p.h
+ qof/qofobject-p.h
+ qof/qofquery-p.h
+ qof/qofquerycore-p.h
+ qof/qofsession-p.h
)
SET (gnc_qof_SOURCES
- qof/gnc-aqbanking-templates.cpp
- qof/gnc-date.cpp
- qof/gnc-datetime.cpp
- qof/gnc-int128.cpp
- qof/gnc-numeric.cpp
- qof/gnc-rational.cpp
- qof/gnc-datetime.cpp
- qof/gnc-timezone.cpp
- qof/guid.cpp
- qof/kvp_frame.cpp
- qof/kvp-value.cpp
- qof/qofbackend.cpp
- qof/qofbook.cpp
- qof/qofchoice.cpp
- qof/qofclass.cpp
- qof/qofevent.cpp
- qof/qofid.cpp
- qof/qofinstance.cpp
- qof/qoflog.cpp
- qof/qofobject.cpp
- qof/qofquery.cpp
- qof/qofquerycore.cpp
- qof/qofsession.cpp
- qof/qofutil.cpp
- qof/qof-string-cache.cpp
+ qof/md5.c
+ qof/gnc-date.c
+ qof/gnc-numeric.c
+ qof/guid.c
+ qof/kvp-util.c
+ qof/kvp_frame.c
+ qof/qofbackend.c
+ qof/qofbook.c
+ qof/qofchoice.c
+ qof/qofclass.c
+ qof/qofevent.c
+ qof/qofid.c
+ qof/qofinstance.c
+ qof/qoflog.c
+ qof/qofobject.c
+ qof/qofquery.c
+ qof/qofquerycore.c
+ qof/qofreference.c
+ qof/qofsession.c
+ qof/qof-string-cache.c
+ qof/qofutil.c
)
+
IF (WIN32)
ADD_DEFINITIONS (-DOS_WIN32)
SET (gnc_qof_SOURCES ${gnc_qof_SOURCES}
- qof/qof-win32.cpp
+ qof/qof-win32.c
../../lib/libc/strptime.c
../../lib/libc/localtime_r.c
../../lib/libc/gmtime_r.c
@@ -84,6 +81,10 @@ ENDIF (WIN32)
# Add dependency on config.h
SET_SOURCE_FILES_PROPERTIES (${gnc_qof_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+# Must compile md5.c without strict aliasing, otherwise function md5_finish_ctx
+# gets "dereferencing type-punned pointer will break strict-aliasing rules"
+SET_SOURCE_FILES_PROPERTIES (qof/md5.c PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
+
ADD_LIBRARY (gnc-qof
${gnc_qof_SOURCES}
${gnc_qof_HEADERS}
@@ -111,7 +112,7 @@ INSTALL(TARGETS gnc-qof
INSTALL(FILES ${gnc_qof_HEADERS} DESTINATION include/gnucash)
SET(qof_test_HEADERS
- qof/kvp_frame.hpp
+ qof/kvp_frame.h
qof/qofbook.h
qof/qofinstance.h
qof/qofobject.h
diff --git a/src/quotes/CMakeLists.txt b/src/quotes/CMakeLists.txt
index d00ec9e..dd23444 100644
--- a/src/quotes/CMakeLists.txt
+++ b/src/quotes/CMakeLists.txt
@@ -9,11 +9,12 @@ FILE(WRITE ${_TMPDIR}/copy_with_perms.cmake
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)"
)
+SET(_BIN_FILES "")
FOREACH(file gnc-fq-check.in gnc-fq-helper.in gnc-fq-update.in gnc-fq-dump)
STRING(REPLACE ".in" "" _OUTPUT_FILE_NAME ${file})
GNC_CONFIGURE2(${file} ${_OUTPUT_FILE_NAME})
SET(_ABS_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE_NAME})
- INSTALL(PROGRAMS ${_ABS_OUPUT_FILE} DESTINATION bin)
+ LIST(APPEND _BIN_FILES ${_ABS_OUTPUT_FILE})
IF (GNC_BUILD_AS_INSTALL)
ADD_CUSTOM_COMMAND(
OUTPUT ${_ABS_OUTPUT_FILE}
@@ -43,4 +44,5 @@ ENDFOREACH(file)
ADD_CUSTOM_TARGET(quotes-man ALL DEPENDS ${_MAN_FILES})
ADD_CUSTOM_TARGET(quotes-bin ALL DEPENDS gnc-fq-check gnc-fq-update)
INSTALL(FILES ${_MAN_FILES} DESTINATION share/man/man1)
+INSTALL(PROGRAMS ${_BIN_FILES} DESTINATION bin)
diff --git a/src/report/business-reports/CMakeLists.txt b/src/report/business-reports/CMakeLists.txt
index 70687af..a03e16f 100644
--- a/src/report/business-reports/CMakeLists.txt
+++ b/src/report/business-reports/CMakeLists.txt
@@ -5,7 +5,6 @@ SET (business_reports_SCHEME
easy-invoice.scm
fancy-invoice.scm
taxinvoice.scm
- receipt.scm
invoice.scm
job-report.scm
owner-report.scm
@@ -18,8 +17,6 @@ SET (business_reports_SCHEME
SET(business_reports_DATA
taxinvoice.eguile.scm
taxinvoice.css
- receipt.eguile.scm
- receipt.css
balsheet-eg.css
balsheet-eg.eguile.scm
)
diff --git a/src/report/stylesheets/CMakeLists.txt b/src/report/stylesheets/CMakeLists.txt
index 8649c37..8cf782d 100644
--- a/src/report/stylesheets/CMakeLists.txt
+++ b/src/report/stylesheets/CMakeLists.txt
@@ -35,7 +35,6 @@ SET(stylesheets_SCHEME_1
stylesheet-fancy.scm
stylesheet-footer.scm
stylesheet-easy.scm
- stylesheet-head-or-tail.scm
)
SET(stylesheets_SCHEME_2
commit 1d474968cac3185a667b065638282f32af71a2ab
Author: Rob Gowin <robgowin at gmail.com>
Date: Mon Dec 7 11:17:08 2015 -0600
Add ability to build GnuCash with CMake
Backported from master.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a2a3725..4f01b73 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,48 +3,156 @@
# This is very EXPERIMENTAL! We will see how far this project will
# get.
-CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
-PROJECT (cutecash)
-
-# Version number of cutecash
-SET (CUTECASH_VERSION_MAJOR "0")
-SET (CUTECASH_VERSION_MINOR "1")
-SET (CUTECASH_VERSION_PATCH "0")
+IF (WIN32)
+ CMAKE_MINIMUM_REQUIRED (VERSION 3.3.2)
+ELSE()
+ CMAKE_MINIMUM_REQUIRED (VERSION 3.1)
+ENDIF()
+
+PROJECT (Gnucash)
+
+# Version number of gnucash
+SET (GNUCASH_MAJOR_VERSION 2)
+SET (GNUCASH_MINOR_VERSION 6)
+SET (GNUCASH_MICRO_VERSION 99)
+SET (GNUCASH_NANO_VERSION 0)
+SET (VERSION "${GNUCASH_MAJOR_VERSION}.${GNUCASH_MINOR_VERSION}.${GNUCASH_MICRO_VERSION}")
+SET (GNUCASH_LATEST_STABLE_SERIES 2.6)
+
+SET (PACKAGE gnucash)
+SET (PACKAGE_NAME GnuCash)
+SET (PACKAGE_VERSION 2.6.99)
+SET (PACKAGE_BUGREPORT gnucash-devel at gnucash.org)
+SET (PACKAGE_TARNAME ${PACKAGE})
+SET (PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+SET (PACKAGE_URL "")
# Change this in development versions when changing anything that
# affects stored data structures. Reset to zero when bumping version.
-SET (CUTECASH_VERSION_NANO "0")
+
SET (GNUCASH_RESAVE_VERSION "19920")
+SET(GETTEXT_PACKAGE "gnucash")
+
# Extra cmake macros
SET (CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/src/cmake_modules;${CMAKE_MODULE_PATH}")
INCLUDE (MacroAppendForeach)
INCLUDE (MacroAddSourceFileCompileFlags)
INCLUDE (GncAddSwigCommand)
INCLUDE (CheckIncludeFiles)
+INCLUDE (GncAddSchemeTargets)
+INCLUDE (GncConfigure)
+INCLUDE (GncAddGSchemaTargets)
# ############################################################
+# These options are settable from the CMake command line. For example, to disable
+# SQL, put -D WITH_SQL=OFF on the command line.
+
+OPTION (WITH_SQL "Build this project with SQL (libdbi) support" ON)
+OPTION (WITH_AQBANKING "Build this project with aqbanking (online banking) support" ON )
+OPTION (WITH_GNUCASH "Build all of GnuCash, not just cutecash" ON)
+OPTION (WITH_CUTECASH "Also build cutecash" OFF)
+OPTION (WITH_OFX "compile with ofx support (needs LibOFX)" ON)
+OPTION (ENABLE_BINRELOC "compile with binary relocation support" ON)
+OPTION (ENABLE_DEBUG "compile with debugging flags set" OFF)
+OPTION (ENABLE_REGISTER2 "compile with register2 enabled" OFF)
+OPTION (DISABLE_NLS "do not use Native Language Support" OFF)
+OPTION (DISABLE_DEPRECATED_GLIB "don't use deprecated glib funcions" OFF)
+OPTION (DISABLE_DEPRECATED_GTK "don't use deprectacted gtk, gdk or gdk-pixbuf functions" OFF)
+OPTION (DISABLE_DEPRECATED_GNOME "don't use deprecated gnome functions" OFF)
+OPTION (GNC_BUILD_AS_INSTALL "Make build directory structure mirror install" ON)
+# ############################################################
-OPTION (WITH_SQL "Build this project with SQL (libdbi) support" OFF)
-OPTION (WITH_AQBANKING "Build this project with aqbanking (online banking) support" OFF)
+# These are also settable from the command line in a similar way.
-# ############################################################
+SET(BINDIR ${CMAKE_INSTALL_PREFIX}/bin CACHE STRING "user executables")
+SET(SYSCONFDIR ${CMAKE_INSTALL_PREFIX}/etc CACHE STRING "read-only single-machine data")
+SET(DATAROOTDIR ${CMAKE_INSTALL_PREFIX}/share CACHE STRING "read-only arch.-independent data root")
+SET(DATADIR ${DATAROOTDIR} CACHE STRING "read-only architecture-independent data")
+SET(LIBDIR ${CMAKE_INSTALL_PREFIX}/lib CACHE STRING "object code libraries")
+SET(LOCALEDIR ${DATAROOTDIR}/locale CACHE STRING "locale-dependent data")
+SET(GNC_HELPDIR ${DATADIR} CACHE STRING "where to store help files")
+SET(DATADIRNAME share)
+SET(GNC_SYSTEM_XDG_DATA_DIRS /usr/local/share /usr/share)
+SET(GNC_DBD_DIR ${CMAKE_PREFIX_PATH}/lib/dbd CACHE PATH "specify location of libdbi drivers")
+SET(PKGLIBDIR ${CMAKE_INSTALL_PREFIX}/lib/gnucash)
+
+IF(GNC_BUILD_AS_INSTALL)
+ SET(DATADIR_BUILD ${CMAKE_BINARY_DIR}/${DATADIRNAME})
+ SET(LIBDIR_BUILD ${CMAKE_BINARY_DIR}/lib)
+ SET(SYSCONFDIR_BUILD ${CMAKE_BINARY_DIR}/etc)
+ SET(BINDIR_BUILD ${CMAKE_BINARY_DIR}/bin)
+
+ENDIF()
-# Find pkg-config
-FIND_PACKAGE (PkgConfig REQUIRED)
+
+IF (WIN32)
+ # Help Windows find the various dependencies. We assume here that the standard advice for building
+ # GnuCash has been followed and that these dependencies live underneath something like C:/GCDEV, which
+ # should be provided as CMAKE_PREFIX_PATH on the CMake command line:
+ # cmake -D CMAKE_PREFIX_PATH=c/gcdev -G "MSYS Makefiles" path/to/gnucash/sources
+ #
+
+ SET(CMAKE_FRAMEWORK_PATH_TMP ${CMAKE_PREFIX_PATH})
+ SET(DEV_SUBDIRS aqbanking gnome goffice guile gwenhywfar libgsf libofx libsoup libxslt webkit)
+ FOREACH(subdir ${DEV_SUBDIRS})
+ LIST(APPEND CMAKE_FRAMEWORK_PATH_TMP ${CMAKE_PREFIX_PATH}/${subdir})
+ ENDFOREACH()
+ # Setting CMAKE_FRAMEWORK_PATH, which is intended for OS X, is a terrible hack here. But I don't
+ # want to mess with CMAKE_PREFIX_PATH.
+ SET(CMAKE_FRAMEWORK_PATH "${CMAKE_FRAMEWORK_PATH_TMP}")
+ SET(PKG_CONFIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/gnome/bin/pkg-config.exe)
+ SET(SWIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/swig/swig.exe)
+ SET(BOOST_ROOT ${CMAKE_PREFIX_PATH}/boost)
+ SET(GIT_EXECUTABLE ${CMAKE_PREFIX_PATH}/git-1.9.4/bin/git)
+ SET(REGEX_INCLUDE_PATH ${CMAKE_PREFIX_PATH}/regex/include)
+ SET(REGEX_LDFLAGS "-L${CMAKE_PREFIX_PATH}/regex/lib -lregex")
+ SET(LIBXSLT_INCLUDE_DIR ${CMAKE_PREFIX_PATH}/libxslt/include)
+ SET(LIBXSLT_XSLTPROC_EXECUTABLE ${CMAKE_PREFIX_PATH}/libxslt/bin/xsltproc)
+ # I have not yet debugged the intltool-merge file generation process on Windows.
+ SET(NO_INTLTOOL TRUE)
+ENDIF(WIN32)
+
+IF (APPLE)
+ SET (CMAKE_OSX_ARCHITECTURES "i386")
+ ADD_DEFINITIONS(-arch i386)
+ #SET(CMAKE_OSX_ARCHITECTURES "x86_64")
+ # For PPC build, uncomment these lines (untested):
+ #SET (CMAKE_OSX_ARCHITECTURES "i386;ppc")
+ #ADD_DEFINITIONS(-arch i386 -arch ppc
+ #SET (AC_APPLE_UNIVERSAL_BUILD 1)
+ENDIF (APPLE)
+
+FIND_PACKAGE(PkgConfig REQUIRED)
+
+# The default FindPkgConfig.make code has a bug in how the setting of PKG_CONFIG_PATH is handled.
+# The src/cmake_modules/GncFindPkgConfig.cmake file overrides a couple of macros in FindPkgConfig to fix.
+
+INCLUDE (GncFindPkgConfig)
IF (NOT PKG_CONFIG_FOUND)
MESSAGE (SEND_ERROR "pkg-config not found, but is required")
ENDIF (NOT PKG_CONFIG_FOUND)
# glib et al.
-PKG_CHECK_MODULES (GLIB2 glib-2.0>=2.20)
-PKG_CHECK_MODULES (GCONF2 gconf-2.0>=2.22)
-PKG_CHECK_MODULES (GOBJECT gobject-2.0>=2.20)
-PKG_CHECK_MODULES (GMODULE gmodule-2.0>=2.20)
-PKG_CHECK_MODULES (GTHREAD gthread-2.0>=2.20)
-PKG_CHECK_MODULES (GLIBMM glibmm-2.4>=2.24)
-PKG_CHECK_MODULES (LIBXML2 libxml-2.0>=2.7.0)
+GNC_PKG_CHECK_MODULES (GLIB2 REQUIRED glib-2.0>=2.20)
+GNC_PKG_CHECK_MODULES (GOBJECT REQUIRED gobject-2.0>=2.20)
+GNC_PKG_CHECK_MODULES (GMODULE REQUIRED gmodule-2.0>=2.20)
+GNC_PKG_CHECK_MODULES (GTHREAD REQUIRED gthread-2.0>=2.20)
+
+GNC_PKG_CHECK_MODULES (LIBXML2 REQUIRED libxml-2.0>=2.7.0)
+GNC_PKG_CHECK_MODULES (GNOMECANVAS REQUIRED libgnomecanvas-2.0)
+GNC_PKG_CHECK_MODULES (LIBXSLT REQUIRED libxslt)
+GNC_PKG_CHECK_MODULES (WEBKIT REQUIRED webkit-1.0>=1.2)
+IF (WITH_GNUCASH)
+ GNC_PKG_CHECK_MODULES (GTK2 REQUIRED gtk+-2.0>=2.24.0)
+ GNC_PKG_CHECK_MODULES (GOFFICE REQUIRED libgoffice-0.8>=0.8.17)
+ENDIF (WITH_GNUCASH)
+
+GNC_PKG_CHECK_MODULES (ZLIB REQUIRED zlib)
+IF (WITH_CUTECASH)
+ GNC_PKG_CHECK_MODULES (GLIBMM REQUIRED glibmm-2.4>=2.24)
+ENDIF(WITH_CUTECASH)
IF (MSVC)
MESSAGE (STATUS "Hint: To create the import libraries for the gnome DLLs (e.g. gconf-2.lib), use the dlltool as follows: pexports bin/libgconf-2-4.dll > lib/libgconf-2.def ; dlltool -d lib/libgconf-2.def -D bin/libgconf-2-4.dll -l lib/gconf-2.lib")
@@ -54,23 +162,41 @@ IF (MSVC)
ADD_DEFINITIONS ( -DNOMINMAX )
ENDIF (MSVC)
-## Libxml2
-#FIND_PACKAGE (LibXml2 REQUIRED)
-FIND_PACKAGE (ZLIB REQUIRED)
-
-IF (NOT GLIB2_FOUND)
- MESSAGE (SEND_ERROR "Glib2 not found, but is required")
-ENDIF (NOT GLIB2_FOUND)
-
FIND_PATH (LIBINTL_INCLUDE_PATH NAMES libintl.h
PATHS /usr/include /opt/gnome/include)
FIND_LIBRARY (LIBINTL_LIBRARY NAMES intl)
+
+FIND_PATH (LTDL_INCLUDE_PATH NAMES ltdl.h PATHS /usr/include)
+
+IF(NOT LTDL_INCLUDE_PATH-NOTFOUND)
+ SET(HAVE_LTDL_H 1)
+ENDIF()
+
+
+
+FIND_PROGRAM(INTLTOOL_MERGE NAMES intltool-merge HINTS ${CMAKE_PREFIX_PATH}/gnome/bin)
+FIND_PROGRAM(GLIB_COMPILE_SCHEMAS glib-compile-schemas HINTS ${CMAKE_PREFIX_PATH}/gnome/bin)
+FIND_PROGRAM(MSGFMT msgfmt)
+IF(NOT INTLTOOL_MERGE)
+ MESSAGE(SEND_ERROR "Can't find intltool-merge program. Please set INTLTOOL_MERGE.")
+ENDIF(NOT INTLTOOL_MERGE)
+
+IF (NOT GLIB_COMPILE_SCHEMAS)
+ MESSAGE(SEND_ERROR "Can't find glib-compile-schemas program. Please set GLIB_COMPILE_SCHEMAS.")
+ENDIF(NOT GLIB_COMPILE_SCHEMAS)
+
+IF (NOT MSGFMT)
+ MESSAGE(SEND_ERROR "Can't find msgfmt program. Please set MSGFMT.")
+ENDIF(NOT MSGFMT)
+
FIND_PATH (REGEX_INCLUDE_PATH NAMES regex.h
PATHS /usr/include /opt/gnome/include)
FIND_LIBRARY (REGEX_LIBRARY NAMES regex)
IF (WIN32)
FIND_PATH (HTMLHELP_INCLUDE_PATH NAMES htmlhelp.h
- PATHS /usr/include)
+ PATHS /usr/include
+ HINTS ${CMAKE_PREFIX_PATH}/hh/include)
+ FIND_LIBRARY (HTMLHELP_LIBRARY htmlhelp HINTS ${CMAKE_PREFIX_PATH}/hh/lib)
ENDIF (WIN32)
# ############################################################
@@ -79,29 +205,102 @@ ENDIF (WIN32)
FIND_PACKAGE (SWIG REQUIRED)
INCLUDE (${SWIG_USE_FILE})
+# Find Guile and determine which version we are using.
+# First look for guile-2.0. If not found, try to locate guile-1.8
+
# guile library and include dir
-PKG_CHECK_MODULES (GUILE guile-1.8>=1.8.0)
-ADD_DEFINITIONS (-DHAVE_GUILE18)
-# We also need to look up the executable
-FIND_PROGRAM (GUILE_EXECUTABLE guile)
-
-IF (NOT GUILE_FOUND)
- MESSAGE (SEND_ERROR "Guile was not found, but is required. Please set PKG_CONFIG_PATH so that guile-1.8.pc is found.")
-ENDIF (NOT GUILE_FOUND)
-IF (NOT GUILE_EXECUTABLE)
- MESSAGe (SEND_ERROR "The guile executable was not found, but is required. Please set GUILE_EXECUTABLE.")
-ENDIF (NOT GUILE_EXECUTABLE)
+GNC_PKG_CHECK_MODULES (GUILE2 guile-2.0>=2.0.9 QUIET)
+IF (GUILE2_FOUND) # found guile-2.0
+ ADD_DEFINITIONS (-DHAVE_GUILE20)
+ SET(HAVE_GUILE2 TRUE)
+ SET(GUILE_EFFECTIVE_VERSION 2.0)
+ # We also need to look up the executable
+ FIND_PROGRAM (GUILE_EXECUTABLE guile)
+ FIND_PROGRAM (GUILD_EXECUTABLE guild)
+
+ SET(GUILE_INCLUDE_DIRS ${GUILE2_INCLUDE_DIRS})
+ SET(GUILE_LDFLAGS ${GUILE2_LDFLAGS})
+
+ IF (NOT GUILE_EXECUTABLE)
+ MESSAGE (SEND_ERROR "The guile executable was not found, but is required. Please set GUILE_EXECUTABLE.")
+ ENDIF (NOT GUILE_EXECUTABLE)
+ IF (NOT GUILD_EXECUTABLE)
+ MESSAGE (SEND_ERROR "The guild executable was not found, but is required. Please set GUILD_EXECUTABLE.")
+ ENDIF (NOT GUILD_EXECUTABLE)
+ MESSAGE(STATUS "Using guile-2.0.x")
+ELSE()
+ # look for guile 1.8
+ GNC_PKG_CHECK_MODULES (GUILE1 guile-1.8>=1.8.8 QUIET)
+ IF (NOT GUILE1_FOUND)
+ MESSAGE (SEND_ERROR "Neither guile 1.8 nor guile 2.0 where find. Please set PKG_CONFIG_PATH one of these is found.")
+ ENDIF(NOT GUILE1_FOUND)
+
+ SET(GUILE_INCLUDE_DIRS ${GUILE1_INCLUDE_DIRS})
+ SET(GUILE_LDFLAGS ${GUILE1_LDFLAGS})
+ SET(HAVE_GUILE1 TRUE)
+ SET(GUILE_EFFECTIVE_VERSION 1.8)
+ MESSAGE(STATUS "Using guile-1.8.x")
+ENDIF()
+
+# Qt
+IF (WITH_CUTECASH)
+ SET (QT_MIN_VERSION "4.5.0")
+ FIND_PACKAGE (Qt4 REQUIRED) # find and setup Qt4 for this project
+ENDIF (WITH_CUTECASH)
+
+# ############################################################
+IF (WITH_AQBANKING)
+ GNC_PKG_CHECK_MODULES (GWENHYWFAR REQUIRED gwenhywfar)
+ GNC_PKG_CHECK_MODULES (AQBANKING REQUIRED aqbanking)
+ IF(WITH_GNUCASH)
+ GNC_PKG_CHECK_MODULES (GWENGUI_GTK2 REQUIRED gwengui-gtk2)
+ GNC_PKG_CHECK_MODULES (KTOBLZCHECK ktoblzcheck)
+ IF(KTOBLZCHECK_FOUND)
+ SET(HAVE_KTOBLZCHECK_H 1)
+ ENDIF(KTOBLZCHECK_FOUND)
+ ENDIF(WITH_GNUCASH)
+ENDIF (WITH_AQBANKING)
+
+IF (WITH_OFX)
+ GNC_PKG_CHECK_MODULES (LIBOFX REQUIRED libofx)
+ENDIF(WITH_OFX)
+# ############################################################
+
+IF(APPLE)
+ EXECUTE_PROCESS(
+ COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=target gdk-2.0
+ OUTPUT_VARIABLE TARGET_RESULT
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ IF(TARGET_RESULT STREQUAL "quartz")
+ SET(GNC_PLATFORM_COCOA 1)
+ SET(GDK_QUARTZ 1)
+ GNC_PKG_CHECK_MODULES(GTK_MAC gtk-mac-integration-gtk2)
+ IF (GTK_MAC_FOUND)
+ SET(MAC_INTEGRATION 1)
+ FIND_LIBRARY(COCOA_LIBRARY Cocoa)
+ FIND_LIBRARY(SECURITY_LIBRARY Security)
+ FIND_LIBRARY(CARBON_LIBRARY Carbon)
+ SET(OSX_EXTRA_COMPILE_FLAGS -xobjective-c)
+ SET(OSX_EXTRA_LIBRARIES objc ${COCOA_LIBRARY} ${SECURITY_LIBRARY} ${CARBON_LIBRARY})
+ ENDIF(GTK_MAC_FOUND)
+ ENDIF()
+ENDIF(APPLE)
# ############################################################
# xsltproc
-FIND_PROGRAM (XSLTPROC xsltproc)
+FIND_PACKAGE(LibXslt)
+IF (NOT LIBXSLT_FOUND)
+ MESSAGE(SEND_ERROR "libxslt library not found.")
+ENDIF(NOT LIBXSLT_FOUND)
# ############################################################
# libdbi
-FIND_PATH (LIBDBI_INCLUDE_PATH dbi/dbi.h)
-FIND_LIBRARY (LIBDBI_LIBRARY dbi)
+FIND_PATH (LIBDBI_INCLUDE_PATH dbi/dbi.h HINTS ${CMAKE_PREFIX_PATH}/libdbi/include)
+FIND_LIBRARY (LIBDBI_LIBRARY dbi HINTS ${CMAKE_PREFIX_PATH}/libdbi/lib)
+FIND_PATH (LIBDBI_DRIVERS_DIR dbd HINTS ${CMAKE_PREFIX_PATH}/lib ${CMAKE_PREFIX_PATH}/libdbi-drivers/lib)
IF (WITH_SQL)
IF (NOT LIBDBI_INCLUDE_PATH)
MESSAGE (SEND_ERROR "Include file <dbi/dbi.h> was not found - did you install libdbi0-dev or libdbi-dev?")
@@ -109,40 +308,199 @@ IF (WITH_SQL)
IF (NOT LIBDBI_LIBRARY)
MESSAGE (SEND_ERROR "Library libdbi was not found")
ENDIF (NOT LIBDBI_LIBRARY)
+ SET(HAVE_DBI_DBI_H 1)
ENDIF (WITH_SQL)
# ############################################################
-# Qt
-SET (QT_MIN_VERSION "4.5.0")
-FIND_PACKAGE (Qt4 REQUIRED) # find and setup Qt4 for this project
+FIND_PACKAGE(Perl)
-# ############################################################
-IF (WITH_AQBANKING)
- PKG_CHECK_MODULES (GWENHYWFAR REQUIRED gwenhywfar)
- PKG_CHECK_MODULES (AQBANKING REQUIRED aqbanking)
-ENDIF (WITH_AQBANKING)
+if (NOT PERL_FOUND)
+ MESSAGE(SEND_ERROR "Perl executable not found. Please set PERL_EXECUTABLE.")
+ENDIF(NOT PERL_FOUND)
+
+FIND_PROGRAM(POD2MAN_EXECUTABLE pod2man)
+
+#BOOST
+IF (APPLE)
+ # I suppose I would rather use the shared Boost libraries here, but the Boost install procedure
+ # does not set RPATH for it's shared library correctly. It uses a 'naked' RPATH, which requires
+ # that DYLD_FALLBACK_LIBRARY_PATH be set. There is supposedly a dll-path option so set RPATH, but
+ # I can't get it to work (http://www.boost.org/build/doc/html/bbv2/faq/dll-path.html) and neither
+ # can some other random person on the internet:
+ # http://stackoverflow.com/questions/33667795/dll-path-has-no-effect-when-building-boost
+ # Using static libs simplifies things.
+ SET (Boost_USE_STATIC_LIBS ON)
+ SET (Boost_USE_STATIC_RUNTIME ON)
+ELSE()
+ SET (Boost_USE_STATIC_LIBS OFF)
+ SET (Boost_USE_STATIC_RUNTIME OFF)
+ENDIF()
+
+SET (Boost_USE_MULTITHREADED ON)
+SET (Boost_FIND_QUIETLY ON)
+
+FIND_PACKAGE (Boost 1.54.0 REQUIRED COMPONENTS date_time)
+
+IF (Boost_FOUND)
+ include_directories(${Boost_INCLUDE_DIRS})
+ SET(HAVE_BOOST 1)
+ELSE (Boost_FOUND)
+ MESSAGE (SEND_ERROR "Boost 1.54.0 or later is not installed, and is required. Please install it and ensure that the following libraries are built: chrono, date_time, filesystem, log, program_options, regex, signals, system, and test.")
+ENDIF (Boost_FOUND)
-# ############################################################
# Compiler flags
+
+IF (APPLE)
+ ADD_DEFINITIONS(-Wno-unknown-attributes -Wno-typedef-redefinition)
+ # SET (CMAKE_OSX_ARCHITECTURES "i386")
+ENDIF (APPLE)
+
+
+# Also, set the C++ version to c++11
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11") # FIXME: should be -std=c++11
+
+
IF (UNIX)
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wno-pointer-sign -D_FORTIFY_SOURCE=2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused")
SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=deprecated-declarations")
ENDIF (UNIX)
IF (MINGW)
- SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused")
+ SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused -std=gnu99")
ENDIF (MINGW)
-
+IF (APPLE)
+ SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedef")
+ENDIF(APPLE)
+
+IF (APPLE AND WITH_GNUCASH)
+ SET(CMAKE_MACOSX_RPATH ON)
+ENDIF (APPLE AND WITH_GNUCASH)
+
+IF (UNIX AND NOT APPLE)
+ SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib:${CMAKE_INSTALL_PREFIX}/lib/gnucash")
+ENDIF()
+
+SET(BUILD_SHARED_LIBS ON)
+
+IF (GNC_BUILD_AS_INSTALL)
+ # Most libraries are installed to lib/gnucash, so set that as the default.
+ # For the handful that are installed to lib, we override the properies below
+ # (after the targets have been read in).
+
+
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/gnucash)
+ IF (XCODE_VERSION)
+ # FIXME: These settings break the ability to manipulate different configurations (Debug,
+ # FIXME: Release, etc.) in Xcode. We'll need to change the module loading C code if
+ # we want to support multi config.
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib/gnucash)
+ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib/gnucash)
+ ENDIF()
+ # For binarines
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+ IF (XCODE_VERSION)
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin)
+ SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin)
+ ENDIF()
+ENDIF()
# ############################################################
# The subdirectories
+ADD_SUBDIRECTORY (accounts)
+ADD_SUBDIRECTORY (checks)
+ADD_SUBDIRECTORY (doc)
+ADD_SUBDIRECTORY (po)
ADD_SUBDIRECTORY (src)
+# This cmake subdir must be the last add_subdirectory() call because
+# it contains post-install actions to execute.
+ADD_SUBDIRECTORY(cmake)
+
+IF (GNC_BUILD_AS_INSTALL)
+ SET_TARGET_PROPERTIES(gnc-qof gnc-core-utils gnc-module gnc-backend-sql gnc-backend-xml-utils
+ gnc-business-ledger gnc-gnome PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+ IF (XCODE_VERSION)
+ LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/lib
+ LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/lib
+ ENDIF()
+
+ RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+ IF (XCODE_VERSION)
+ RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_BINARY_DIR}/bin
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_BINARY_DIR}/bin
+ ENDIF()
+ )
+ IF (WIN32)
+ SET_TARGET_PROPERTIES(gncmod-backend-xml gncmod-stylesheets gncmod-utility-reports PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+ )
+ ENDIF()
+ENDIF()
+# Install DOC files from top level directory
+
+FILE(WRITE COPYING
+"This is a placeholder for the COPYING file as generated by automake.
+If and when CMake becomes the default build system, we will need to
+put COPYING under version control."
+)
+
+FILE(WRITE INSTALL
+"This is a placeholder for the INSTALL file as generated by automake.
+If and when CMake becomes the default build system, we will need to
+put INSTALL under version control."
+)
+
+SET(gnucash_DOCS
+ AUTHORS
+ ChangeLog
+ ChangeLog.2003
+ ChangeLog.2004
+ ChangeLog.2005
+ ChangeLog.2006
+ ChangeLog.2007
+ ChangeLog.2008
+ ChangeLog.2009
+ ChangeLog.2010
+ ChangeLog.2011
+ ChangeLog.2012
+ ChangeLog.2013
+ ChangeLog.2014
+ DOCUMENTERS
+ HACKING
+ LICENSE
+ NEWS
+ README.dependencies
+ COPYING
+ INSTALL
+)
+
+INSTALL(FILES ${gnucash_DOCS} DESTINATION share/doc/gnucash)
+
+#For windows, copy in some DLLs from Mingw
+
+IF (WIN32)
+ SET(MINGW_DLLS ${CMAKE_PREFIX_PATH}/mingw/bin/libstdc++-6.dll ${CMAKE_PREFIX_PATH}/mingw/bin/libgcc_s_dw2-1.dll)
+ INSTALL(PROGRAMS ${MINGW_DLLS} DESTINATION bin)
+ IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${MINGW_DLLS} DESTINATION ${BINDIR_BUILD}
+ # Do permissions matter for windows?
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ )
+ ENDIF()
+
+ENDIF()
# ############################################################
# Package creation rules
+IF (WITH_CUTECASH)
+SET (CUTECASH_VERSION_MAJOR "0")
+SET (CUTECASH_VERSION_MINOR "1")
+SET (CUTECASH_VERSION_PATCH "0")
+SET (CUTECASH_VERSION_NANO "0")
+
SET (CPACK_PACKAGE_NAME "Cutecash")
SET (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Cutecash Free Finance Software")
SET (CPACK_PACKAGE_VERSION_MAJOR ${CUTECASH_VERSION_MAJOR})
@@ -152,7 +510,7 @@ SET (CPACK_PACKAGE_VENDOR "Christian Stimming")
SET (CPACK_SOURCE_IGNORE_FILES "/\\\\.svn/;/\\\\.git/;.*~;build.*;html;Debug;Release")
SET (CPACK_STRIP_FILES "bin/cutecash")
#SET (CPACK_PACKAGE_EXECUTABLES "bin/carclient")
-
+ENDIF (WITH_CUTECASH)
IF(UNIX)
SET(CPACK_GENERATOR "TGZ")
ENDIF(UNIX)
diff --git a/accounts/CMakeLists.txt b/accounts/CMakeLists.txt
new file mode 100644
index 0000000..2899820
--- /dev/null
+++ b/accounts/CMakeLists.txt
@@ -0,0 +1,67 @@
+SET(accounts_SUBDIRS
+ C
+ cs
+ da
+ de_AT
+ de_CH
+ de_DE
+ el_GR
+ en_GB
+ es_ES
+ es_MX
+ fi_FI
+ fr_CA
+ fr_CH
+ fr_FR
+ hu_HU
+ it
+# ja
+ ko
+ lt
+ lv
+# nb
+# nl
+ pl
+ pt_BR
+ pt_PT
+ ru
+ sk
+ sv_AX
+ sv_FI
+ sv_SE
+ tr_TR
+ zh_CN
+ zh_HK
+ zh_TW
+)
+
+
+# Most of the account subdirectories that have acctchrt_full.gnucash-xea do not install it. Don't know why.
+# But these subdirectories do.
+SET(accounts_fullcharts_SUBDIRS ja nb nl)
+
+FOREACH(dir ${accounts_SUBDIRS})
+ INSTALL(DIRECTORY ${dir} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/gnucash/accounts
+ PATTERN Makefile.* EXCLUDE
+ PATTERN acctchrt_full.gnucash-xea EXCLUDE
+ PATTERN README.bas_2012 EXCLUDE)
+ IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${dir} DESTINATION ${DATADIR_BUILD}/gnucash/accounts
+ PATTERN Makefile.* EXCLUDE
+ PATTERN acctchrt_full.gnucash-xea EXCLUDE
+ PATTERN README.bas_2012 EXCLUDE
+ )
+ ENDIF()
+ENDFOREACH(dir)
+
+FOREACH(dir ${accounts_fullcharts_SUBDIRS})
+ INSTALL(DIRECTORY ${dir} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/gnucash/accounts
+ PATTERN Makefile.* EXCLUDE
+ PATTERN README.bas_2012 EXCLUDE)
+ IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${dir} DESTINATION ${DATADIR_BUILD}/gnucash/accounts
+ PATTERN Makefile.* EXCLUDE
+ PATTERN README.bas_2012 EXCLUDE
+ )
+ ENDIF()
+ENDFOREACH(dir)
\ No newline at end of file
diff --git a/checks/CMakeLists.txt b/checks/CMakeLists.txt
new file mode 100644
index 0000000..2663434
--- /dev/null
+++ b/checks/CMakeLists.txt
@@ -0,0 +1,15 @@
+SET(checks_DATA
+ deluxe.chk
+ liberty.chk
+ quicken.chk
+ quicken_wallet.chk
+ voucher.chk
+ quicken_check_21.chk
+ quicken_3part.chk
+)
+
+INSTALL(FILES ${checks_DATA} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/gnucash/checks)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${checks_DATA} DESTINATION ${DATADIR_BUILD}/gnucash/checks)
+ENDIF()
\ No newline at end of file
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
new file mode 100644
index 0000000..7c664c5
--- /dev/null
+++ b/cmake/CMakeLists.txt
@@ -0,0 +1,26 @@
+# Post install actions go here.
+
+INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${GLIB_COMPILE_SCHEMAS} ${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas)")
+
+IF (APPLE)
+ INSTALL(CODE "EXECUTE_PROCESS(
+ COMMAND /usr/bin/install_name_tool -add_rpath ${CMAKE_INSTALL_PREFIX}/lib
+ -add_rpath ${CMAKE_INSTALL_PREFIX}/lib/gnucash
+ ${CMAKE_INSTALL_PREFIX}/bin/gnucash)")
+ENDIF(APPLE)
+
+
+IF (GNC_BUILD_AS_INSTALL)
+ SET(schema-targets aqb-gschema business-gnome-gschema csv-exp-gschema csv-imp-gschema
+ generic-import-gschema gnome-gschema gnome-utils-gschema ofx-gschema qif-imp-gschema)
+
+ SET(SCHEMA_DIRECTORY ${DATADIR_BUILD}/glib-2.0/schemas)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${SCHEMA_DIRECTORY}/gschemas.compiled
+ COMMAND ${CMAKE_COMMAND} -E env ${GLIB_COMPILE_SCHEMAS} ${SCHEMA_DIRECTORY}
+ DEPENDS ${schema-targets}
+ )
+
+ ADD_CUSTOM_TARGET(compiled-schemas ALL DEPENDS ${SCHEMA_DIRECTORY}/gschemas.compiled)
+
+ENDIF(GNC_BUILD_AS_INSTALL)
\ No newline at end of file
diff --git a/cmake/README_CMAKE.txt b/cmake/README_CMAKE.txt
new file mode 100644
index 0000000..439a048
--- /dev/null
+++ b/cmake/README_CMAKE.txt
@@ -0,0 +1,218 @@
+Using CMake to build GnuCash
+============================
+
+== Intro
+
+As part of his CuteCash work, Christian Stimming added support for
+using http://www.cmake.org[CMake] to build the part of GnuCash that
+went into CuteCash. This work extends the use of CMake to cover all of
+GnuCash proper such that GnuCash itself can be fully compiled with
+CMake.
+
+Some advantages of using CMake:
+
+ * The build time on Windows drops from around an hour to just a few
+ minutes.
+
+ * CMake supports the generation of build files for several IDEs
+ such as Xcode, Eclipse, KDevelop and others. The open source Qt
+ Creator and the commercial CLion C/C++ IDE from JetBrains can use
+ CMake files natively.
+
+ * The CMake language, though with significant issues, is still
+ easier to maintain than autotools.
+
+This setup also uses the http://www.ninja-build.org[Ninja] build
+system to enable fast and parallel builds on Windows. (On POSIX
+systems [OS X, Linux, FreeBSD, etc.] Ninja does not seem significantly
+faster that using the default Makefile generator to me.)
+
+== Scope
+
+The scope of the current work is to duplicate the `make` and `make
+install` actions as the Autotools system would. Currently, there is no
+support for `make check`, `make dist`, `make distcheck` or similar
+targets. Other limitations include:
+
+ * Not all options available in `./configure` have been ported to
+ this CMake system.
+
+ * Password management is included for OS X, but not
+ tested. Gnome-keyring and libsecret support has not
+ been ported over.
+
+ * The Xcode build only supports the Debug configuration. Others such
+ as Release are not supported yet.
+
+ * Python support has not been ported over.
+
+ * Visual Studio support is out of scope. While CMake supports
+ generating build files for Visual Studio on Windows, it is not
+ likely at this point that either GnuCash or all of its
+ dependencies can be built using the Microsoft compiler tool chain.
+
+== Known Issues
+
+* Sometimes the Tip of the Day is empty. I've got a stray
+ carriage return somewhere.
+
+* Clicking on 'Start AqBanking Wizard' in the AqBanking setup will
+ cause a crash. I have not yet investigated this.
+
+== Using CMake on Linux, OS X, etc.
+
+=== Prerequisites
+
+The CMake setup does not support building and installing dependencies
+(although it probably could some day). So you need to have the
+dependencies available, most likely by having run the existing
+Autotools build at least once. Various resources on the GnuCash wiki
+will have advice on how to do this.
+
+You will need to have CMake and optionally Ninja installed, either
+from distro package repositories or by hand. You need at least version
+3.1 of CMake.
+
+=== Running CMake
+
+The next step is to invoke CMake to generate the build system. Before
+running CMake, you need to create a build directory:
+
+ $ cd .. # back to workdir
+ $ mkdir gnucash-build
+ $ cd gnucash-build
+
+Then decide what cmake command line options you will need:
+
+ * If you want to install after building, add
+ `-D CMAKE_INSTALL_PREFIX=/path/to/install`
+
+ * If your dependencies are installed in a non-standard place as is
+ typical for building on OS X, put
+ `-D CMAKE_PREFIX_PATH=/path/to/installed/depends`
+ on the command line.
+
+ * If you want to use the Ninja generator, put `-G Ninja` on the
+ command line.
+
+ * If you want to use the Xcode generator on OS X, put `-G Xcode` on
+ the command line.
+
+ * If you don't specify a generator, Makefiles will be generated.
+
+ * Finally, put the path to your source directory last.
+ Here, that is ../gnucash
+
+ * There are other options available; look in the `OPTIONS` section of
+ the top-level `CMakeLists.txt` file. For example, you can disable
+ SQL using these options.
+
+Some examples:
+
+ * Build on Linux, don't want to install, use the Makefile generator:
+
+ $ cmake ../gnucash
+
+ * Build on Linux, install to /tmp/gnucash, use Ninja generator:
+
+ $ cmake -D CMAKE_INSTALL_PREFIX=/tmp/gnucash -G Ninja ../gnucash
+
+ * Build on OS X, install to /tmp/gnucash, use Ninja generator:
+
+ $ cmake -D CMAKE_INSTALL_PREFIX=/tmp/gnucash -D CMAKE_PREFIX_PATH=$HOME/gnucash-unstable -G Ninja ../gnucash
+
+ * The same, but use the Xcode generator:
+
+ $ cmake -D CMAKE_INSTALL_PREFIX=/tmp/gnucash -D CMAKE_PREFIX_PATH=$HOME/gnucash-unstable -G Xcode ../gnucash
+
+=== Building
+
+The Xcode, Ninja and Makefile generators all support parallel builds,
+so decide how many cores you want to use. Ninja will pick a sensible
+default.
+
+If you chose to configure for installation, you can use the `install`
+target for each generator. The Makefile and Ninja generators also
+support a verbose option if you want to see all of the command lines
+scroll by. Xcodebuild seems to show all the gory details whether you
+want them or not.
+
+For Ninja, use the line below. Note that the executable is called
+`ninja-build` on Fedora. Also, Ninja supports the `NINJA_STATUS`
+environment variable to give status on the build. I like to use
+`NINJA_STATUS="%es [%p/%s/%t] "`.
+
+ $ ninja [-v] [install]
+
+For Makefiles:
+
+ $ make [VERBOSE=1] -j N [install]
+
+For Xcode via the command line (see below to build from within Xcode):
+
+ $ xcodebuild -jobs N [-target=install]
+
+=== Launching GnuCash
+
+Assuming the build completes successfully, in all cases you can run
+directly from the build directory:
+
+ $ bin/gnucash
+
+In you chose to install, you can switch to the install directory and
+do the same.
+
+
+== Using CMake and Ninja on Windows
+
+
+For Windows, follow the instructions at
+https://github.com/Gnucash/gnucash-on-windows to the point where you
+are ready to run install.sh.
+
+Edit custom.sh to add these lines at the bottom:
+
+ WITH_CMAKE=yes
+ WITH_NINJA=yes
+
+Ensure that your custom.sh file contains this line:
+
+ MSYS_DIR=c:\\gcdev\\mingw\\msys\\1.0
+
+Remove or move any existing install at /c/gcdev/gnucash/inst.
+
+Then continue to follow the existing build instructions.
+
+At this writing, generating a distribution with the CMake build
+via dist.sh has not been tested.
+
+
+== Using Xcode on OS X
+
+CMake can generate build files for Xcode such that GnuCash can be
+built, run and debugged from within Xcode. Follow the instructions
+above to the point where you would use `xcodebuild` to launch the
+build. Instead, launch Xcode by doing:
+
+ $ open Gnucash.xcodeproj
+
+Xcode 7 will pop up a window about Autocreate Schemes. I usually
+choose "Manually Manage Schemes". On the next window, use the "\+"
+symbol to use the "ALL_BUILD" scheme. Then click on OK. If you want to
+be able to run the equivalent of "make install" from within Xcode, use
+the "+" symbol again and choose the "install" scheme.
+
+Back in the Xcode main window, make sure the "ALL_BUILD" scheme is
+selected (next to the stop symbol). Click on "ALL_BUILD" and
+then "Edit Scheme". On the "Info" tab, choose the executable to be
+"gnucash".
+
+Now use Command-B to build (or Product -> Build) to start the
+build. When it finishes, click on the play symbol (or Product
+-> Run) to verify that you can launch GnuCash from within Xcode. If
+that works, you can now set breakpoints with Xcode and debug away.
+
+To run the install script, click on the "ALL_BUILD" scheme and change
+it to "install". Then press the play button to run the script.
+
+That's it.
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
new file mode 100644
index 0000000..6c532c3
--- /dev/null
+++ b/doc/CMakeLists.txt
@@ -0,0 +1,72 @@
+ADD_SUBDIRECTORY(examples)
+
+SET(doc_DATA
+ README.francais
+ README.german
+ README-de.win32-bin.txt
+ README-fr.win32-bin.txt
+ README-it.win32-bin.txt
+ README-lv.win32-bin.txt
+ README-nl.win32-bin.txt
+ README-zh_CN.win32-bin.txt
+ README-zh_TW.win32-bin.txt
+ README.win32-bin.txt
+ guile-hackers.txt
+ projects.html
+)
+
+INSTALL(FILES ${doc_DATA} DESTINATION share/doc/gnucash)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${doc_DATA} DESTINATION ${DATADIR_BUILD}/doc/gnucash)
+ENDIF()
+
+EXECUTE_PROCESS(
+ COMMAND ${CMAKE_COMMAND} -E env date +"%B %Y"
+ OUTPUT_VARIABLE DATE
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+
+# Generate the tip of the day file.
+
+EXECUTE_PROCESS(
+ COMMAND ${CMAKE_C_COMPILER} -E -P -x c -DN_\(x\)=x -o ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list.tmp ${CMAKE_CURRENT_SOURCE_DIR}/tip_of_the_day.list.in
+)
+
+FILE(STRINGS ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list.tmp TIP_OF_THE_DAY_LINES)
+
+SET(TOTD_OUTPUT "")
+SET(FIRST_LINE TRUE)
+FOREACH(line ${TIP_OF_THE_DAY_LINES})
+ STRING(REGEX REPLACE "^ *\"" "" line2 "${line}")
+ STRING(REGEX REPLACE "\" *$" "" line3 "${line2}")
+ IF (NOT FIRST_LINE)
+ LIST(APPEND TOTD_OUTPUT "\n\n")
+ ENDIF()
+ SET(FIRST_LINE FALSE)
+ LIST(APPEND TOTD_OUTPUT "${line3}\n")
+ENDFOREACH()
+
+LIST(APPEND TOTD_OUTPUT "\n")
+
+STRING(CONCAT FINAL_TOTD ${TOTD_OUTPUT})
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list "${FINAL_TOTD}")
+
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list DESTINATION share/gnucash)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/tip_of_the_day.list
+ DESTINATION ${DATADIR_BUILD}/gnucash)
+ENDIF()
+
+# ---
+
+GNC_CONFIGURE(gnucash.1.in gnucash.1 )
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1 DESTINATION share/man/man1)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}/gnucash.1
+ DESTINATION ${DATADIR_BUILD}/gnucash)
+ENDIF()
+
diff --git a/doc/examples/CMakeLists.txt b/doc/examples/CMakeLists.txt
new file mode 100644
index 0000000..efd5bd7
--- /dev/null
+++ b/doc/examples/CMakeLists.txt
@@ -0,0 +1,24 @@
+
+
+SET(examples_DATA
+ Money95bank_fr.qif
+ Money95invst_fr.qif
+ Money95mfunds_fr.qif
+ Money95stocks_fr.qif
+ README
+ README_invoice
+ abc-all.qif
+ abc.qif
+ bogus.qif
+ cbb-export.qif
+ currency_tree_xml.gnucash
+ every.qif
+ invoice.csv
+ ms-money.qif
+ quicktest.qif
+ swipe.qif
+ taxreport.gnucash
+ web.qif
+)
+
+INSTALL(FILES ${examples_DATA} DESTINATION share/doc/gnucash)
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644
index 0000000..ba7728f
--- /dev/null
+++ b/po/CMakeLists.txt
@@ -0,0 +1,48 @@
+
+
+# Set of available languages.
+SET (TP_LINGUAS az ca cs da eu fa ja nl pt rw sk sr sv tr uk zh_CN)
+# already marked as external at TP:
+SET (GC_LINGUAS ar bg de el en_GB es fi fr gu he hi hu it kn ko lt lv mr nb ne pl pt_BR ro ru ta te ur vi zh_TW)
+# not marked or no TP team:
+SET (NEW_LINGUAS as brx doi es_NI kok kok at latin ks mai mni mni at bengali)
+
+SET (ALL_LINGUAS ${TP_LINGUAS} ${GC_LINGUAS} ${NEW_LINGUAS})
+
+SET (CATALOGS "")
+SET (BUILD_CATALOGS "")
+FOREACH(lingua ${ALL_LINGUAS})
+ SET(_OUTPUT_FILE ${lingua}.gmo)
+ LIST(APPEND CATALOGS ${_OUTPUT_FILE})
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_OUTPUT_FILE}
+ COMMAND ${CMAKE_COMMAND} -E env ${MSGFMT} -o ${_OUTPUT_FILE} ${CMAKE_CURRENT_SOURCE_DIR}/${lingua}.po
+ )
+ IF (GNC_BUILD_AS_INSTALL)
+ SET(_BUILD_FILE_DIR ${DATADIR_BUILD}/locale/${lingua}/LC_MESSAGES)
+ MAKE_DIRECTORY(${_BUILD_FILE_DIR})
+ SET(_BUILD_FILE ${_BUILD_FILE_DIR}/gnucash.gmo)
+ LIST(APPEND BUILD_CATALOGS ${_BUILD_FILE})
+ #ADD_CUSTOM_COMMAND(
+ # OUTPUT ${_BUILD_FILE}
+ # COMMAND ${CMAKE_COMMAND} make_directory ${_BUILD_FILE_DIR}
+ #
+ #)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_BUILD_FILE}
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.gmo ${_BUILD_FILE}
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE}
+ #APPEND
+ )
+ ENDIF()
+ENDFOREACH(lingua)
+
+ADD_CUSTOM_TARGET(po-gmo ALL DEPENDS ${CATALOGS})
+IF (GNC_BUILD_AS_INSTALL)
+ ADD_CUSTOM_TARGET(po-gmo-build ALL DEPENDS ${BUILD_CATALOGS})
+ENDIF()
+
+
+FOREACH(lingua ${ALL_LINGUAS})
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${lingua}.gmo RENAME gnucash.mo DESTINATION share/locale/${lingua}/LC_MESSAGES)
+ENDFOREACH(lingua)
\ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 007b12d..3b67f3b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -6,6 +6,8 @@
SET (GETTEXT_PACKAGE "gnucash")
+SET(GNOME 1)
+
IF (WIN32)
SET (HAVE_SCANF_I64D 1)
SET (HAVE_HTMLHELPW 1)
@@ -36,6 +38,20 @@ CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H)
CHECK_INCLUDE_FILES (utmp.h HAVE_UTMP_H)
CHECK_INCLUDE_FILES (wctype.h HAVE_WCTYPE_H)
+IF (NOT DISABLE_NLS)
+SET(ENABLE_NLS 1)
+ENDIF(NOT DISABLE_NLS)
+
+IF (ENABLE_DEBUG)
+ SET(DEBUG_MEMORY 1)
+ENDIF(ENABLE_DEBUG)
+
+IF (ENABLE_BINRELOC)
+ IF (UNIX OR MINGW)
+ SET(BR_PTHREAD 1)
+ ENDIF(UNIX OR MINGW)
+ENDIF(ENABLE_BINRELOC)
+
IF (UNIX OR MINGW)
SET (HAVE_BIND_TEXTDOMAIN_CODESET 1)
SET (HAVE_DCGETTEXT 1)
@@ -50,12 +66,12 @@ IF (UNIX OR MINGW)
SET (_POSIX_PTHREAD_SEMANTICS 1)
SET (_TANDEM_SOURCE 1)
SET (__EXTENSIONS__ 1)
- SET (WORDS_BIGENDIAN 1)
ENDIF (UNIX OR MINGW)
IF (UNIX)
SET (HAVE_CHOWN 1)
SET (HAVE_DLERROR 1)
+ SET (HAVE_DLSYM 1)
SET (HAVE_GETHOSTID 1)
SET (HAVE_GETHOSTNAME 1)
SET (HAVE_GETPPID 1)
@@ -67,14 +83,59 @@ IF (UNIX)
SET (HAVE_LINK 1)
SET (HAVE_LOCALTIME_R 1)
SET (HAVE_PTHREAD_MUTEX_INIT 1)
+ SET (HAVE_PTHREAD_PRIO_INHERIT 1)
SET (HAVE_SCANF_LLD 1)
SET (HAVE_SETENV 1)
SET (HAVE_STPCPY 1)
+ SET (HAVE_STRFMON 1)
SET (HAVE_STRPTIME 1)
SET (HAVE_STRUCT_TM_GMTOFF 1)
SET (HAVE_TIMEGM 1)
+ SET (HAVE_TOWUPPER 1)
+ SET (GNC_PLATFORM_POSIX 1)
ENDIF (UNIX)
+IF (WIN32)
+ SET (GNC_PLATFORM_WINDOWS 1)
+ENDIF (WIN32)
+
+IF (APPLE)
+ # FIXME: HANDLE gtk-mac-integration-gtk2
+ SET(GNC_PLATFORM_DARWIN 1)
+ SET(GNC_PLATFORM_OSX 1)
+ SET(HAVE_OSX_KEYCHAIN 1)
+
+ENDIF(APPLE)
+
+IF(GLIB2_VERSION VERSION_GREATER 2.32.0 OR GLIB2_VERSION VERSION_EQUAL 2.32.0)
+ SET(HAVE_GLIB_2_32 1)
+ENDIF()
+
+IF(GLIB2_VERSION VERSION_GREATER 2.36.0 OR GLIB2_VERSION VERSION_EQUAL 2.36.0)
+ SET(HAVE_GLIB_2_36 1)
+ENDIF()
+
+IF(GLIB2_VERSION VERSION_GREATER 2.38.0 OR GLIB2_VERSION VERSION_EQUAL 2.38.0)
+ SET(HAVE_GLIB_2_38 1)
+ENDIF()
+
+SET(HAVE_WEBKIT_WEB_FRAME_PRINT_FULL 1)
+SET(HAVE_WEBKIT_WEB_VIEW_LOAD_URI 1)
+
+IF(DISABLE_DEPRECATED_GNOME)
+ SET(GNOME_DISABLE_DEPRECATED 1)
+ENDIF(DISABLE_DEPRECATED_GNOME)
+
+IF(DISABLE_DEPRECATED_GTK)
+ SET(GTK_DISABLE_DEPRECATED 1)
+ SET(GDK_DISABLE_DEPRECATED 1)
+ SET(GDK_PIXMAP_DISABLE_DEPRECATED 1)
+ENDIF(DISABLE_DEPRECATED_GTK)
+
+IF(DISABLE_DEPRECATED_GLIB)
+ SET(G_DISABLE_DEPRECATED 1)
+ENDIF(DISABLE_DEPRECATED_GLIB)
+
ADD_DEFINITIONS (-DHAVE_CONFIG_H)
SET (CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/config.h)
@@ -82,8 +143,16 @@ CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake.in ${CONFIG_H})
SET (SWIG_RUNTIME_H ${CMAKE_CURRENT_BINARY_DIR}/swig-runtime.h)
+#ADD_CUSTOM_COMMAND (
+# OUTPUT ${SWIG_RUNTIME_H}
+# DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
+# COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
+#)
# ############################################################
+SET(SCHEME_INSTALLED_SOURCE_DIR ${CMAKE_INSTALL_PREFIX}/share/gnucash/scm)
+SET(SCHEME_INSTALLED_CACHE_DIR ${CMAKE_INSTALL_PREFIX}/lib/gnucash/scm/ccache/${GUILE_EFFECTIVE_VERSION})
+
# The subdirectories
ADD_SUBDIRECTORY (libqof)
ADD_SUBDIRECTORY (core-utils)
@@ -96,7 +165,30 @@ IF (WITH_SQL)
ADD_SUBDIRECTORY (backend/dbi)
ADD_SUBDIRECTORY (backend/sql)
ENDIF (WITH_SQL)
-ADD_SUBDIRECTORY (optional/gtkmm)
-ADD_SUBDIRECTORY (gnc)
+IF (WITH_GNUCASH)
+ ADD_SUBDIRECTORY (bin)
+ ADD_SUBDIRECTORY (business/business-ledger)
+ ADD_SUBDIRECTORY (business/business-gnome)
+ ADD_SUBDIRECTORY (gnome)
+ ADD_SUBDIRECTORY (gnome-utils)
+ ADD_SUBDIRECTORY (gnome-search)
+ ADD_SUBDIRECTORY (html)
+ ADD_SUBDIRECTORY (plugins/bi_import)
+ ADD_SUBDIRECTORY (plugins/customer_import)
+ ADD_SUBDIRECTORY (pixmaps)
+ ADD_SUBDIRECTORY (quotes)
+ ADD_SUBDIRECTORY (register/ledger-core)
+ ADD_SUBDIRECTORY (register/register-core)
+ ADD_SUBDIRECTORY (register/register-gnome)
+ ADD_SUBDIRECTORY(report)
+ ADD_SUBDIRECTORY (scm)
+ ADD_SUBDIRECTORY (tax/us)
+ ADD_SUBDIRECTORY (test-core)
+ENDIF (WITH_GNUCASH)
+
+IF (WITH_CUTECASH)
+ ADD_SUBDIRECTORY (optional/gtkmm)
+ ADD_SUBDIRECTORY (gnc)
+ENDIF (WITH_CUTECASH)
diff --git a/src/app-utils/CMakeLists.txt b/src/app-utils/CMakeLists.txt
index 71f68577..dd4f97a 100644
--- a/src/app-utils/CMakeLists.txt
+++ b/src/app-utils/CMakeLists.txt
@@ -1,26 +1,17 @@
-# CMakeLists.txt for src/engine
-
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.app-utils\")
-
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${HTMLHELP_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for pow.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-glib-utils.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/app-utils/calculation) # for finproto.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine) # for gnc-engine.h
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src/engine) # for swig-runtime.h
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # for <option-util.h>
+
+# Build the library
+
+SET (app_utils_noinst_HEADERS
+ calculation/finvar.h
+ calculation/finproto.h
+ calculation/fin_spl_protos.h
+ calculation/fin_static_proto.h
+)
SET (app_utils_HEADERS
QuickFill.h
+ business-helpers.h
+ business-options.h
file-utils.h
gfec.h
gnc-basic-gobject.h
@@ -32,17 +23,17 @@ SET (app_utils_HEADERS
gnc-euro.h
gnc-exp-parser.h
gnc-gettext-util.h
+ gnc-gsettings.h
gnc-help-utils.h
gnc-helpers.h
+ gnc-prefs-utils.h
+ gnc-state.h
gnc-sx-instance-model.h
gnc-ui-util.h
gnc-ui-balances.h
guile-util.h
option-util.h
- calculation/finvar.h
- calculation/finproto.h
- calculation/fin_spl_protos.h
- calculation/fin_static_proto.h
+
)
# Command to generate the swig-app-utils.c wrapper file
@@ -52,6 +43,8 @@ GNC_ADD_SWIG_COMMAND (${SWIG_APP_UTILS_C} ${CMAKE_CURRENT_SOURCE_DIR}/app-utils.
SET (app_utils_SOURCES
calculation/expression_parser.c
calculation/fin.c
+ business-helpers.c
+ business-options.c
QuickFill.c
file-utils.c
gfec.c
@@ -63,8 +56,11 @@ SET (app_utils_SOURCES
gnc-euro.c
gnc-exp-parser.c
gnc-gettext-util.c
+ gnc-gsettings.c
gnc-helpers.c
+ gnc-prefs-utils.c
gnc-sx-instance-model.c
+ gnc-state.c
gnc-ui-util.c
gnc-ui-balances.c
gncmod-app-utils.c
@@ -77,7 +73,121 @@ IF (WIN32)
SET (app_utils_SOURCES ${app_utils_SOURCES} gnc-help-utils.c)
ENDIF (WIN32)
-ADD_LIBRARY (app-utils
+SET_SOURCE_FILES_PROPERTIES (${app_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY (gncmod-app-utils
${app_utils_SOURCES}
${app_utils_HEADERS}
- )
+ ${app_utils_noinst_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gncmod-app-utils gncmod-engine gnc-module
+ ${GTK2_LDFLAGS} ${LIBXML2_LDFLAGS} ${LIBXSLT_LDFLAGS}
+)
+
+IF (WIN32)
+ TARGET_LINK_LIBRARIES(gncmod-app-utils ${HTMLHELP_LIBRARY})
+ENDIF(WIN32)
+
+TARGET_INCLUDE_DIRECTORIES (gncmod-app-utils
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+ PRIVATE
+ ${CMAKE_CURRENT_SOURCE_DIR}/calculation
+ ${LIBXML2_INCLUDE_DIRS}
+ ${LIBXSLT_INCLUDE_DIRS}
+ ${HTMLHELP_INCLUDE_PATH}
+ ${GTK2_INCLUDE_DIRS}
+)
+
+TARGET_COMPILE_DEFINITIONS (gncmod-app-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.app-utils\")
+
+
+INSTALL(TARGETS gncmod-app-utils
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin
+)
+INSTALL(FILES ${app_utils_HEADERS} DESTINATION include/gnucash)
+
+FILE(READ ${CMAKE_SOURCE_DIR}/src/import-export/ofx/migratable-prefs-ofx.xml MIGRATABLE_PREFS_OFX)
+FILE(READ ${CMAKE_SOURCE_DIR}/src/import-export/aqb/migratable-prefs-aqbanking.xml MIGRATABLE_PREFS_AQBANKING)
+
+SET(MIGRATABLE_PREFS_XML ${CMAKE_CURRENT_BINARY_DIR}/migratable-prefs.xml)
+IF (GNC_BUILD_AS_INSTALL)
+ SET(MIGRATABLE_PREFS_XML ${DATADIR_BUILD}/gnucash/migratable-prefs.xml)
+ FILE(COPY make-prefs-migration-script.xsl DESTINATION ${DATADIR_BUILD}/gnucash)
+ENDIF()
+
+CONFIGURE_FILE(migratable-prefs.xml.in ${MIGRATABLE_PREFS_XML})
+
+INSTALL(FILES ${MIGRATABLE_PREFS_XML} DESTINATION share/gnucash)
+INSTALL(FILES make-prefs-migration-script.xsl DESTINATION share/gnucash)
+
+# And now handle scheme files
+
+SET (app_utils_SCHEME_2
+ app-utils.scm
+)
+
+SET (app_utils_SCHEME_1
+ hooks.scm
+ business-options.scm
+ c-interface.scm
+ config-var.scm
+ date-utilities.scm
+ migrate-prefs.scm
+ options.scm
+ prefs.scm
+ simple-obj.scm
+)
+
+SET(app_utils_SCHEME_3
+ business-prefs.scm
+)
+
+SET(GUILE_MODULES src/engine)
+SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/scm)
+SET(GUILE_LIBRARY_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/libqof/qof)
+SET(GUILE_DEPENDS gncmod-app-utils scm-core-utils scm-engine scm-scm)
+
+GNC_ADD_SCHEME_TARGETS(scm-gettext
+ gettext.scm
+ gnucash
+ src/app-utils
+ ""
+ ""
+ gncmod-app-utils
+ FALSE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-app-utils-1
+ "${app_utils_SCHEME_1}"
+ ""
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "scm-gettext;${GUILE_DEPENDS}"
+ FALSE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-app-utils-2
+ "${app_utils_SCHEME_2}"
+ "gnucash"
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ scm-app-utils-1
+ FALSE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-app-utils-3
+ "${app_utils_SCHEME_3}"
+ ""
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ scm-app-utils-2
+ FALSE
+)
+
+ADD_CUSTOM_TARGET(scm-app-utils ALL DEPENDS scm-app-utils-3 scm-app-utils-2 scm-app-utils-1 scm-gettext)
\ No newline at end of file
diff --git a/src/backend/dbi/CMakeLists.txt b/src/backend/dbi/CMakeLists.txt
index fcfc05c..8e96b81 100644
--- a/src/backend/dbi/CMakeLists.txt
+++ b/src/backend/dbi/CMakeLists.txt
@@ -1,32 +1,47 @@
# CMakeLists.txt for src/backend/dbi
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.backend.dbi\")
-
-INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${LIBDBI_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/app-utils)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/backend/sql)
-
-SET (libgnc_backend_dbi_SOURCES
- gnc-backend-dbi.c
+# Source file gncmod-backend-dbi.c does not appear to be use in Makefile.in, so not included here.
+
+SET (backend_dbi_SOURCES
+ gnc-backend-dbi.cpp
)
-SET (libgnc_backend_dbi_HEADERS
- gnc-backend-dbi.h
+SET (backend_dbi_noinst_HEADERS
+ gnc-backend-dbi.h gnc-backend-dbi-priv.h
)
# Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${libgnc_backend_dbi_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+SET_SOURCE_FILES_PROPERTIES (${backend_dbi_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY (gncmod-backend-dbi
+ ${backend_dbi_SOURCES}
+ ${backend_dbi_noinst_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gncmod-backend-dbi gnc-backend-sql gncmod-engine gnc-qof ${GTK2_LDFLAGS} ${LIBDBI_LIBRARY})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-backend-dbi PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.dbi\")
-ADD_LIBRARY (gnc-backend-dbi
- ${libgnc_backend_dbi_SOURCES}
- ${libgnc_backend_dbi_HEADERS}
+TARGET_INCLUDE_DIRECTORIES(gncmod-backend-dbi PRIVATE ${LIBDBI_INCLUDE_PATH})
+
+INSTALL(TARGETS gncmod-backend-dbi
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install
+
+# FIXME: Below is a hack to create .libs/libgncmod-backend-dbi to silence some complaints
+# from guile when compiling. Eventually, fix the guile module loader to not expect items
+# to be in .libs. At this time, WIN32 does not use guile-2, so no need for this.
+
+IF (NOT WIN32)
+ SET(_LINK_TARGET ${CMAKE_CURRENT_BINARY_DIR}/.libs/libgncmod-backend-dbi${CMAKE_SHARED_LIBRARY_SUFFIX})
+ FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/.libs)
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_LINK_TARGET}
+ COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE:gncmod-backend-dbi> ${_LINK_TARGET}
+ DEPENDS gnc-backend-dbi
)
+
+ ADD_CUSTOM_TARGET(gncmod-backend-dbi-link ALL DEPENDS gncmod-backend-dbi ${_LINK_TARGET})
+ENDIF()
diff --git a/src/backend/sql/CMakeLists.txt b/src/backend/sql/CMakeLists.txt
index 3f463a6..4da6bfa 100644
--- a/src/backend/sql/CMakeLists.txt
+++ b/src/backend/sql/CMakeLists.txt
@@ -1,46 +1,33 @@
# CMakeLists.txt for src/backend/dbi
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.backend.sql\")
-INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
-SET (libgnc_backend_sql_SOURCES
- gnc-backend-sql.c
- gnc-account-sql.c
- gnc-address-sql.c
- gnc-bill-term-sql.c
- gnc-book-sql.c
- gnc-budget-sql.c
- gnc-commodity-sql.c
- gnc-customer-sql.c
- gnc-employee-sql.c
- gnc-entry-sql.c
- gnc-invoice-sql.c
- gnc-job-sql.c
- gnc-lots-sql.c
- gnc-order-sql.c
- gnc-owner-sql.c
- gnc-price-sql.c
- gnc-recurrence-sql.c
- gnc-schedxaction-sql.c
- gnc-slots-sql.c
- gnc-tax-table-sql.c
- gnc-transaction-sql.c
- gnc-vendor-sql.c
- escape.c
+SET (backend_sql_SOURCES
+ gnc-backend-sql.cpp
+ gnc-account-sql.cpp
+ gnc-address-sql.cpp
+ gnc-bill-term-sql.cpp
+ gnc-book-sql.cpp
+ gnc-budget-sql.cpp
+ gnc-commodity-sql.cpp
+ gnc-customer-sql.cpp
+ gnc-employee-sql.cpp
+ gnc-entry-sql.cpp
+ gnc-invoice-sql.cpp
+ gnc-job-sql.cpp
+ gnc-lots-sql.cpp
+ gnc-order-sql.cpp
+ gnc-owner-sql.cpp
+ gnc-price-sql.cpp
+ gnc-recurrence-sql.cpp
+ gnc-schedxaction-sql.cpp
+ gnc-slots-sql.cpp
+ gnc-tax-table-sql.cpp
+ gnc-transaction-sql.cpp
+ gnc-vendor-sql.cpp
+ escape.cpp
)
-SET (libgnc_backend_sql_HEADERS
+SET (backend_sql_noinst_HEADERS
gnc-account-sql.h
gnc-address-sql.h
gnc-backend-sql.h
@@ -67,9 +54,22 @@ SET (libgnc_backend_sql_HEADERS
)
# Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${libgnc_backend_sql_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+SET_SOURCE_FILES_PROPERTIES (${gnc_backend_sql_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
ADD_LIBRARY (gnc-backend-sql
- ${libgnc_backend_sql_SOURCES}
- ${libgnc_backend_sql_HEADERS}
- )
+ ${backend_sql_SOURCES}
+ ${backend_sql_noinst_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gnc-backend-sql gncmod-engine gnc-qof)
+
+TARGET_COMPILE_DEFINITIONS (gnc-backend-sql PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.sql\")
+
+TARGET_INCLUDE_DIRECTORIES(gnc-backend-sql PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+INSTALL(TARGETS gnc-backend-sql
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+
+# No headers to install
diff --git a/src/backend/xml/CMakeLists.txt b/src/backend/xml/CMakeLists.txt
index fec23e2..99fd698 100644
--- a/src/backend/xml/CMakeLists.txt
+++ b/src/backend/xml/CMakeLists.txt
@@ -1,66 +1,136 @@
# CMakeLists.txt for src/backend/xml
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.backend.xml\")
-
-INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${LIBXML2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-gnc-module.c
-
# Command to generate the swig-engine.c wrapper file
SET (SWIG_GNC_MODULE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnc-module.c)
GNC_ADD_SWIG_COMMAND (${SWIG_GNC_MODULE_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-module.i)
-SET (libgnc_backend_xml_SOURCES
- gnc-account-xml-v2.c
- gnc-address-xml-v2.c
- gnc-bill-term-xml-v2.c
- gnc-book-xml-v2.c
- gnc-budget-xml-v2.c
- gnc-commodity-xml-v2.c
- gnc-customer-xml-v2.c
- gnc-employee-xml-v2.c
- gnc-entry-xml-v2.c
- gnc-freqspec-xml-v2.c
- gnc-invoice-xml-v2.c
- gnc-job-xml-v2.c
- gnc-lot-xml-v2.c
- gnc-order-xml-v2.c
- gnc-owner-xml-v2.c
- gnc-pricedb-xml-v2.c
- gnc-recurrence-xml-v2.c
- gnc-schedxaction-xml-v2.c
- gnc-tax-table-xml-v2.c
- gnc-transaction-xml-v2.c
- gnc-vendor-xml-v2.c
- gnc-xml-helper.c
- io-example-account.c
- io-gncxml-gen.c
- io-gncxml-v1.c
- io-gncxml-v2.c
- io-utils.c
- sixtp-dom-generators.c
- sixtp-dom-parsers.c
- sixtp-stack.c
- sixtp-to-dom-parser.c
- sixtp-utils.c
- sixtp.c
- gnc-backend-xml.c
+SET (backend_xml_utils_noinst_HEADERS
+ gnc-backend-xml.h
+ gnc-xml.h
+ gnc-address-xml-v2.h
+ gnc-bill-term-xml-v2.h
+ gnc-customer-xml-v2.h
+ gnc-employee-xml-v2.h
+ gnc-entry-xml-v2.h
+ gnc-invoice-xml-v2.h
+ gnc-job-xml-v2.h
+ gnc-order-xml-v2.h
+ gnc-owner-xml-v2.h
+ gnc-tax-table-xml-v2.h
+ gnc-vendor-xml-v2.h
+ gnc-xml-helper.h
+ io-example-account.h
+ io-gncxml-gen.h
+ io-gncxml-v2.h
+ io-gncxml.h
+ io-utils.h
+ sixtp-dom-generators.h
+ sixtp-dom-parsers.h
+ sixtp-parsers.h
+ sixtp-stack.h
+ sixtp-utils.h
+ sixtp.h
+ xml-helpers.h
+)
+
+SET (backend_xml_utils_SOURCES
+ gnc-account-xml-v2.cpp
+ gnc-address-xml-v2.cpp
+ gnc-bill-term-xml-v2.cpp
+ gnc-book-xml-v2.cpp
+ gnc-budget-xml-v2.cpp
+ gnc-commodity-xml-v2.cpp
+ gnc-customer-xml-v2.cpp
+ gnc-employee-xml-v2.cpp
+ gnc-entry-xml-v2.cpp
+ gnc-freqspec-xml-v2.cpp
+ gnc-invoice-xml-v2.cpp
+ gnc-job-xml-v2.cpp
+ gnc-lot-xml-v2.cpp
+ gnc-order-xml-v2.cpp
+ gnc-owner-xml-v2.cpp
+ gnc-pricedb-xml-v2.cpp
+ gnc-recurrence-xml-v2.cpp
+ gnc-schedxaction-xml-v2.cpp
+ gnc-tax-table-xml-v2.cpp
+ gnc-transaction-xml-v2.cpp
+ gnc-vendor-xml-v2.cpp
+ gnc-xml-helper.cpp
+ io-example-account.cpp
+ io-gncxml-gen.cpp
+ io-gncxml-v1.cpp
+ io-gncxml-v2.cpp
+ io-utils.cpp
+ sixtp-dom-generators.cpp
+ sixtp-dom-parsers.cpp
+ sixtp-stack.cpp
+ sixtp-to-dom-parser.cpp
+ sixtp-utils.cpp
+ sixtp.cpp
)
+
# Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${libgnc_backend_xml_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+SET_SOURCE_FILES_PROPERTIES (${backend_xml_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY (gnc-backend-xml-utils
+ ${backend_xml_utils_SOURCES}
+ ${backend_xml_utils_noinst_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gnc-backend-xml-utils gncmod-engine ${LIBXML2_LDFLAGS} ${ZLIB_LDFLAGS})
+
+TARGET_INCLUDE_DIRECTORIES (gnc-backend-xml-utils
+ PUBLIC ${LIBXML2_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}
+ PRIVATE ${ZLIB_INCLUDE_DIRS}
+)
+
+TARGET_COMPILE_DEFINITIONS (gnc-backend-xml-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\")
+
+INSTALL(TARGETS gnc-backend-xml-utils
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+# No headers to install
+
+# ----
-ADD_LIBRARY (gnc-backend-xml
- ${libgnc_backend_xml_SOURCES}
+SET(libgncmod_backend_xml_SOURCES gnc-backend-xml.cpp)
+
+SET_SOURCE_FILES_PROPERTIES (${libgncmod_backend_xml_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY(gncmod-backend-xml MODULE ${libgncmod_backend_xml_SOURCES})
+TARGET_LINK_LIBRARIES(gncmod-backend-xml gnc-backend-xml-utils gncmod-engine
+ gnc-core-utils ${LIBXML2_LDFLAGS} ${GLIB2_LDFLAGS} ${ZLIB_LIBRARY})
+
+TARGET_COMPILE_DEFINITIONS (gncmod-backend-xml PRIVATE -DG_LOG_DOMAIN=\"gnc.backend.xml\")
+
+SET(LIB_DIR lib/gnucash)
+IF (WIN32)
+ SET(LIB_DIR bin)
+ENDIF(WIN32)
+
+
+INSTALL(TARGETS gncmod-backend-xml
+ LIBRARY DESTINATION ${LIB_DIR}
+ ARCHIVE DESTINATION ${LIB_DIR}
+ RUNTIME DESTINATION bin)
+
+# ----
+
+# FIXME: Below is a hack to create .libs/libgncmod-backend-xml to silence some complaints
+# from guile when compiling. Eventually, fix the guile module loader to not expect items
+# to be in .libs. At this time, WIN32 does not use guile-2, so no need for this.
+
+IF (NOT WIN32)
+ SET(_LINK_TARGET ${CMAKE_CURRENT_BINARY_DIR}/.libs/libgncmod-backend-xml${CMAKE_SHARED_MODULE_SUFFIX})
+ FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/.libs)
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_LINK_TARGET}
+ COMMAND ${CMAKE_COMMAND} -E create_symlink $<TARGET_FILE:gncmod-backend-xml> ${_LINK_TARGET}
+ DEPENDS gnc-backend-xml-utils
)
+
+ ADD_CUSTOM_TARGET(gncmod-backend-xml-link ALL DEPENDS gncmod-backend-xml ${_LINK_TARGET})
+ENDIF()
diff --git a/src/bin/CMakeLists.txt b/src/bin/CMakeLists.txt
new file mode 100644
index 0000000..98e3c2a
--- /dev/null
+++ b/src/bin/CMakeLists.txt
@@ -0,0 +1,187 @@
+ADD_SUBDIRECTORY(overrides)
+
+# Some settings are platform dependent. Let's define them per platform.
+IF (WIN32)
+ # Windows specific settings go here:
+ SET (GNUCASH_RESOURCE_FILE gnucash.rc)
+
+ELSE (WIN32)
+ # All other platforms use these settings:
+ SET (PLATFORM_FILES gnucash-valgrind)
+
+ENDIF (WIN32)
+
+SET (gnucash_SOURCES
+ gnucash-bin.c
+ ${GNUCASH_RESOURCE_FILE}
+)
+
+ADD_EXECUTABLE (gnucash
+ ${gnucash_SOURCES}
+)
+
+TARGET_COMPILE_DEFINITIONS(gnucash PRIVATE -DG_LOG_DOMAIN=\"gnc.bin\")
+
+TARGET_LINK_LIBRARIES (gnucash
+ gncmod-ledger-core gncmod-report-gnome gnc-gnome gncmod-gnome-utils gncmod-app-utils
+ gncmod-engine gnc-module gnc-core-utils gnc-qof gncmod-report-system
+ ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GTK2_LDFLAGS} ${GTK_MAC_LDFLAGS}
+)
+
+
+IF (MAC_INTEGRATION)
+ TARGET_COMPILE_OPTIONS(gnucash PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
+ TARGET_LINK_LIBRARIES(gnucash ${OSX_EXTRA_LIBRARIES})
+ENDIF(MAC_INTEGRATION)
+
+INSTALL(TARGETS gnucash DESTINATION bin)
+# No headers to install.
+
+# Generate the gnucash-env script
+SET(SCRIPT_LIST "")
+SET(SCRIPT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+IF (GNC_BUILD_AS_INSTALL)
+ SET(SCRIPT_OUTPUT_DIR ${BINDIR_BUILD})
+ENDIF()
+
+FOREACH (script gnucash-env gnucash-make-guids)
+ SET (GNUCASH_ENV_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${script})
+ LIST(APPEND SCRIPT_LIST ${SCRIPT_OUTPUT_DIR}/${script})
+ SET (GNC_OVERRIDES_DIR ${CMAKE_INSTALL_PREFIX}/libexec/gnucash/overrides)
+ FILE(WRITE ${GNUCASH_ENV_SCRIPT} "#!/bin/sh\n")
+ FILE(APPEND ${GNUCASH_ENV_SCRIPT} "PATH=\"${GNC_OVERRIDES_DIR}:\${PATH}\"\n")
+ FILE(APPEND ${GNUCASH_ENV_SCRIPT} "export PATH\n")
+ FILE(APPEND ${GNUCASH_ENV_SCRIPT} "\nGUILE_WARN_DEPRECATED=\"no\"\n")
+ FILE(APPEND ${GNUCASH_ENV_SCRIPT} "export GUILE_WARN_DEPRECATED\n")
+ FILE(APPEND ${GNUCASH_ENV_SCRIPT} "\nexec \"${script}\" \"\$@\"\n")
+ FILE(COPY ${GNUCASH_ENV_SCRIPT}
+ DESTINATION ${SCRIPT_OUTPUT_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ )
+ENDFOREACH(script)
+
+SET(TOP_SRC_DIR ${CMAKE_SOURCE_DIR})
+SET(GNUCASH_BIN_INSTALL_NAME "gnucash")
+
+SET(VALGRIND_OUTDIR ${CMAKE_CURRENT_BINARY_DIR})
+IF (GNC_BUILD_AS_INSTALL)
+ SET(VALGRIND_OUTDIR ${BINDIR_BUILD})
+ENDIF()
+
+GNC_CONFIGURE(gnucash-valgrind.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind)
+
+FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-valgrind
+ DESTINATION ${VALGRIND_OUTDIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+## Create the environment file
+
+FILE(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/environment.in ENV_STRINGS_IN)
+
+SET(ENV_STRINGS_LIST "")
+
+FOREACH(line ${ENV_STRINGS_IN})
+ STRING(REGEX REPLACE "@-|-@" "@" line2 "${line}")
+ STRING(REPLACE ";" "\;" line3 "${line2}")
+ IF(NOT "${line3}" MATCHES "@NOTE")
+ LIST(APPEND ENV_STRINGS_LIST "${line3}\n")
+ ENDIF()
+ENDFOREACH()
+
+STRING(CONCAT ENV_STRINGS ${ENV_STRINGS_LIST})
+STRING(CONFIGURE "${ENV_STRINGS}" ENV_STRINGS_CONF @ONLY)
+
+SET(ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment)
+IF (GNC_BUILD_AS_INSTALL)
+ SET(BUILD_ENV_FILE_OUT ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/environment.build)
+ENDIF()
+
+FILE(WRITE ${ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
+FILE(WRITE ${BUILD_ENV_FILE_OUT} "${ENV_STRINGS_CONF}")
+
+SET(XDG_TEXT "
+# GnuCash was not installed in the default location.
+# XDG_DATA_DIRS will be set so that our documentation
+# and gsettings schema are found.\n"
+)
+
+IF (NOT(${GNC_DBD_DIR} STREQUAL "${CMAKE_PREFIX_PATH}/lib/dbd"))
+ FILE(APPEND ${ENV_FILE_OUT} "GNC_DBD_DIR=${GNC_DBD_DIR}")
+ENDIF()
+
+IF (NOT(${DATADIR} STREQUAL "/usr/share") AND NOT(${DATADIR} STREQUAL "/usr/local/share"))
+ FILE(APPEND ${ENV_FILE_OUT} ${XDG_TEXT})
+ FILE(APPEND ${ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR};{XDG_DATA_DIRS}" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
+ENDIF()
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(APPEND ${BUILD_ENV_FILE_OUT} "GNC_DBD_DIR=${LIBDBI_DRIVERS_DIR}/dbd")
+
+ FILE(APPEND ${BUILD_ENV_FILE_OUT} ${XDG_TEXT})
+ FILE(APPEND ${BUILD_ENV_FILE_OUT} "XDG_DATA_DIRS=${DATADIR_BUILD};{XDG_DATA_DIRS};" "${GNC_SYSTEM_XDG_DATA_DIRS}\n")
+
+ FILE(COPY ${BUILD_ENV_FILE_OUT}
+ DESTINATION ${SYSCONFDIR_BUILD}/gnucash
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ )
+ FILE(RENAME
+ ${SYSCONFDIR_BUILD}/gnucash/environment.build
+ ${SYSCONFDIR_BUILD}/gnucash/environment
+ )
+ENDIF()
+
+SET(ENVIRONMENT_FILE_DIR ${CMAKE_CURRENT_BINARY_DIR})
+FILE(COPY ${ENV_FILE_OUT}
+ DESTINATION ${ENVIRONMENT_FILE_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+
+
+INSTALL(FILES ${SCRIPT_LIST} ${VALGRIND_OUTDIR}/gnucash-valgrind DESTINATION bin)
+INSTALL(FILES ${ENVIRONMENT_FILE_DIR}/environment DESTINATION etc/gnucash)
+
+IF (WIN32)
+ # Write out a command script for windows
+ SET(lib_directories boost enchant libsoup mysql pgsql libxslt)
+ SET(bin_directories mingw gnutls goffice libgsf pcre gnome guile webkit regex aqbanking gwenhywfar libofx opensp
+ libdbi sqlite3 mysql pgsql enchant libsoup libxslt)
+
+ SET(CMD_LINES "")
+ SET(BUILD_CMD_LINES "")
+ FOREACH(dir bin lib lib/gnucash)
+ FILE(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${dir} INSTALL_PATH_ITEM)
+ FILE(TO_NATIVE_PATH ${CMAKE_BINARY_DIR}/${dir} BUILD_PATH_ITEM)
+ LIST(APPEND CMD_LINES "set PATH=${INSTALL_PATH_ITEM}\;%PATH%\n")
+ LIST(APPEND BUILD_CMD_LINES "set PATH=${BUILD_PATH_ITEM}\;%PATH%\n")
+ ENDFOREACH(dir)
+
+ FOREACH(dir ${lib_directories})
+ FILE(TO_NATIVE_PATH ${CMAKE_PREFIX_PATH}/${dir}/lib PATH_ITEM)
+ LIST(APPEND CMD_LINES "set PATH=${PATH_ITEM}\;%PATH%\n")
+ ENDFOREACH(dir)
+
+ FOREACH(dir ${bin_directories})
+ FILE(TO_NATIVE_PATH ${CMAKE_PREFIX_PATH}/${dir}/bin PATH_ITEM)
+ LIST(APPEND CMD_LINES "set PATH=${PATH_ITEM}\;%PATH%\n")
+ ENDFOREACH(dir)
+
+ SET(CMD_FILE ${CMAKE_CURRENT_BINARY_DIR}/gnucash-launcher.cmd)
+ FILE(WRITE ${CMD_FILE} "@echo off\nsetlocal\n\n")
+ FOREACH(line ${CMD_LINES})
+ FILE(APPEND ${CMD_FILE} "${line}")
+ ENDFOREACH(line)
+ FILE(APPEND ${CMD_FILE} "\nstart gnucash %*\n")
+
+ IF (GNC_BUILD_AS_INSTALL)
+ SET(BUILD_CMD_FILE ${CMAKE_BINARY_DIR}/bin/gnucash-launcher.cmd)
+ FILE(WRITE ${BUILD_CMD_FILE} "@echo off\nsetlocal\n\n")
+ FOREACH(line ${CMD_LINES})
+ FILE(APPEND ${BUILD_CMD_FILE} "${line}")
+ ENDFOREACH(line)
+ FILE(APPEND ${BUILD_CMD_FILE} "\nstart gnucash %*\n")
+ ENDIF()
+
+ INSTALL(PROGRAMS ${CMD_FILE} DESTINATION bin)
+ENDIF(WIN32)
diff --git a/src/bin/overrides/CMakeLists.txt b/src/bin/overrides/CMakeLists.txt
new file mode 100644
index 0000000..0390377
--- /dev/null
+++ b/src/bin/overrides/CMakeLists.txt
@@ -0,0 +1,33 @@
+
+SET(GNC_PKGLIB_INSTALLDIR ${PKGLIBDIR})
+SET(GNC_SCM_INSTALLDIR ${SCHEME_INSTALLED_SOURCE_DIR})
+SET(GNC_LIB_INSTALLDIR ${LIBDIR})
+SET(GNC_PYTHON_DIR ${GNUCASH_PATH_DIR})
+SET(GUILE ${GUILE_EXECUTABLE})
+SET(GNC_SRCDIR ${CMAKE_SOURCE_DIR})
+SET(GNC_BUILDDIR ${CMAKE_BINARY_DIR})
+
+CONFIGURE_FILE(gnucash-make-guids.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-make-guids)
+GNC_CONFIGURE(gnucash-env.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-env)
+GNC_CONFIGURE(guile.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/guile)
+GNC_CONFIGURE(gnucash-build-env.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-build-env) # not installed
+
+SET(SCRIPT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
+IF (GNC_BUILD_AS_INSTALL)
+ SET(SCRIPT_OUTPUT_DIR ${LIBDIR_BUILD}exec/gnucash/overrides)
+ENDIF()
+
+FOREACH(file gnucash-make-guids gnucash-env guile gnucash-build-env)
+ FILE(COPY ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${file}
+ DESTINATION ${SCRIPT_OUTPUT_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+ )
+ENDFOREACH(file)
+
+INSTALL(
+ PROGRAMS
+ ${SCRIPT_OUTPUT_DIR}/gnucash-env
+ ${SCRIPT_OUTPUT_DIR}/gnucash-make-guids
+ ${SCRIPT_OUTPUT_DIR}/guile
+ DESTINATION libexec/gnucash/overrides
+)
\ No newline at end of file
diff --git a/src/business/business-gnome/CMakeLists.txt b/src/business/business-gnome/CMakeLists.txt
new file mode 100644
index 0000000..e33571a
--- /dev/null
+++ b/src/business/business-gnome/CMakeLists.txt
@@ -0,0 +1,82 @@
+ADD_SUBDIRECTORY(gschemas)
+ADD_SUBDIRECTORY(gtkbuilder)
+ADD_SUBDIRECTORY(ui)
+
+SET(business_gnome_SOURCES
+ business-options-gnome.c
+ business-urls.c
+ business-gnome-utils.c
+ dialog-billterms.c
+ dialog-choose-owner.c
+ dialog-customer.c
+ dialog-date-close.c
+ dialog-employee.c
+ dialog-invoice.c
+ dialog-job.c
+ dialog-order.c
+ dialog-payment.c
+ dialog-vendor.c
+ gnc-plugin-business.c
+ gnc-plugin-page-invoice.c
+ gnc-plugin-page-owner-tree.c
+ gncmod-business-gnome.c
+ search-owner.c
+)
+
+SET(business_gnome_noinst_HEADERS
+ business-options-gnome.h
+ business-urls.h
+ business-gnome-utils.h
+ dialog-billterms.h
+ dialog-choose-owner.h
+ dialog-customer.h
+ dialog-date-close.h
+ dialog-employee.h
+ dialog-invoice.h
+ dialog-job.h
+ dialog-order.h
+ dialog-payment.h
+ dialog-vendor.h
+ gnc-plugin-business.h
+ gnc-plugin-page-invoice.h
+ gnc-plugin-page-owner-tree.h
+ search-owner.h
+)
+
+SET_SOURCE_FILES_PROPERTIES (${business_gnome_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+SET_SOURCE_FILES_PROPERTIES (business-options-gnome.c PROPERTIES OBJECT_DEPENDS ${SWIG_RUNTIME_H})
+ADD_LIBRARY(gncmod-business-gnome
+ ${business_gnome_SOURCES}
+ ${business_gnome_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gncmod-business-gnome gnc-business-ledger gncmod-gnome-search
+ gncmod-report-gnome gncmod-gnome-utils gnc-gnome gncmod-engine gnc-qof ${GTK2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-business-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.business.gnome\")
+
+INSTALL(TARGETS gncmod-business-gnome
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install
+
+# Scheme
+
+SET(gncmod_business_gnome_SCHEME business-gnome.scm)
+
+SET(GUILE_OUTPUT_DIR gnucash)
+SET(GUILE_MODULES src/app-utils src/engine src/gnome-utils src/html src/report/report-system src/report/standard-reports)
+SET(GUILE_LOAD_DIRS src/app-utils src/engine src/core-utils src/gnc-module src/gnome-utils src/report/business-reports src/report/report-system src/report/standard-reports src/scm)
+SET(GUILE_LIBRARY_DIRS src/app-utils src/engine src/core-utils src/gnc-module src/gnome-utils src/report/report-system)
+SET(GUILE_DEPENDS scm-business-reports)
+
+GNC_ADD_SCHEME_TARGETS(scm-business-gnome
+ "${gncmod_business_gnome_SCHEME}"
+ ${GUILE_OUTPUT_DIR}
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
\ No newline at end of file
diff --git a/src/business/business-gnome/gschemas/CMakeLists.txt b/src/business/business-gnome/gschemas/CMakeLists.txt
new file mode 100644
index 0000000..cabe172
--- /dev/null
+++ b/src/business/business-gnome/gschemas/CMakeLists.txt
@@ -0,0 +1,4 @@
+
+SET(business_gnome_GSCHEMA org.gnucash.dialogs.business.gschema.xml)
+
+ADD_GSCHEMA_TARGETS(business-gnome-gschema "${business_gnome_GSCHEMA}")
\ No newline at end of file
diff --git a/src/business/business-gnome/gtkbuilder/CMakeLists.txt b/src/business/business-gnome/gtkbuilder/CMakeLists.txt
new file mode 100644
index 0000000..1d4d3d1
--- /dev/null
+++ b/src/business/business-gnome/gtkbuilder/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/business/business-gnome/ui/CMakeLists.txt b/src/business/business-gnome/ui/CMakeLists.txt
new file mode 100644
index 0000000..6c9019d
--- /dev/null
+++ b/src/business/business-gnome/ui/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/business/business-ledger/CMakeLists.txt b/src/business/business-ledger/CMakeLists.txt
new file mode 100644
index 0000000..6573f86
--- /dev/null
+++ b/src/business/business-ledger/CMakeLists.txt
@@ -0,0 +1,35 @@
+
+SET (gnc_business_ledger_SOURCES
+ gncEntryLedger.c
+ gncEntryLedgerControl.c
+ gncEntryLedgerDisplay.c
+ gncEntryLedgerLayout.c
+ gncEntryLedgerLoad.c
+ gncEntryLedgerModel.c
+)
+
+SET (gnc_business_ledger_noinst_HEADERS
+ gncEntryLedger.h
+ gncEntryLedgerP.h
+ gncEntryLedgerControl.h
+ gncEntryLedgerLayout.h
+ gncEntryLedgerModel.h
+)
+
+ADD_LIBRARY (gnc-business-ledger
+ ${gnc_business_ledger_SOURCES}
+ ${gnc_business_ledger_noinst_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gnc-business-ledger gncmod-ledger-core gncmod-register-core gncmod-engine gncmod-gnome-utils
+ gnc-core-utils ${GTK2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS (gnc-business-ledger PRIVATE -DG_LOG_DOMAIN=\"gnc.business.ledger\")
+
+TARGET_INCLUDE_DIRECTORIES (gnc-business-ledger PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+INSTALL(TARGETS gnc-business-ledger
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+# No headers to install
\ No newline at end of file
diff --git a/src/cmake_modules/GncAddGSchemaTargets.cmake b/src/cmake_modules/GncAddGSchemaTargets.cmake
new file mode 100644
index 0000000..1b80d54
--- /dev/null
+++ b/src/cmake_modules/GncAddGSchemaTargets.cmake
@@ -0,0 +1,49 @@
+MACRO(ADD_GSCHEMA_TARGETS _TARGET _gschema_INPUTS)
+ SET(_gschema_OUTPUTS "")
+ SET(_gschema_VALIDS "")
+ SET(_gschema_BUILDS "")
+ # FIXME: I have no idea of I'm using the right options here for intltool-merge for Windows.
+ SET(INITTOOL_OPTIONS "--no-translations")
+ IF(WIN32)
+ SET(INITTOOL_OPTIONS "/tmp")
+ ENDIF(WIN32)
+ FOREACH(file ${_gschema_INPUTS})
+ GNC_CONFIGURE2(${file}.in.in ${file}.in)
+ STRING(REPLACE ".xml" ".valid" file_no_xml ${file})
+ SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file})
+ SET(_BUILD_FILE ${DATADIR_BUILD}/glib-2.0/schemas/${file})
+ SET(_VALID_FILE ${CMAKE_CURRENT_BINARY_DIR}/${file_no_xml})
+ LIST(APPEND _gschema_OUTPUTS ${_OUTPUT_FILE})
+ LIST(APPEND _gschema_VALIDS ${_VALID_FILE})
+ IF (GNC_BUILD_AS_INSTALL)
+ LIST(APPEND _gschema_BUILDS ${_BUILD_FILE})
+ ENDIF()
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_OUTPUT_FILE}
+ COMMAND ${CMAKE_COMMAND} -E env
+ LC_ALL=C
+ ${PERL_EXECUTABLE} ${INTLTOOL_MERGE} -x -u ${INITTOOL_OPTIONS} ${CMAKE_CURRENT_BINARY_DIR}/${file}.in ${CMAKE_CURRENT_BINARY_DIR}/${file}
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${file}.in
+ MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${file}.in.in
+ )
+ IF (GNC_BUILD_AS_INSTALL)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_BUILD_FILE}
+ COMMAND ${CMAKE_COMMAND} -E copy ${_OUTPUT_FILE} ${_BUILD_FILE}
+ DEPENDS ${_OUTPUT_FILE}
+ )
+ ENDIF()
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_VALID_FILE}
+ COMMAND ${CMAKE_COMMAND} -E env
+ ${GLIB_COMPILE_SCHEMAS} --strict --dry-run --schema-file=${_OUTPUT_FILE}
+ COMMAND ${CMAKE_COMMAND} -E touch ${_VALID_FILE}
+ DEPENDS ${_OUTPUT_FILE}
+ )
+ ENDFOREACH(file)
+
+ ADD_CUSTOM_TARGET(${_TARGET} DEPENDS "${_gschema_OUTPUTS};${_gschema_VALIDS};${_gschema_BUILDS}")
+
+ INSTALL(FILES ${_gschema_OUTPUTS} DESTINATION share/glib-2.0/schemas)
+
+ENDMACRO()
diff --git a/src/cmake_modules/GncAddSchemeTargets.cmake b/src/cmake_modules/GncAddSchemeTargets.cmake
new file mode 100644
index 0000000..b7ddceb
--- /dev/null
+++ b/src/cmake_modules/GncAddSchemeTargets.cmake
@@ -0,0 +1,142 @@
+# Copyright (c) 2015, Rob Gowin
+
+MACRO(GNC_ADD_SCHEME_TARGETS _TARGET _SOURCE_FILES _OUTPUT_DIR_IN _GUILE_MODULES _GUILE_LOAD_DIRS _GUILE_LIBRARY_DIRS _GUILE_DEPENDS_IN MAKE_LINKS_IN)
+ SET(__DEBUG FALSE)
+ IF (__DEBUG)
+ MESSAGE("Parameters to COMPILE_SCHEME for target ${_TARGET}")
+ MESSAGE(" SOURCE_FILES: ${_SOURCE_FILES}")
+ MESSAGE(" GUILE_MODULES: ${_GUILE_MODULES}")
+ MESSAGE(" GUILE_LOAD_DIRS: ${_GUILE_LOAD_DIRS}")
+ MESSAGE(" GUILE_LIBRARY_DIRS: ${_GUILE_LIBRARY_DIRS}")
+ MESSAGE(" GUILE_DEPENDS_IN: ${_GUILE_DEPENDS_IN}")
+ ENDIF(__DEBUG)
+ SET(_CMD "create_symlink")
+ IF(WIN32)
+ SET(_CMD "copy")
+ ENDIF(WIN32)
+ SET(MAKE_LINKS ${MAKE_LINKS_IN})
+ SET(_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_DIR_IN})
+ IF(GNC_BUILD_AS_INSTALL)
+ SET(_OUTPUT_DIR ${DATADIR_BUILD}/gnucash/scm/${_OUTPUT_DIR_IN})
+ ENDIF()
+ FILE(MAKE_DIRECTORY ${_OUTPUT_DIR})
+ # For guile 1, we simple link (or copy, for Windows) each source file to the dest directory
+ IF(HAVE_GUILE1 OR MAKE_LINKS)
+ SET(_SCHEME_LINKS "")
+ FOREACH(scheme_file ${_SOURCE_FILES})
+ SET(_SOURCE_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${scheme_file})
+ IF(IS_ABSOLUTE ${scheme_file})
+ SET(_SOURCE_FILE ${scheme_file})
+ ENDIF()
+ GET_FILENAME_COMPONENT(name ${scheme_file} NAME)
+ SET(_OUTPUT_FILE ${_OUTPUT_DIR}/${name})
+ IF(NOT EXISTS ${_OUTPUT_FILE})
+ LIST(APPEND _SCHEME_LINKS ${_OUTPUT_FILE})
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_OUTPUT_FILE}
+ COMMAND ${CMAKE_COMMAND} -E ${_CMD} ${_SOURCE_FILE} ${_OUTPUT_FILE}
+ )
+ ENDIF()
+ ENDFOREACH(scheme_file)
+ IF(HAVE_GUILE1)
+ ADD_CUSTOM_TARGET(${_TARGET} ALL DEPENDS "${_SCHEME_LINKS}")
+ ELSE()
+ ADD_CUSTOM_TARGET(${_TARGET}-links ALL DEPENDS "${_SCHEME_LINKS}")
+ ENDIF()
+ ENDIF(HAVE_GUILE1 OR MAKE_LINKS)
+
+ IF(HAVE_GUILE2)
+ # Construct the guile source and compiled load paths
+ SET(_GUILE_LOAD_PATH "${CMAKE_CURRENT_SOURCE_DIR};${CMAKE_CURRENT_BINARY_DIR};${CMAKE_BINARY_DIR}/src/scm") # to pick up generated build-config.scm
+ SET(_GUILE_LOAD_COMPILED_PATH "${CMAKE_CURRENT_BINARY_DIR}")
+ FOREACH (load_item ${_GUILE_LOAD_DIRS})
+ LIST(APPEND _GUILE_LOAD_PATH ${CMAKE_SOURCE_DIR}/${load_item})
+ LIST(APPEND _GUILE_LOAD_COMPILED_PATH ${CMAKE_BINARY_DIR}/${load_item})
+ ENDFOREACH(load_item)
+
+ # Construct the LD_LIBRARY_PATH
+ SET(_GUILE_LD_LIBRARY_PATH ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE})
+ FOREACH(ld_item ${_GUILE_LIBRARY_DIRS})
+ LIST(APPEND _GUILE_LD_LIBRARY_PATH ${CMAKE_BINARY_DIR}/${ld_item}/${CMAKE_BUILD_TYPE})
+ ENDFOREACH(ld_item)
+
+ # And then the module path
+ SET(_GNC_MODULE_PATH "")
+ FOREACH(module_item ${_GUILE_MODULES})
+ LIST(APPEND _GNC_MODULE_PATH ${CMAKE_BINARY_DIR}/${module_item}/${CMAKE_BUILD_TYPE})
+ ENDFOREACH(module_item)
+
+ # In CMake lists are text strings where the items are separated by semicolons ("a;b;c;d" for example).
+ # Replace the semis with colons to construct the path environment variables
+ STRING(REPLACE ";" ":" _GUILE_LOAD_PATH "${_GUILE_LOAD_PATH}")
+ STRING(REPLACE ";" ":" _GUILE_LOAD_COMPILED_PATH "${_GUILE_LOAD_COMPILED_PATH}")
+ STRING(REPLACE ";" ":" _GUILE_MODULES "{_GUILE_MODULES}")
+ STRING(REPLACE ";" ":" _GUILE_LD_LIBRARY_PATH "${_GUILE_LD_LIBRARY_PATH}")
+ STRING(REPLACE ";" ":" _GNC_MODULE_PATH "${_GNC_MODULE_PATH}")
+
+ IF(GNC_BUILD_AS_INSTALL)
+ SET(_GUILE_CACHE_DIR ${LIBDIR_BUILD}/gnucash/scm/ccache/2.0)
+ SET(_GUILE_LOAD_PATH "${CMAKE_CURRENT_SOURCE_DIR}:${DATADIR_BUILD}/gnucash/scm")
+ SET(_GUILE_LOAD_COMPILED_PATH ${_GUILE_CACHE_DIR})
+# SET(_GNC_MODULE_PATH "${LIBDIR_BUILD}/${CMAKE_BUILD_TYPE}:${LIBDIR_BUILD}/gnucash/${CMAKE_BUILD_TYPE}")
+ SET(_GNC_MODULE_PATH "")
+ SET(_GUILE_LD_LIBRARY_PATH ${_GNC_MODULE_PATH})
+ ENDIF()
+ IF (__DEBUG)
+ MESSAGE(" ")
+ MESSAGE(" GUILE_LOAD_PATH: ${_GUILE_LOAD_PATH}")
+ MESSAGE(" GUILE_LOAD_COMPILED_PATH: ${_GUILE_LOAD_COMPILED_PATH}")
+ MESSAGE(" GUILE_LD_LIBRARY_PATH: ${_GUILE_LD_LIBRARY_PATH}")
+ MESSAGE(" GNC_MODULE_PATH: ${_GNC_MODULE_PATH}")
+ ENDIF(__DEBUG)
+ SET(_TARGET_FILES "")
+
+ FOREACH(source_file ${_SOURCE_FILES})
+ SET(guile_depends ${_GUILE_DEPENDS_IN})
+ GET_FILENAME_COMPONENT(basename ${source_file} NAME_WE)
+
+ SET(output_file ${basename}.go)
+ SET(_TMP_OUTPUT_DIR_IN ${_OUTPUT_DIR_IN})
+ IF (_TMP_OUTPUT_DIR_IN)
+ SET(output_file ${_OUTPUT_DIR_IN}/${basename}.go)
+ ENDIF()
+ IF(GNC_BUILD_AS_INSTALL)
+ SET(output_file ${_GUILE_CACHE_DIR}/${output_file})
+ LIST(APPEND _TARGET_FILES ${output_file})
+ ELSE()
+ LIST(APPEND _TARGET_FILES ${CMAKE_CURRENT_BINARY_DIR}/${output_file})
+ ENDIF()
+
+ SET(source_file_abs_path ${CMAKE_CURRENT_SOURCE_DIR}/${source_file})
+ IF (IS_ABSOLUTE ${source_file})
+ SET(source_file_abs_path ${source_file})
+ ENDIF()
+ IF (__DEBUG)
+ MESSAGE("ADD_CUSTOM_COMMAND: output = ${output_file}")
+ ENDIF()
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${output_file}
+ COMMAND ${CMAKE_COMMAND} -E env
+ GNC_UNINSTALLED=${_GNC_UNINSTALLED}
+ GNC_BUILDDIR=${CMAKE_BINARY_DIR}
+ #DYLD_FALLBACK_LIBRARY_PATH=${Boost_LIBRARY_DIRS} # this is hack for OS X
+ LD_LIBRARY_PATH="${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${_GUILE_LD_LIBRARY_PATH}"
+ DYLD_LIBRARY_PATH="${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${_GUILE_LD_LIBRARY_PATH}"
+ GUILE_LOAD_PATH=${_GUILE_LOAD_PATH}
+ GUILE_LOAD_COMPILED_PATH=${_GUILE_LOAD_COMPILED_PATH}
+ #GNC_MODULE_PATH=${_GNC_MODULE_PATH}
+ GNC_MODULE_PATH="${LIBDIR_BUILD}:${LIBDIR_BUILD}/gnucash:${GNC_MODULE_PATH}"
+ ${GUILE_EXECUTABLE} -e '\(@@ \(guild\) main\)' -s ${GUILD_EXECUTABLE} compile -o ${output_file} ${source_file_abs_path}
+ DEPENDS ${guile_depends}
+ MAIN_DEPENDENCY ${source_file_abs_path}
+ )
+ ENDFOREACH(source_file)
+ IF (__DEBUG)
+ MESSAGE("TARGET_FILES are ${_TARGET_FILES}")
+ ENDIF(__DEBUG)
+ ADD_CUSTOM_TARGET(${_TARGET} ALL DEPENDS ${_TARGET_FILES})
+ INSTALL(FILES ${_TARGET_FILES} DESTINATION ${SCHEME_INSTALLED_CACHE_DIR}/${_OUTPUT_DIR_IN})
+
+ ENDIF(HAVE_GUILE2)
+ INSTALL(FILES ${_SOURCE_FILES} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/${_OUTPUT_DIR_IN})
+ENDMACRO(GNC_ADD_SCHEME_TARGETS)
diff --git a/src/cmake_modules/GncConfigure.cmake b/src/cmake_modules/GncConfigure.cmake
new file mode 100644
index 0000000..8643e8a
--- /dev/null
+++ b/src/cmake_modules/GncConfigure.cmake
@@ -0,0 +1,42 @@
+
+MACRO (GNC_CONFIGURE _INPUT _OUTPUT)
+ FILE(READ ${_INPUT} FILE_CONTENTS_IN_IN)
+ SET(FILE_CONTENTS_IN "${FILE_CONTENTS_IN_IN}")
+ STRING(REGEX REPLACE "@-|-@" "@" _TMP2 "${FILE_CONTENTS_IN}")
+ STRING(CONFIGURE "${_TMP2}" FILE_CONTENTS @ONLY)
+ SET(_OUTPUT_FILE ${_OUTPUT})
+ IF (NOT IS_ABSOLUTE ${_OUTPUT})
+ SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT})
+ ENDIF()
+ FILE(WRITE ${_OUTPUT_FILE} "${FILE_CONTENTS}")
+ENDMACRO()
+
+
+MACRO (GNC_CONFIGURE2 _INPUT _OUTPUT)
+
+ SET(_TMPDIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
+ FILE(READ ${_INPUT} FILE_CONTENTS_IN_IN)
+ SET(FILE_CONTENTS_IN "${FILE_CONTENTS_IN_IN}")
+ STRING(REGEX REPLACE "@-|-@" "@" _TMP2 "${FILE_CONTENTS_IN}")
+ FILE(WRITE ${_TMPDIR}/${_INPUT}.tmp "${_TMP2}")
+
+ FILE(WRITE ${_TMPDIR}/${_INPUT}.cmake
+ "SET(PERL ${PERL_EXECUTABLE})
+ SET(VERSION ${VERSION})
+ SET(GNC_HELPDIR ${GNC_HELPDIR})
+ SET(GETTEXT_PACKAGE ${GETTEXT_PACKAGE})
+ CONFIGURE_FILE(\${SRC} \${DST} @ONLY)")
+
+ SET(_OUTPUT_FILE ${_OUTPUT})
+ IF (NOT IS_ABSOLUTE ${_OUTPUT})
+ SET(_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT})
+ ENDIF()
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_OUTPUT_FILE}
+ COMMAND ${CMAKE_COMMAND} -D SRC=${_TMPDIR}/${_INPUT}.tmp
+ -D DST=${_OUTPUT_FILE}
+ -P ${_TMPDIR}/${_INPUT}.cmake
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${_INPUT}
+ )
+ENDMACRO()
\ No newline at end of file
diff --git a/src/cmake_modules/GncFindPkgConfig.cmake b/src/cmake_modules/GncFindPkgConfig.cmake
new file mode 100644
index 0000000..f79316e
--- /dev/null
+++ b/src/cmake_modules/GncFindPkgConfig.cmake
@@ -0,0 +1,248 @@
+function (pkg_get_variable result pkg variable)
+ _pkgconfig_invoke("${pkg}" "prefix" "result" "" "--variable=${variable}")
+ set("${result}"
+ "${prefix_result}"
+ PARENT_SCOPE)
+endfunction ()
+
+
+macro(_gnc_pkg_check_modules_internal _is_required _is_silent _no_cmake_path _no_cmake_environment_path _prefix)
+ _pkgconfig_unset(${_prefix}_FOUND)
+ _pkgconfig_unset(${_prefix}_VERSION)
+ _pkgconfig_unset(${_prefix}_PREFIX)
+ _pkgconfig_unset(${_prefix}_INCLUDEDIR)
+ _pkgconfig_unset(${_prefix}_LIBDIR)
+ _pkgconfig_unset(${_prefix}_LIBS)
+ _pkgconfig_unset(${_prefix}_LIBS_L)
+ _pkgconfig_unset(${_prefix}_LIBS_PATHS)
+ _pkgconfig_unset(${_prefix}_LIBS_OTHER)
+ _pkgconfig_unset(${_prefix}_CFLAGS)
+ _pkgconfig_unset(${_prefix}_CFLAGS_I)
+ _pkgconfig_unset(${_prefix}_CFLAGS_OTHER)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBDIR)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBS)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBS_L)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS)
+ _pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER)
+ _pkgconfig_unset(${_prefix}_STATIC_CFLAGS)
+ _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I)
+ _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER)
+
+ # create a better addressable variable of the modules and calculate its size
+ set(_pkg_check_modules_list ${ARGN})
+ list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt)
+
+ if(PKG_CONFIG_EXECUTABLE)
+ # give out status message telling checked module
+ if (NOT ${_is_silent})
+ if (_pkg_check_modules_cnt EQUAL 1)
+ message(STATUS "Checking for module '${_pkg_check_modules_list}'")
+ else()
+ message(STATUS "Checking for modules '${_pkg_check_modules_list}'")
+ endif()
+ endif()
+
+ set(_pkg_check_modules_packages)
+ set(_pkg_check_modules_failed)
+
+ set(_extra_paths)
+
+ if(NOT _no_cmake_path)
+ _pkgconfig_add_extra_path(_extra_paths CMAKE_PREFIX_PATH)
+ _pkgconfig_add_extra_path(_extra_paths CMAKE_FRAMEWORK_PATH)
+ _pkgconfig_add_extra_path(_extra_paths CMAKE_APPBUNDLE_PATH)
+ endif()
+
+ if(NOT _no_cmake_environment_path)
+ _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_PREFIX_PATH)
+ _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_FRAMEWORK_PATH)
+ _pkgconfig_add_extra_path(_extra_paths ENV CMAKE_APPBUNDLE_PATH)
+ endif()
+
+ if(NOT "${_extra_paths}" STREQUAL "")
+ # Save the PKG_CONFIG_PATH environment variable, and add paths
+ # from the CMAKE_PREFIX_PATH variables
+ set(_pkgconfig_path_old $ENV{PKG_CONFIG_PATH})
+ set(_pkgconfig_path ${_pkgconfig_path_old})
+ if(NOT "${_pkgconfig_path}" STREQUAL "")
+ file(TO_CMAKE_PATH "${_pkgconfig_path}" _pkgconfig_path)
+ endif()
+
+ # Create a list of the possible pkgconfig subfolder (depending on
+ # the system
+ set(_lib_dirs)
+ if(NOT DEFINED CMAKE_SYSTEM_NAME
+ OR (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU)$"
+ AND NOT CMAKE_CROSSCOMPILING))
+ if(EXISTS "/etc/debian_version") # is this a debian system ?
+ if(CMAKE_LIBRARY_ARCHITECTURE)
+ list(APPEND _lib_dirs "lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig")
+ endif()
+ else()
+ # not debian, chech the FIND_LIBRARY_USE_LIB64_PATHS property
+ get_property(uselib64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
+ if(uselib64)
+ list(APPEND _lib_dirs "lib64/pkgconfig")
+ endif()
+ endif()
+ endif()
+ list(APPEND _lib_dirs "lib/pkgconfig")
+
+ # Check if directories exist and eventually append them to the
+ # pkgconfig path list
+ foreach(_prefix_dir ${_extra_paths})
+ foreach(_lib_dir ${_lib_dirs})
+ if(EXISTS "${_prefix_dir}/${_lib_dir}")
+ list(APPEND _pkgconfig_path "${_prefix_dir}/${_lib_dir}")
+ list(REMOVE_DUPLICATES _pkgconfig_path)
+ endif()
+ endforeach()
+ endforeach()
+
+ # Prepare and set the environment variable
+ if(NOT "${_pkgconfig_path}" STREQUAL "")
+ # remove empty values from the list
+ list(REMOVE_ITEM _pkgconfig_path "")
+ file(TO_NATIVE_PATH "${_pkgconfig_path}" _pkgconfig_path)
+ if(UNIX)
+ string(REPLACE ";" ":" _pkgconfig_path "${_pkgconfig_path}")
+ string(REPLACE "\\ " " " _pkgconfig_path "${_pkgconfig_path}")
+ endif()
+ set(ENV{PKG_CONFIG_PATH} "${_pkgconfig_path}")
+ endif()
+
+ # Unset variables
+ unset(_lib_dirs)
+ unset(_pkgconfig_path)
+ endif()
+
+ # iterate through module list and check whether they exist and match the required version
+ foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list})
+ set(_pkg_check_modules_exist_query)
+
+ # check whether version is given
+ if (_pkg_check_modules_pkg MATCHES "(.*[^><])(>=|=|<=)(.*)")
+ set(_pkg_check_modules_pkg_name "${CMAKE_MATCH_1}")
+ set(_pkg_check_modules_pkg_op "${CMAKE_MATCH_2}")
+ set(_pkg_check_modules_pkg_ver "${CMAKE_MATCH_3}")
+ else()
+ set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}")
+ set(_pkg_check_modules_pkg_op)
+ set(_pkg_check_modules_pkg_ver)
+ endif()
+
+ # handle the operands
+ if (_pkg_check_modules_pkg_op STREQUAL ">=")
+ list(APPEND _pkg_check_modules_exist_query --atleast-version)
+ endif()
+
+ if (_pkg_check_modules_pkg_op STREQUAL "=")
+ list(APPEND _pkg_check_modules_exist_query --exact-version)
+ endif()
+
+ if (_pkg_check_modules_pkg_op STREQUAL "<=")
+ list(APPEND _pkg_check_modules_exist_query --max-version)
+ endif()
+
+ # create the final query which is of the format:
+ # * --atleast-version <version> <pkg-name>
+ # * --exact-version <version> <pkg-name>
+ # * --max-version <version> <pkg-name>
+ # * --exists <pkg-name>
+ if (_pkg_check_modules_pkg_op)
+ list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_ver}")
+ else()
+ list(APPEND _pkg_check_modules_exist_query --exists)
+ endif()
+
+ _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION)
+ _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX)
+ _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR)
+ _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR)
+
+ list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}")
+ list(APPEND _pkg_check_modules_packages "${_pkg_check_modules_pkg_name}")
+
+ # execute the query
+ execute_process(
+ COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query}
+ RESULT_VARIABLE _pkgconfig_retval)
+
+ # evaluate result and tell failures
+ if (_pkgconfig_retval)
+ if(NOT ${_is_silent})
+ message(STATUS " Package '${_pkg_check_modules_pkg}' not found")
+ endif()
+
+ set(_pkg_check_modules_failed 1)
+ endif()
+ endforeach()
+
+ if(_pkg_check_modules_failed)
+ # fail when requested
+ if (${_is_required})
+ message(FATAL_ERROR "A required package was not found")
+ endif ()
+ else()
+ # when we are here, we checked whether requested modules
+ # exist. Now, go through them and set variables
+
+ _pkgconfig_set(${_prefix}_FOUND 1)
+ list(LENGTH _pkg_check_modules_packages pkg_count)
+
+ # iterate through all modules again and set individual variables
+ foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages})
+ # handle case when there is only one package required
+ if (pkg_count EQUAL 1)
+ set(_pkg_check_prefix "${_prefix}")
+ else()
+ set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}")
+ endif()
+
+ _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion )
+ pkg_get_variable("${_pkg_check_prefix}_PREFIX" ${_pkg_check_modules_pkg} "prefix")
+ pkg_get_variable("${_pkg_check_prefix}_INCLUDEDIR" ${_pkg_check_modules_pkg} "includedir")
+ pkg_get_variable("${_pkg_check_prefix}_LIBDIR" ${_pkg_check_modules_pkg} "libdir")
+
+ if (NOT ${_is_silent})
+ message(STATUS " Found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}")
+ endif ()
+ endforeach()
+
+ # set variables which are combined for multiple modules
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other )
+
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags )
+ _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other )
+ endif()
+
+ if(NOT "${_extra_paths}" STREQUAL "")
+ # Restore the environment variable
+ set(ENV{PKG_CONFIG_PATH} ${_pkgconfig_path})
+ endif()
+
+ unset(_extra_paths)
+ unset(_pkgconfig_path_old)
+ else()
+ if (${_is_required})
+ message(SEND_ERROR "pkg-config tool not found")
+ endif ()
+ endif()
+endmacro()
+
+
+
+macro(gnc_pkg_check_modules _prefix _module0)
+ # check cached value
+ if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION} OR NOT ${_prefix}_FOUND)
+ _pkgconfig_parse_options (_pkg_modules _pkg_is_required _pkg_is_silent _no_cmake_path _no_cmake_environment_path "${_module0}" ${ARGN})
+ _gnc_pkg_check_modules_internal("${_pkg_is_required}" "${_pkg_is_silent}" ${_no_cmake_path} ${_no_cmake_environment_path} "${_prefix}" ${_pkg_modules})
+
+ _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION})
+ endif()
+endmacro()
+
diff --git a/src/config.h.cmake.in b/src/config.h.cmake.in
index 6b738d3..c4754cb 100644
--- a/src/config.h.cmake.in
+++ b/src/config.h.cmake.in
@@ -1,77 +1,343 @@
/* Template file for processing by the cmake command CONFIGURE_FILE */
-#define PACKAGE "@PROJECT_NAME@"
-#define GNUCASH_MAJOR_VERSION @CUTECASH_VERSION_MAJOR@
-#define GNUCASH_MICRO_VERSION @CUTECASH_VERSION_MINOR@
-#define GNUCASH_MINOR_VERSION @CUTECASH_VERSION_PATCH@
-#define GNUCASH_NANO_VERSION @CUTECASH_VERSION_NANO@
-#define GNUCASH_RESAVE_VERSION @GNUCASH_RESAVE_VERSION@
-#define VERSION "@CUTECASH_VERSION_MAJOR at .@CUTECASH_VERSION_MINOR at .@CUTECASH_VERSION_PATCH@"
-/* Definitions for all OS */
-#define HAVE_LIBQOF /**/
-#define HAVE_TOWUPPER 1
-#define QOF_DISABLE_DEPRECATED 1
-#define GNC_NO_LOADABLE_MODULES 1
+/* Define if building universal (internal helper macro) */
+#cmakedefine AC_APPLE_UNIVERSAL_BUILD
-/* WIN32 */
-#cmakedefine HAVE_HTMLHELPW 1
-#cmakedefine OS_WIN32 1
+/* Include pthread support for binary relocation? */
+#cmakedefine BR_PTHREAD 1
+
+/* Enable debug memory */
+#cmakedefine01 DEBUG_MEMORY
+
+/* Use binary relocation? */
+#cmakedefine ENABLE_BINRELOC
+
+/* always defined to indicate that i18n is enabled */
+#cmakedefine ENABLE_NLS 1
+
+/* Don't use deprecated gdk functions */
+#cmakedefine GDK_DISABLE_DEPRECATED 1
+
+/* Don't use deprecated gdk-pixbuf functions */
+#cmakedefine GDK_PIXBUF_DISABLE_DEPRECATED 1
-/* Unix or Mingw or Win32 */
+/* Using GDK Quartz (not X11) */
+#cmakedefine GDK_QUARTZ
+
+/* GetText version number */
#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"
+
+/* Cocoa/Nexstep/GnuStep framework */
+#cmakedefine GNC_PLATFORM_COCOA 1
+
+/* Darwin-based OS */
+#cmakedefine GNC_PLATFORM_DARWIN 1
+
+/* Running on OSX, either X11 or Quartz */
+#cmakedefine GNC_PLATFORM_OSX 1
+
+/* POSIX-compliant OS */
+#cmakedefine GNC_PLATFORM_POSIX 1
+
+/* Microsoft Windows OS */
+#cmakedefine GNC_PLATFORM_WINDOWS 1
+
+/* using GNOME */
+#cmakedefine GNOME
+
+/* Don't use deprecated gnome functions */
+#cmakedefine GNOME_DISABLE_DEPRECATED
+
+/* Most recent stable GnuCash series */
+#define GNUCASH_LATEST_STABLE_SERIES "@GNUCASH_LATEST_STABLE_SERIES@"
+
+/* GnuCash Major version number */
+#define GNUCASH_MAJOR_VERSION @GNUCASH_MAJOR_VERSION@
+
+/* GnuCash Micro version number */
+#define GNUCASH_MICRO_VERSION @GNUCASH_MICRO_VERSION@
+
+/* GnuCash Minor version number */
+#define GNUCASH_MINOR_VERSION @GNUCASH_MINOR_VERSION@
+
+/* GnuCash Nano version number */
+#define GNUCASH_NANO_VERSION @GNUCASH_NANO_VERSION@
+
+/* GnuCash earliest compatible databaseversion number */
+#define GNUCASH_RESAVE_VERSION @GNUCASH_RESAVE_VERSION@
+
+/* Don't use deprecated gtk functions */
+#cmakedefine GTK_DISABLE_DEPRECATED 1
+
+/* Don't use deprecated glib functions */
+#cmakedefine G_DISABLE_DEPRECATED 1
+
+/* Define to 1 if you have the `bind_textdomain_codeset' function. */
#cmakedefine HAVE_BIND_TEXTDOMAIN_CODESET 1
+
+/* define if the Boost library is available */
+#cmakedefine HAVE_BOOST
+
+/* Define to 1 if you have the `chown' function. */
#cmakedefine HAVE_CHOWN 1
+
+/* define if the compiler supports basic C++11 syntax */
+#cmakedefine HAVE_CXX11 1
+
+/* Define to 1 if you have the <dbi/dbi.h> header file. */
+#cmakedefine HAVE_DBI_DBI_H 1
+
+/* Define to 1 if you have the `dcgettext' function. */
#cmakedefine HAVE_DCGETTEXT 1
+
+/* Define to 1 if you have the <dirent.h> header file. */
#cmakedefine HAVE_DIRENT_H 1
+
+/* Define to 1 if you have the `dlerror' function. */
#cmakedefine HAVE_DLERROR 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the `dlsym' function. */
+#cmakedefine HAVE_DLSYM 1
+
+/* Define to 1 if you have the <dl.h> header file. */
+#cmakedefine HAVE_DL_H 1
+
+/* Define to 1 if you have the `gethostid' function. */
#cmakedefine HAVE_GETHOSTID 1
+
+/* Define to 1 if you have the `gethostname' function. */
#cmakedefine HAVE_GETHOSTNAME 1
+
+/* Define to 1 if you have the `getppid' function. */
#cmakedefine HAVE_GETPPID 1
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
#cmakedefine HAVE_GETTEXT 1
+
+/* Define to 1 if you have the `gettimeofday' function. */
#cmakedefine HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the `getuid' function. */
#cmakedefine HAVE_GETUID 1
+
+/* Configure gthread deprecations */
+#cmakedefine HAVE_GLIB_2_32 1
+
+/* Configure g_type_init deprecation */
+#cmakedefine HAVE_GLIB_2_36 1
+
+/* Configure leading quote around assertions */
+#cmakedefine HAVE_GLIB_2_38 1
+
+/* Define to 1 if you have the <glob.h> header file. */
#cmakedefine HAVE_GLOB_H 1
+
+/* Define to 1 if you have the `gmtime_r' function. */
#cmakedefine HAVE_GMTIME_R 1
-#cmakedefine HAVE_GUILE 1
+
+/* System has gnome-keyring 0.6 or better */
+#cmakedefine HAVE_GNOME_KEYRING 1
+
+/* System has HtmlHelpW */
+#cmakedefine HAVE_HTMLHELPW 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <ktoblzcheck.h> header file. */
+#cmakedefine HAVE_KTOBLZCHECK_H 1
+
+/* Define if you have <langinfo.h> and nl_langinfo(D_FMT). */
#cmakedefine HAVE_LANGINFO_D_FMT 1
+
+/* Define if your <locale.h> file defines LC_MESSAGES. */
#cmakedefine HAVE_LC_MESSAGES 1
-#cmakedefine HAVE_LIBM 1
+
+/* Define to 1 if you have the `pthread' library (-lpthread). */
#cmakedefine HAVE_LIBPTHREAD 1
+
+/* System has libsecret 0.18 or better */
+#cmakedefine HAVE_LIBSECRET 1
+
+/* Define to 1 if you have the <limits.h> header file. */
#cmakedefine HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the `link' function. */
#cmakedefine HAVE_LINK 1
+
+/* Define to 1 if you have the <locale.h> header file. */
#cmakedefine HAVE_LOCALE_H 1
-#cmakedefine HAVE_LOCALTIME_R 1
+
+/* Define to 1 if you have the <ltdl.h> header file. */
+#cmakedefine HAVE_LTDL_H 1
+
+/* Define to 1 if you have the <mcheck.h> header file. */
+#cmakedefine HAVE_MCHECK_H 1
+
+/* Define to 1 if you have the `memcpy' function. */
#cmakedefine HAVE_MEMCPY 1
+
+/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine HAVE_MEMORY_H 1
+
+/* System has an OS X Key chain */
+#cmakedefine HAVE_OSX_KEYCHAIN 1
+
+/* Define to 1 if you have the <pow.h> header file. */
+#cmakedefine HAVE_POW_H 1
+
+/* Define to 1 if you have the `pthread_mutex_init' function. */
#cmakedefine HAVE_PTHREAD_MUTEX_INIT 1
+
+/* Have PTHREAD_PRIO_INHERIT. */
+#cmakedefine HAVE_PTHREAD_PRIO_INHERIT 1
+
+/* Define to 1 if you have the `putenv' function. */
#cmakedefine HAVE_PUTENV 1
+
+/* If available, contains the Python version number currently in use. */
+#cmakedefine HAVE_PYTHON 1
+
+/* Define if scanf supports %I64d conversions. */
#cmakedefine HAVE_SCANF_I64D 1
+
+/* Define if scanf supports %lld conversions. */
#cmakedefine HAVE_SCANF_LLD 1
+
+/* Define if scanf supports %qd conversions. */
+#cmakedefine HAVE_SCANF_QD 1
+
+/* Define to 1 if you have the `setenv' function. */
#cmakedefine HAVE_SETENV 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `stpcpy' function. */
#cmakedefine HAVE_STPCPY 1
+
+/* Define to 1 if you have the `strfmon' function. */
+#cmakedefine HAVE_STRFMON 1
+
+/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strptime' function. */
#cmakedefine HAVE_STRPTIME 1
+
+/* Define if you have the tm_gmtoff member of struct tm. */
#cmakedefine HAVE_STRUCT_TM_GMTOFF 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/times.h> header file. */
#cmakedefine HAVE_SYS_TIMES_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
#cmakedefine HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/wait.h> header file. */
#cmakedefine HAVE_SYS_WAIT_H 1
+
+/* Define to 1 if you have the `timegm' function. */
#cmakedefine HAVE_TIMEGM 1
+
+/* Define to 1 if you have the `towupper' function. */
+#cmakedefine HAVE_TOWUPPER 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the <utmp.h> header file. */
#cmakedefine HAVE_UTMP_H 1
+
+/* Define to 1 if you have the <wctype.h> header file. */
#cmakedefine HAVE_WCTYPE_H 1
+
+/* webkit_web_frame_print_full exists */
+#cmakedefine HAVE_WEBKIT_WEB_FRAME_PRINT_FULL 1
+
+/* Define to 1 if you have the `webkit_web_view_load_uri' function. */
+#cmakedefine HAVE_WEBKIT_WEB_VIEW_LOAD_URI 1
+
+/* Define to 1 if you have the <X11/Xlib.h> header file. */
#cmakedefine HAVE_X11_XLIB_H 1
+/* Define to 1 if you have the file `/usr/include/gmock/gmock.h'. */
+#cmakedefine HAVE__USR_INCLUDE_GMOCK_GMOCK_H
+
+/* Define to 1 if you have the file `/usr/include/gtest/gtest.h'. */
+#cmakedefine HAVE__USR_INCLUDE_GTEST_GTEST_H 1
+
+/* Define to 1 if you have the file `/usr/src/gmock/gmock-all.cc'. */
+#cmakedefine HAVE__USR_SRC_GMOCK_GMOCK_ALL_CC 1
+
+/* Define to 1 if you have the file `/usr/src/gmock/src/gmock-all.cc'. */
+#cmakedefine HAVE__USR_SRC_GMOCK_SRC_GMOCK_ALL_CC 1
+
+/* Define to 1 if you have the file `/usr/src/gtest/gtest-main.cc'. */
+#cmakedefine HAVE__USR_SRC_GTEST_GTEST_MAIN_CC 1
+
+/* Define to 1 if you have the file `/usr/src/gtest/src/gtest-all.cc'. */
+#cmakedefine HAVE__USR_SRC_GTEST_SRC_GTEST_ALL_CC 1
+
+/* Enable the experimental locale-specific tax categories */
+#cmakedefine LOCALE_SPECIFIC_TAX 1
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+#define PACKAGE "@PACKAGE@"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "@PACKAGE_NAME@"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "@PACKAGE_STRING@"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "@PACKAGE_TARNAME@"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "@PACKAGE_URL@"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "@PACKAGE_VERSION@"
+
+/* Define to necessary symbol if this constant uses a non-standard name on
+ your system. */
+#cmakedefine PTHREAD_CREATE_JOINABLE 1
+
+/* Name of package containing qt3-wizard. */
+#define QT3_WIZARD_PACKAGE "aqbanking"
+
+/* We are not using Register2 */
+#cmakedefine REGISTER2_ENABLED 1
+
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine STDC_HEADERS 1
+/* We are using EFence */
+#cmakedefine USE_EFENCE 1
+
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
#cmakedefine _ALL_SOURCE 1
@@ -93,8 +359,34 @@
#cmakedefine __EXTENSIONS__ 1
#endif
+
+/* Version number of package */
+#define VERSION "@VERSION@"
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
-#cmakedefine WORDS_BIGENDIAN 1
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+#cmakedefine WORDS_BIGENDIAN
# endif
#endif
+
+/* Define to 1 if on MINIX. */
+#cmakedefine _MINIX 1
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+#cmakedefine _POSIX_1_SOURCE 1
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+#cmakedefine _POSIX_SOURCE 1
+
+/* Definitions for all OS */
+/* From cutecash */
+//#define HAVE_LIBQOF /**/
+//#define QOF_DISABLE_DEPRECATED 1
+//#define GNC_NO_LOADABLE_MODULES 1
diff --git a/src/core-utils/CMakeLists.txt b/src/core-utils/CMakeLists.txt
index b9c2d50..55eab99 100644
--- a/src/core-utils/CMakeLists.txt
+++ b/src/core-utils/CMakeLists.txt
@@ -1,25 +1,14 @@
# CMakeLists.txt for src/core-utils
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.core-utils\")
-
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}/..) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}/../libqof/qof) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-core-utils.c
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}) # for gncla-dir.h, gnc-version.h
# Command to generate the swig-engine.c wrapper file
SET (SWIG_CORE_UTILS_C ${CMAKE_CURRENT_BINARY_DIR}/swig-core-utils.c)
GNC_ADD_SWIG_COMMAND (${SWIG_CORE_UTILS_C} ${CMAKE_CURRENT_SOURCE_DIR}/core-utils.i)
-SET (libgnc_core_utils_SOURCES
+SET (core_utils_SOURCES
binreloc.c
gnc-prefs.c
+ gnc-environment.c
gnc-filepath-utils.c
gnc-features.c
gnc-gdate-utils.c
@@ -34,44 +23,75 @@ SET (libgnc_core_utils_SOURCES
)
# Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${libgnc_core_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+SET_SOURCE_FILES_PROPERTIES (${core_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
# Command to generate the swig-runtime.h header
ADD_CUSTOM_COMMAND (
- OUTPUT ${SWIG_RUNTIME_H}
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
- COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
+ OUTPUT ${SWIG_RUNTIME_H}
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
+ COMMAND ${SWIG_EXECUTABLE} -guile -external-runtime ${SWIG_RUNTIME_H}
)
# Add dependency on swig-runtime.h
SET_SOURCE_FILES_PROPERTIES (gnc-guile-utils.c PROPERTIES OBJECT_DEPENDS ${SWIG_RUNTIME_H})
-# Workaround to create a very simple gncla-dir.h file
-FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gncla-dir.h "
-#define PREFIX \"${CMAKE_INSTALL_PREFIX}\"
-#define DATADIR \"${CMAKE_INSTALL_PREFIX}/share\"
-#define SYSCONFDIR \"${CMAKE_INSTALL_PREFIX}/etc\"
-#define LIBDIR \"${CMAKE_INSTALL_PREFIX}/lib\"
-#define BINDIR \"${CMAKE_INSTALL_PREFIX}/bin\"
-#define LOCALE_DATADIRNAME \"share\"
-")
+SET(prefix ${CMAKE_INSTALL_PREFIX})
+SET(datadir ${DATADIR})
+SET(bindir ${BINDIR})
+SET(libdir ${LIBDIR})
+SET(sysconfdir ${SYSCONFDIR})
+GNC_CONFIGURE(gncla-dir.h.in gncla-dir.h)
+
+### Create gnc-version.h ###
-# Workaround to create a simple gnc-version.h file
-FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-version.h "
-/* Autogenerated. Do not change. */
+SET (GNC_VERSION_H_IN
+"/* Autogenerated. Do not change. */
#ifndef GNC_VERSION_H
#define GNC_VERSION_H
-#define GNUCASH_SVN 1
-#define GNUCASH_BUILD_DATE \"2010-XX-XX\"
-#define GNUCASH_SVN_REV \"xxxxxxx\"
+#define GNUCASH_SCM \"git\"
+#define GNUCASH_BUILD_DATE \"@GNUCASH_BUILD_DATE@\"
+#include \"gnc-vcs-info.h\"
#endif
")
-SET (libgnc_core_utils_HEADERS
+STRING(TIMESTAMP GNUCASH_BUILD_DATE "%Y-%m-%d")
+
+STRING(CONFIGURE ${GNC_VERSION_H_IN} GNC_VERSION_H_CONTENT)
+
+FILE (WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-version.h ${GNC_VERSION_H_CONTENT})
+
+### Create gnc-vcs-info.h
+# The meta-cmake gymnastics here come from https://cmake.org/pipermail/cmake/2010-July/038015.html
+
+FIND_PACKAGE(Git)
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
+ "/* Autogenerated. Do not change. */\n#define GNUCASH_SCM_REV \"@GNUCASH_SCM_REV@\"\n"
+)
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
+ "EXECUTE_PROCESS(
+ COMMAND ${GIT_EXECUTABLE} --git-dir ${CMAKE_SOURCE_DIR}/.git log -1 --pretty=format:%h HEAD
+ OUTPUT_VARIABLE GNUCASH_SCM_REV
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ CONFIGURE_FILE(\${SRC} \${DST} @ONLY)
+")
+
+ADD_CUSTOM_TARGET(gnc-vcs-info ALL
+ ${CMAKE_COMMAND} -D SRC=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h.in
+ -D DST=${CMAKE_CURRENT_BINARY_DIR}/gnc-vcs-info.h
+ -P ${CMAKE_CURRENT_BINARY_DIR}/version.cmake
+)
+
+### Compile library
+
+SET(core_utils_noinst_HEADERS
binreloc.h
gnc-prefs.h
gnc-prefs-p.h
+ gnc-environment.h
gnc-features.h
gnc-filepath-utils.h
gnc-gdate-utils.h
@@ -84,7 +104,52 @@ SET (libgnc_core_utils_HEADERS
gnc-uri-utils.h
)
-ADD_LIBRARY (core-utils
- ${libgnc_core_utils_SOURCES}
- ${libgnc_core_utils_HEADERS}
- )
+ADD_LIBRARY (gnc-core-utils
+ ${core_utils_SOURCES}
+ ${core_utils_noinst_HEADERS}
+)
+ADD_DEPENDENCIES(gnc-core-utils gnc-vcs-info)
+
+TARGET_LINK_LIBRARIES(gnc-core-utils gnc-qof ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS} ${GTK_MAC_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gnc-core-utils
+ PRIVATE -DG_LOG_DOMAIN=\"gnc.core-utils\" ${GTK_MAC_CFLAGS_OTHER})
+
+TARGET_INCLUDE_DIRECTORIES(gnc-core-utils PUBLIC
+ ${CMAKE_CURRENT_BINARY_DIR} # for headers generated in core-utils build directory
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${GUILE_INCLUDE_DIRS}
+ ${GTK_MAC_INCLUDE_DIRS}
+)
+
+IF (MAC_INTEGRATION)
+ TARGET_COMPILE_OPTIONS(gnc-core-utils PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
+ TARGET_LINK_LIBRARIES(gnc-core-utils ${OSX_EXTRA_LIBRARIES})
+ENDIF(MAC_INTEGRATION)
+
+INSTALL(TARGETS gnc-core-utils
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+# No headers to install
+
+# Scheme
+
+SET (core_utils_SCHEME core-utils.scm)
+
+SET(GUILE_OUTPUT_DIR gnucash)
+SET(GUILE_MODULES "")
+SET(GUILE_LOAD_DIRS src/core-utils)
+SET(GUILE_LIBRARY_DIRS src/core-utils)
+SET(GUILE_DEPENDS gnc-core-utils)
+
+GNC_ADD_SCHEME_TARGETS(scm-core-utils
+ "${core_utils_SCHEME}"
+ ${GUILE_OUTPUT_DIR}
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
diff --git a/src/engine/CMakeLists.txt b/src/engine/CMakeLists.txt
index 26c7723..051c424 100644
--- a/src/engine/CMakeLists.txt
+++ b/src/engine/CMakeLists.txt
@@ -1,21 +1,20 @@
# CMakeLists.txt for src/engine
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.engine\")
-
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for pow.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-module.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # for <Account.h>
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}) # for iso-4217-currencies.c
-
-SET (libgncmod_engine_HEADERS
+SET(engine_noinst_HEADERS
+ AccountP.h
+ ScrubP.h
+ SplitP.h
+ SX-book.h
+ SX-ttinfo.h
+ TransactionP.h
+ gnc-hooks-scm.h
+ gnc-lot.h
+ gnc-lot-p.h
+ gnc-pricedb-p.h
+ policy-p.h
+)
+
+SET (engine_HEADERS
Account.h
FreqSpec.h
Recurrence.h
@@ -25,6 +24,7 @@ SET (libgncmod_engine_HEADERS
Query.h
Scrub.h
Scrub2.h
+ ScrubBusiness.h
Scrub3.h
Split.h
TransLog.h
@@ -32,6 +32,7 @@ SET (libgncmod_engine_HEADERS
cap-gains.h
cashobjects.h
engine-helpers.h
+ engine-helpers-guile.h
glib-helpers.h
gnc-budget.h
gnc-commodity.h
@@ -54,6 +55,7 @@ SET (libgncmod_engine_HEADERS
gncEmployeeP.h
gncEntry.h
gncEntryP.h
+ gncIDSearch.h
gncInvoice.h
gncInvoiceP.h
gncJob.h
@@ -70,7 +72,7 @@ SET (libgncmod_engine_HEADERS
# Command to generate the swig-engine.c wrapper file
SET (SWIG_ENGINE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-engine.c)
-GNC_ADD_SWIG_COMMAND (${SWIG_ENGINE_C} ${CMAKE_CURRENT_SOURCE_DIR}/engine.i ${libgncmod_engine_HEADERS})
+GNC_ADD_SWIG_COMMAND (${SWIG_ENGINE_C} ${CMAKE_CURRENT_SOURCE_DIR}/engine.i ${engine_HEADERS})
# Command to generate the iso-4217-currencies.c file
SET (ISO_4217_C ${CMAKE_CURRENT_BINARY_DIR}/iso-4217-currencies.c)
@@ -78,15 +80,18 @@ ADD_CUSTOM_COMMAND (
OUTPUT ${ISO_4217_C}
DEPENDS iso-4217-currencies.xml iso-currencies-to-c.xsl
COMMAND
- ${XSLTPROC} -o ${ISO_4217_C} "${CMAKE_CURRENT_SOURCE_DIR}/iso-currencies-to-c.xsl" "${CMAKE_CURRENT_SOURCE_DIR}/iso-4217-currencies.xml"
+ ${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${ISO_4217_C} "${CMAKE_CURRENT_SOURCE_DIR}/iso-currencies-to-c.xsl" "${CMAKE_CURRENT_SOURCE_DIR}/iso-4217-currencies.xml"
)
# Add dependency on iso-4217-currencies.c
-SET_SOURCE_FILES_PROPERTIES (gnc-commodity.c PROPERTIES OBJECT_DEPENDS ${ISO_4217_C})
+SET_SOURCE_FILES_PROPERTIES (gnc-commodity.c PROPERTIES OBJECT_DEPENDS "${ISO_4217_C};${CONFIG_H}")
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${libgncmod_engine_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
# Add dependency on swig-runtime.h
-SET_SOURCE_FILES_PROPERTIES (gnc-hooks.c engine-helpers.c kvp-scm.c glib-helpers.c PROPERTIES OBJECT_DEPENDS ${SWIG_RUNTIME_H})
+SET_SOURCE_FILES_PROPERTIES (gnc-hooks.c engine-helpers.c kvp-scm.cpp glib-helpers.c PROPERTIES OBJECT_DEPENDS "${CONFIG_H};${SWIG_RUNTIME_H}")
-SET (libgncmod_engine_SOURCES
+SET (engine_SOURCES
Account.c
Recurrence.c
Query.c
@@ -96,6 +101,7 @@ SET (libgncmod_engine_SOURCES
Scrub.c
Scrub2.c
Scrub3.c
+ ScrubBusiness.c
Split.c
TransLog.c
Transaction.c
@@ -118,9 +124,11 @@ SET (libgncmod_engine_SOURCES
gncAddress.c
gncBillTerm.c
gncBusGuile.c
+ gncBusiness.c
gncCustomer.c
gncEmployee.c
gncEntry.c
+ gncIDSearch.c
gncInvoice.c
gncJob.c
gncOrder.c
@@ -129,10 +137,74 @@ SET (libgncmod_engine_SOURCES
gncVendor.c
)
-# Add dependency on config.h
-#SET_SOURCE_FILES_PROPERTIES (${libgncmod_engine_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
-ADD_LIBRARY (engine
- ${libgncmod_engine_SOURCES}
- ${libgncmod_engine_HEADERS}
- )
+ADD_LIBRARY (gncmod-engine
+ ${engine_SOURCES}
+ ${engine_HEADERS}
+ ${engine_noinst_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gncmod-engine gnc-core-utils gnc-module gnc-qof ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS (gncmod-engine PRIVATE -DG_LOG_DOMAIN=\"gnc.engine\")
+
+TARGET_INCLUDE_DIRECTORIES (gncmod-engine
+ PRIVATE ${CMAKE_CURRENT_BINARY_DIR} # for iso-4217-currencies.c
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+INSTALL(TARGETS gncmod-engine
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+INSTALL(FILES ${engine_HEADERS} DESTINATION include/gnucash)
+
+# Scheme
+
+SET (engine_SCHEME_0
+ engine.scm
+ business-core.scm
+)
+
+SET (engine_SCHEME_1
+ commodity-table.scm
+ engine-interface.scm
+ engine-utilities.scm
+ gnc-numeric.scm
+)
+
+SET(BACKEND_DEPENDS gncmod-backend-xml-link)
+
+
+IF(WITH_SQL)
+ LIST(APPEND BACKEND_DEPENDS gncmod-backend-dbi-link)
+ENDIF(WITH_SQL)
+
+SET(GUILE_MODULES "")
+SET(GUILE_LOAD_DIRS src/gnc-module)
+SET(GUILE_LIBRARY_DIRS src/gnc-module)
+SET(GUILE_DEPENDS ${BACKEND_DEPENDS} gnc-module gncmod-engine scm-gnc-module)
+
+
+GNC_ADD_SCHEME_TARGETS(scm-engine-0
+ "${engine_SCHEME_0}"
+ gnucash
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-engine-1
+ "${engine_SCHEME_1}"
+ ""
+ ""
+ ""
+ ""
+ "scm-engine-0;${GUILE_DEPENDS}"
+ FALSE
+)
+
+ADD_CUSTOM_TARGET(scm-engine ALL DEPENDS scm-engine-1 scm-engine-0)
diff --git a/src/gnc-module/CMakeLists.txt b/src/gnc-module/CMakeLists.txt
index be5ec37..d06f982 100644
--- a/src/gnc-module/CMakeLists.txt
+++ b/src/gnc-module/CMakeLists.txt
@@ -1,33 +1,59 @@
# CMakeLists.txt for src/gnc-module
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.module\")
-
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_SOURCE_DIR}) # when building swig-gnc-module.c
-
# Command to generate the swig-engine.c wrapper file
SET (SWIG_GNC_MODULE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnc-module.c)
GNC_ADD_SWIG_COMMAND (${SWIG_GNC_MODULE_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-module.i)
-SET (libgnc_module_SOURCES
+SET (gnc_module_SOURCES
gnc-module.c
${SWIG_GNC_MODULE_C}
)
# Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${libgnc_module_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+SET_SOURCE_FILES_PROPERTIES (${gnc_module_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
-SET (libgnc_module_HEADERS
+SET (gnc_module_HEADERS
gnc-module.h
gnc-module-api.h
)
ADD_LIBRARY (gnc-module
- ${libgnc_module_SOURCES}
- ${libgnc_module_HEADERS}
- )
+ ${gnc_module_SOURCES}
+ ${gnc_module_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gnc-module gnc-qof ${GUILE_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS (gnc-module PRIVATE -DG_LOG_DOMAIN=\"gnc.module\")
+
+TARGET_INCLUDE_DIRECTORIES (gnc-module
+ PRIVATE ${GUILE_INCLUDE_DIRS}
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+INSTALL(TARGETS gnc-module
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+
+INSTALL(FILES ${gnc_module_HEADERS} DESTINATION include/gnucash)
+
+# --- Compile Scheme file(s) ---
+
+SET (gnc_module_SCHEME gnc-module.scm)
+
+SET(GUILE_OUTPUT_DIR gnucash)
+SET(GUILE_MODULES "")
+SET(GUILE_LOAD_DIRS "")
+SET(GUILE_LIBRARY_DIRS "")
+SET(GUILE_DEPENDS gnc-module)
+
+GNC_ADD_SCHEME_TARGETS(scm-gnc-module
+ "${gnc_module_SCHEME}"
+ ${GUILE_OUTPUT_DIR}
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
diff --git a/src/gnome-search/CMakeLists.txt b/src/gnome-search/CMakeLists.txt
new file mode 100644
index 0000000..bad46c5
--- /dev/null
+++ b/src/gnome-search/CMakeLists.txt
@@ -0,0 +1,60 @@
+
+SET (gnome_search_SOURCES
+ gncmod-gnome-search.c
+ gnc-general-search.c
+ dialog-search.c
+ search-account.c
+ search-boolean.c
+ search-core-type.c
+ search-core-utils.c
+ search-date.c
+ search-double.c
+ search-int64.c
+ search-numeric.c
+ search-reconciled.c
+ search-string.c
+)
+
+SET (gnome_search_HEADERS
+ dialog-search.h
+ gnc-general-search.h
+)
+
+SET (gnome_search_noinst_HEADERS
+ search-account.h
+ search-boolean.h
+ search-core-type.h
+ search-core-utils.h
+ search-date.h
+ search-double.h
+ search-int64.h
+ search-numeric.h
+ search-reconciled.h
+ search-string.h
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${gnome_search_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY (gncmod-gnome-search
+ ${gnome_search_SOURCES}
+ ${gnome_search_HEADERS}
+ ${gnome_search_noinst_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gncmod-gnome-search gnc-qof gncmod-gnome-utils ${GTK2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-gnome-search PRIVATE -DG_LOG_DOMAIN=\"gnc.gui.search\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-gnome-search PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+INSTALL(TARGETS gncmod-gnome-search
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+INSTALL(FILES ${gnome_search_HEADERS} DESTINATION include/gnucash)
+
+SET(gnome_search_GLADE dialog-search.glade)
+
+INSTALL(FILES ${gnome_search_GLADE} DESTINATION share/gnucash/gtkbuilder)
diff --git a/src/gnome-utils/CMakeLists.txt b/src/gnome-utils/CMakeLists.txt
new file mode 100644
index 0000000..73f6390
--- /dev/null
+++ b/src/gnome-utils/CMakeLists.txt
@@ -0,0 +1,264 @@
+# Note that src/gnome-utils CANNOT depend on src/gnome!
+
+ADD_SUBDIRECTORY(gschemas)
+ADD_SUBDIRECTORY(gtkbuilder)
+ADD_SUBDIRECTORY(ui)
+
+SET (SWIG_GNOME_UTILS_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnome-utils.c)
+GNC_ADD_SWIG_COMMAND (${SWIG_GNOME_UTILS_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnome-utils.i)
+
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/gschemas/org.gnucash.warnings.gschema.xml.in.in
+ ${CMAKE_CURRENT_BINARY_DIR}/gschemas/org.gnucash.warnings.gschema.xml.in)
+
+SET (WARNINGS_SCHEMA gschemas/org.gnucash.warnings.gschema.xml.in)
+SET (GNC_WARNINGS_C ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.c)
+SET (GNC_WARNINGS_H ${CMAKE_CURRENT_BINARY_DIR}/gnc-warnings.h)
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${GNC_WARNINGS_C}
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${WARNINGS_SCHEMA} make-gnc-warnings-c.xsl
+ COMMAND
+ ${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${GNC_WARNINGS_C} ${CMAKE_CURRENT_SOURCE_DIR}/make-gnc-warnings-c.xsl ${CMAKE_CURRENT_BINARY_DIR}/${WARNINGS_SCHEMA}
+)
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${GNC_WARNINGS_H}
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${WARNINGS_SCHEMA} make-gnc-warnings-h.xsl
+ COMMAND
+ ${LIBXSLT_XSLTPROC_EXECUTABLE} -o ${GNC_WARNINGS_H} ${CMAKE_CURRENT_SOURCE_DIR}/make-gnc-warnings-h.xsl ${CMAKE_CURRENT_BINARY_DIR}/${WARNINGS_SCHEMA}
+)
+
+SET (gnome_utils_SOURCES
+ account-quickfill.c
+ assistant-xml-encoding.c
+ cursors.c
+ dialog-account.c
+ dialog-book-close.c
+ dialog-commodity.c
+ dialog-dup-trans.c
+ dialog-file-access.c
+ dialog-object-references.c
+ dialog-options.c
+ dialog-preferences.c
+ dialog-query-view.c
+ dialog-reset-warnings.c
+ dialog-tax-table.c
+ dialog-totd.c
+ dialog-transfer.c
+ dialog-userpass.c
+ dialog-utils.c
+ gnc-account-sel.c
+ gnc-amount-edit.c
+ gnc-autosave.c
+ gnc-cell-renderer-date.c
+ gnc-cell-renderer-popup.c
+ gnc-cell-renderer-popup-entry.c
+ gnc-combott.c
+ gnc-commodity-edit.c
+ gnc-currency-edit.c
+ gnc-date-delta.c
+ gnc-date-edit.c
+ gnc-date-format.c
+ gnc-dense-cal.c
+ gnc-dense-cal-model.c
+ gnc-dense-cal-store.c
+ gnc-embedded-window.c
+ gnc-file.c
+ gnc-frequency.c
+ gnc-recurrence.c
+ gnc-general-select.c
+ gnc-gnome-utils.c
+ gnc-gobject-utils.c
+ gnc-gtk-utils.c
+ gnc-gui-query.c
+ gnc-icons.c
+ gnc-keyring.c
+ gnc-main-window.c
+ gnc-menu-extensions.c
+ gnc-plugin-file-history.c
+ gnc-plugin-manager.c
+ gnc-plugin-menu-additions.c
+ gnc-plugin-page.c
+ gnc-plugin.c
+ gnc-period-select.c
+ gnc-query-view.c
+ gnc-splash.c
+ gnc-sx-instance-dense-cal-adapter.c
+ gnc-sx-list-tree-model-adapter.c
+ gnc-tree-control-split-reg.c
+ gnc-tree-model.c
+ gnc-tree-model-account-types.c
+ gnc-tree-model-account.c
+ gnc-tree-model-budget.c
+ gnc-tree-model-owner.c
+ gnc-tree-model-commodity.c
+ gnc-tree-model-price.c
+ gnc-tree-model-split-reg.c
+ gnc-tree-util-split-reg.c
+ gnc-tree-view-account.c
+ gnc-tree-view-commodity.c
+ gnc-tree-view-owner.c
+ gnc-tree-view-price.c
+ gnc-tree-view-split-reg.c
+ gnc-tree-view-sx-list.c
+ gnc-tree-view.c
+ ${GNC_WARNINGS_C}
+ gnc-window.c
+ gncmod-gnome-utils.c
+ misc-gnome-utils.c
+ tree-view-utils.c
+ search-param.c
+ print-session.c
+ ${SWIG_GNOME_UTILS_C}
+ swig-gnome-utils.c
+ window-main-summarybar.c
+)
+
+SET(gnome_utils_noinst_HEADERS
+ dialog-tax-table.h
+ gnc-autosave.h
+ gnc-gobject-utils.h
+ gnc-gtk-utils.h
+ search-param.h
+ ${GNC_WARNINGS_H}
+)
+
+SET (gnome_utils_HEADERS
+ account-quickfill.h
+ assistant-xml-encoding.h
+ dialog-account.h
+ dialog-book-close.h
+ dialog-commodity.h
+ dialog-dup-trans.h
+ dialog-file-access.h
+ dialog-preferences.h
+ dialog-object-references.h
+ dialog-options.h
+ dialog-query-view.h
+ dialog-reset-warnings.h
+ dialog-totd.h
+ dialog-transfer.h
+ dialog-utils.h
+ gnc-account-sel.h
+ gnc-amount-edit.h
+ gnc-cell-renderer-date.h
+ gnc-cell-renderer-popup.h
+ gnc-cell-renderer-popup-entry.h
+ gnc-combott.h
+ gnc-commodity-edit.h
+ gnc-currency-edit.h
+ gnc-date-delta.h
+ gnc-date-edit.h
+ gnc-date-format.h
+ gnc-dense-cal.h
+ gnc-dense-cal-model.h
+ gnc-dense-cal-store.h
+ gnc-embedded-window.h
+ gnc-file.h
+ gnc-frequency.h
+ gnc-recurrence.h
+ gnc-general-select.h
+ gnc-gnome-utils.h
+ gnc-gui-query.h
+ gnc-icons.h
+ gnc-keyring.h
+ gnc-main-window.h
+ gnc-menu-extensions.h
+ gnc-plugin-file-history.h
+ gnc-plugin-manager.h
+ gnc-plugin-menu-additions.h
+ gnc-plugin-page.h
+ gnc-plugin.h
+ gnc-period-select.h
+ gnc-query-view.h
+ gnc-splash.h
+ gnc-sx-instance-dense-cal-adapter.h
+ gnc-sx-list-tree-model-adapter.h
+ gnc-tree-control-split-reg.h
+ gnc-tree-model.h
+ gnc-tree-model-account-types.h
+ gnc-tree-model-account.h
+ gnc-tree-model-budget.h
+ gnc-tree-model-owner.h
+ gnc-tree-model-commodity.h
+ gnc-tree-model-price.h
+ gnc-tree-model-split-reg.h
+ gnc-tree-util-split-reg.h
+ gnc-tree-view-account.h
+ gnc-tree-view-commodity.h
+ gnc-tree-view-owner.h
+ gnc-tree-view-price.h
+ gnc-tree-view-split-reg.h
+ gnc-tree-view-sx-list.h
+ gnc-tree-view.h
+ gnc-ui.h
+ gnc-window.h
+ misc-gnome-utils.h
+ tree-view-utils.h
+ print-session.h
+ window-main-summarybar.h
+)
+
+ADD_LIBRARY (gncmod-gnome-utils
+ ${gnome_utils_SOURCES}
+ ${gnome_utils_HEADERS}
+ ${gnome_utils_noinst_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gncmod-gnome-utils gncmod-app-utils gncmod-engine gnc-backend-xml-utils
+ ${GTK2_LDFLAGS} ${GTK_MAC_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-gnome-utils PUBLIC ${GTK_MAC_CFLAGS_OTHER}
+ PRIVATE -DG_LOG_DOMAIN=\"gnc.gui\")
+
+IF (MAC_INTEGRATION)
+ TARGET_COMPILE_OPTIONS(gncmod-gnome-utils PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
+ TARGET_LINK_LIBRARIES(gncmod-gnome-utils ${OSX_EXTRA_LIBRARIES})
+ENDIF(MAC_INTEGRATION)
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-gnome-utils
+ PUBLIC
+ ${GTK2_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ PRIVATE
+ ${GTK_MAC_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+
+INSTALL(TARGETS gncmod-gnome-utils
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+INSTALL(FILES ${gnome_utils_HEADERS} DESTINATION include/gnucash)
+
+
+# Scheme
+
+SET(GUILE_MODULES "")
+SET(GUILE_LOAD_DIRS src/core-utils src/gnc-module src/scm)
+SET(GUILE_LIBRARY_DIRS src/core-utils src/gnc-module)
+SET(GUILE_DEPENDS gncmod-gnome-utils scm-core-utils scm-gnc-module scm-scm)
+
+GNC_ADD_SCHEME_TARGETS(scm-gnome-utils-1
+ gnome-utils.scm
+ gnucash
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
+
+GNC_ADD_SCHEME_TARGETS(scm-gnome-utils-2
+ gnc-menu-extensions.scm
+ ""
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
+ADD_CUSTOM_TARGET(scm-gnome-utils ALL DEPENDS scm-gnome-utils-2 scm-gnome-utils-1)
\ No newline at end of file
diff --git a/src/gnome-utils/gschemas/CMakeLists.txt b/src/gnome-utils/gschemas/CMakeLists.txt
new file mode 100644
index 0000000..376767d
--- /dev/null
+++ b/src/gnome-utils/gschemas/CMakeLists.txt
@@ -0,0 +1,4 @@
+
+SET(gnome_utils_GSCHEMA org.gnucash.history.gschema.xml org.gnucash.warnings.gschema.xml)
+
+ADD_GSCHEMA_TARGETS(gnome-utils-gschema "${gnome_utils_GSCHEMA}")
\ No newline at end of file
diff --git a/src/gnome-utils/gtkbuilder/CMakeLists.txt b/src/gnome-utils/gtkbuilder/CMakeLists.txt
new file mode 100644
index 0000000..168e5c2
--- /dev/null
+++ b/src/gnome-utils/gtkbuilder/CMakeLists.txt
@@ -0,0 +1,11 @@
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/gnome-utils/ui/CMakeLists.txt b/src/gnome-utils/ui/CMakeLists.txt
new file mode 100644
index 0000000..6c9019d
--- /dev/null
+++ b/src/gnome-utils/ui/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/gnome/CMakeLists.txt b/src/gnome/CMakeLists.txt
new file mode 100644
index 0000000..cd8cc47
--- /dev/null
+++ b/src/gnome/CMakeLists.txt
@@ -0,0 +1,149 @@
+
+ADD_SUBDIRECTORY(gschemas)
+ADD_SUBDIRECTORY(gtkbuilder)
+ADD_SUBDIRECTORY(ui)
+
+SET (gnc_gnome_noinst_HEADERS
+ assistant-acct-period.h
+ assistant-hierarchy.h
+ assistant-loan.h
+ assistant-stock-split.h
+ dialog-fincalc.h
+ dialog-find-transactions.h
+ dialog-find-transactions2.h
+ dialog-lot-viewer.h
+ dialog-new-user.h
+ dialog-print-check.h
+ dialog-print-check2.h
+ dialog-progress.h
+ dialog-sx-editor.h
+ dialog-sx-editor2.h
+ dialog-sx-from-trans.h
+ dialog-sx-since-last-run.h
+ gnc-budget-view.h
+ gnc-plugin-account-tree.h
+ gnc-plugin-basic-commands.h
+ gnc-plugin-budget.h
+ gnc-plugin-register.h
+ gnc-plugin-register2.h
+ gnc-plugin-page-account-tree.h
+ gnc-plugin-page-budget.h
+ gnc-plugin-page-sx-list.h
+ gnc-plugin-page-register.h
+ gnc-plugin-page-register2.h
+ gnc-split-reg.h
+ gnc-split-reg2.h
+ reconcile-view.h
+ top-level.h
+ window-reconcile.h
+ window-reconcile2.h
+ window-autoclear.h
+)
+
+SET (SWIG_GNOME_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnome.c)
+GNC_ADD_SWIG_COMMAND (${SWIG_GNOME_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnome.i ${gnc_gnome_HEADERS})
+
+SET (gnc_gnome_SOURCES
+ ${SWIG_GNOME_C}
+ assistant-acct-period.c
+ assistant-hierarchy.c
+ assistant-loan.c
+ assistant-stock-split.c
+ dialog-commodities.c
+ dialog-fincalc.c
+ dialog-find-transactions.c
+ dialog-find-transactions2.c
+ dialog-lot-viewer.c
+ dialog-new-user.c
+ dialog-price-editor.c
+ dialog-price-edit-db.c
+ dialog-print-check.c
+ dialog-print-check2.c
+ dialog-progress.c
+ dialog-sx-editor.c
+ dialog-sx-editor2.c
+ dialog-sx-from-trans.c
+ dialog-sx-since-last-run.c
+ dialog-tax-info.c
+ gnc-budget-view.c
+ gnc-plugin-account-tree.c
+ gnc-plugin-basic-commands.c
+ gnc-plugin-budget.c
+ gnc-plugin-register.c
+ gnc-plugin-register2.c
+ gnc-plugin-page-account-tree.c
+ gnc-plugin-page-budget.c
+ gnc-plugin-page-sx-list.c
+ gnc-plugin-page-register.c
+ gnc-plugin-page-register2.c
+ gnc-split-reg.c
+ gnc-split-reg2.c
+ reconcile-view.c
+ top-level.c
+ window-reconcile.c
+ window-reconcile2.c
+ window-autoclear.c
+)
+
+IF (WIN32)
+ SET (gnc_gnome_SOURCES ${gnc_gnome_SOURCES} ${CMAKE_SOURCE_DIR}/lib/libc/strfmon.c)
+ENDIF(WIN32)
+
+ADD_LIBRARY (gnc-gnome ${gnc_gnome_SOURCES} ${gnc_gnome_noinst_HEADERS})
+
+TARGET_LINK_LIBRARIES(gnc-gnome gncmod-gnome-search gncmod-ledger-core gncmod-report-gnome gncmod-report-system
+ gncmod-register-gnome gncmod-register-core gncmod-engine ${GTK2_LDFLAGS} ${GTK_MAC_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS (gnc-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.gui\" ${GTK_MAC_CFLAGS_OTHER})
+
+TARGET_INCLUDE_DIRECTORIES(gnc-gnome
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+ PRIVATE ${CMAKE_SOURCE_DIR}/src/app-utils/calculation ${GTK_MAC_INCLUDE_DIRS}
+)
+
+
+IF (MAC_INTEGRATION)
+ TARGET_COMPILE_OPTIONS(gnc-gnome PRIVATE ${OSX_EXTRA_COMPILE_FLAGS})
+ TARGET_LINK_LIBRARIES(gnc-gnome ${OSX_EXTRA_LIBRARIES})
+ENDIF(MAC_INTEGRATION)
+
+
+INSTALL(TARGETS gnc-gnome
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+
+# No headers to install
+
+# FIXME: where does LC_ALL=C come from?
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT gnucash.appdata.xml
+ COMMAND ${CMAKE_COMMAND} -E env
+ LC_ALL=C
+ ${PERL_EXECUTABLE} ${INTLTOOL_MERGE} -x -u -c ${CMAKE_SOURCE_DIR}/po/.intltool-merge-cache ${CMAKE_SOURCE_DIR}/po
+ ${CMAKE_CURRENT_SOURCE_DIR}/gnucash.appdata.xml.in gnucash.appdata.xml
+ MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/gnucash.appdata.xml.in
+)
+
+ADD_CUSTOM_TARGET(gnucash-appdata ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml)
+
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.appdata.xml DESTINATION share/appdata)
+
+#=======
+
+CONFIGURE_FILE(gnucash.desktop.in.in gnucash.desktop.in)
+
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT gnucash.desktop
+ COMMAND ${CMAKE_COMMAND} -E env
+ LC_ALL=C
+ ${PERL_EXECUTABLE} ${INTLTOOL_MERGE} -d -u -c ${CMAKE_SOURCE_DIR}/po/.intltool-merge-cache ${CMAKE_SOURCE_DIR}/po
+ gnucash.desktop.in gnucash.desktop
+ MAIN_DEPENDENCY gnucash.desktop.in
+)
+
+ADD_CUSTOM_TARGET(gnucash-desktop ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop)
+
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/gnucash.desktop DESTINATION share/applications)
diff --git a/src/gnome/gschemas/CMakeLists.txt b/src/gnome/gschemas/CMakeLists.txt
new file mode 100644
index 0000000..b0ff4a1
--- /dev/null
+++ b/src/gnome/gschemas/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+SET(gnome_GSCHEMA
+ org.gnucash.dialogs.gschema.xml
+ org.gnucash.dialogs.commodities.gschema.xml
+ org.gnucash.dialogs.checkprinting.gschema.xml
+ org.gnucash.dialogs.reconcile.gschema.xml
+ org.gnucash.dialogs.sxs.gschema.xml
+ org.gnucash.dialogs.totd.gschema.xml
+ org.gnucash.gschema.xml
+ org.gnucash.window.pages.account.tree.gschema.xml
+ org.gnucash.window.pages.gschema.xml
+)
+
+# If you edit one of the above files, you need to rerun cmake.
+# When we can use CONFIGURE_FILE() instead of GNC_CONFIGURE()
+# this issue will go away.
+
+
+ADD_GSCHEMA_TARGETS(gnome-gschema "${gnome_GSCHEMA}")
\ No newline at end of file
diff --git a/src/gnome/gtkbuilder/CMakeLists.txt b/src/gnome/gtkbuilder/CMakeLists.txt
new file mode 100644
index 0000000..025e0bf
--- /dev/null
+++ b/src/gnome/gtkbuilder/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/gnome/ui/CMakeLists.txt b/src/gnome/ui/CMakeLists.txt
new file mode 100644
index 0000000..84f2356
--- /dev/null
+++ b/src/gnome/ui/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/html/CMakeLists.txt b/src/html/CMakeLists.txt
new file mode 100644
index 0000000..1e2f3fa
--- /dev/null
+++ b/src/html/CMakeLists.txt
@@ -0,0 +1,43 @@
+
+SET (html_HEADERS
+ gnc-html-history.h
+ gnc-html.h
+ gnc-html-p.h
+ gnc-html-factory.h
+ gnc-html-webkit.h
+ gnc-html-extras.h
+ gnc-html-webkit-p.h
+)
+
+SET (SWIG_GNC_HTML_C ${CMAKE_CURRENT_BINARY_DIR}/swig-gnc-html.c)
+GNC_ADD_SWIG_COMMAND (${SWIG_GNC_HTML_C} ${CMAKE_CURRENT_SOURCE_DIR}/gnc-html.i ${gncmod_html_HEADERS})
+
+SET (html_SOURCES
+ gncmod-html.c
+ gnc-html.c
+ gnc-html-history.c
+ gnc-html-factory.c
+ gnc-html-webkit.c
+ ${SWIG_GNC_HTML_C}
+)
+
+ADD_LIBRARY (gncmod-html
+ ${html_SOURCES}
+ ${html_HEADERS}
+)
+
+TARGET_LINK_LIBRARIES(gncmod-html gnc-qof gnc-module gncmod-gnome-utils ${WEBKIT_LDFLAGS} ${GUILE_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-html PRIVATE -DG_LOG_DOMAIN=\"gnc.html\")
+
+
+TARGET_INCLUDE_DIRECTORIES (gncmod-html
+ PUBLIC ${WEBKIT_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+INSTALL(TARGETS gncmod-html
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+INSTALL(FILES ${html_HEADERS} DESTINATION include/gnucash)
\ No newline at end of file
diff --git a/src/import-export/CMakeLists.txt b/src/import-export/CMakeLists.txt
index 5f93071..55c7fad 100644
--- a/src/import-export/CMakeLists.txt
+++ b/src/import-export/CMakeLists.txt
@@ -1,43 +1,77 @@
# CMakeLists.txt for src/import-export
# ############################################################
-
IF (WITH_AQBANKING)
- ADD_SUBDIRECTORY (aqb)
-ENDIF (WITH_AQBANKING)
-
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.import\")
-
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
-#INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-#INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for pow.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-module.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/app-utils)
-
-SET (libgnc_import_SOURCES
+ ADD_SUBDIRECTORY(aqb)
+ENDIF(WITH_AQBANKING)
+ADD_SUBDIRECTORY(csv-exp)
+ADD_SUBDIRECTORY(csv-imp)
+ADD_SUBDIRECTORY(gschemas)
+ADD_SUBDIRECTORY(log-replay)
+IF (WITH_OFX)
+ ADD_SUBDIRECTORY(ofx)
+ENDIF(WITH_OFX)
+ADD_SUBDIRECTORY(qif)
+ADD_SUBDIRECTORY(qif-imp)
+
+
+SET (generic_import_SOURCES
+ import-account-matcher.c
+ import-commodity-matcher.c
+ import-backend.c
+ import-format-dialog.c
+ import-match-picker.c
+ import-parse.c
import-utilities.c
import-settings.c
- import-match-map.c
+ import-main-matcher.c
+ gncmod-generic-import.c
)
# Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${libgnc_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+SET_SOURCE_FILES_PROPERTIES (${generic_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
-SET (libgnc_import_HEADERS
- import-utilities.h
+SET (generic_import_HEADERS
+ import-parse.h
+)
+
+SET (generic_import_noinst_HEADERS
+ import-account-matcher.h
+ import-backend.h
+ import-commodity-matcher.h
+ import-main-matcher.h
+ import-match-picker.h
import-settings.h
- import-match-map.h
+ import-utilities.h
+)
+
+ADD_LIBRARY (gncmod-generic-import
+ ${generic_import_SOURCES}
+ ${generic_import_HEADERS}
+ ${generic_import_noinst_HEADERS}
)
-ADD_LIBRARY (gnc-import
- ${libgnc_import_SOURCES}
- ${libgnc_import_HEADERS}
- )
+TARGET_LINK_LIBRARIES(gncmod-generic-import gncmod-gnome-utils gncmod-engine ${GTK2_LDFLAGS} ${GLIB2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS (gncmod-generic-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-generic-import PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+
+INSTALL(TARGETS gncmod-generic-import
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin
+)
+
+INSTALL(FILES ${generic_import_HEADERS} DESTINATION include/gnucash)
+
+SET(generic_import_GLADE dialog-import.glade)
+
+INSTALL(FILES ${generic_import_GLADE} DESTINATION share/gnucash/gtkbuilder)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${generic_import_GLADE}
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+ENDIF()
diff --git a/src/import-export/aqb/CMakeLists.txt b/src/import-export/aqb/CMakeLists.txt
index 2957afb..9aa5902 100644
--- a/src/import-export/aqb/CMakeLists.txt
+++ b/src/import-export/aqb/CMakeLists.txt
@@ -1,41 +1,76 @@
# CMakeLists.txt for src/import-export/aqbanking
-# ############################################################
-
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"gnc.import.aqbanking\")
-
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${GCONF2_INCLUDE_DIRS})
-#INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-#INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-#INCLUDE_DIRECTORIES (${GUILE_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${GWENHYWFAR_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${AQBANKING_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/src ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for pow.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src ) # for gnc-ui.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/libqof/qof) # for qof.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/gnc-module) # for gnc-module.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/core-utils) # for gnc-glib-utils.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/engine)
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src/app-utils)
-
-SET (libgnc_aqbanking_SOURCES
+ADD_SUBDIRECTORY(gschemas)
+
+
+SET (aqbanking_SOURCES
+ dialog-ab-trans.c
+ dialog-ab-daterange.c
+ assistant-ab-initial.c
+ gnc-ab-getbalance.c
+ gnc-ab-gettrans.c
gnc-ab-kvp.c
-# gnc-ab-utils.c
-# gnc-gwen-gui.c
+ gnc-ab-transfer.c
+ gnc-ab-utils.c
+ gnc-file-aqb-import.c
+ gnc-gwen-gui.c
+ gnc-plugin-aqbanking.c
+ gncmod-aqbanking.c
)
# Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${libgnc_aqbanking_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+SET_SOURCE_FILES_PROPERTIES (${aqbanking_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
-SET (libgnc_aqbanking_HEADERS
+SET (aqbanking_noinst_HEADERS
+ dialog-ab-trans.h
+ dialog-ab-daterange.h
+ assistant-ab-initial.h
+ gnc-ab-getbalance.h
+ gnc-ab-gettrans.h
gnc-ab-kvp.h
-# gnc-ab-utils.h
-# gnc-gwen-gui.h
+ gnc-ab-transfer.h
+ gnc-ab-utils.h
+ gnc-file-aqb-import.h
+ gnc-gwen-gui.h
+ gnc-plugin-aqbanking.h
)
-ADD_LIBRARY (gnc-aqbanking
- ${libgnc_aqbanking_SOURCES}
- ${libgnc_aqbanking_HEADERS}
+ADD_LIBRARY (gncmod-aqbanking
+ ${aqbanking_SOURCES}
+ ${aqbanking_noinst_HEADERS}
)
+
+SET(AQB_EXPORT_SYMBOLS "")
+IF (WIN32)
+ SET(AQB_EXPORT_SYMBOLS "-Wl,--export-all-symbols")
+ENDIF()
+
+TARGET_LINK_LIBRARIES(gncmod-aqbanking gnc-gnome gncmod-gnome-utils gncmod-generic-import gncmod-register-core
+ gncmod-register-gnome gncmod-ledger-core gncmod-engine gnc-qof ${AQB_EXPORT_SYMBOLS} ${AQBANKING_LDFLAGS} ${GWENHYWFAR_LDFLAGS}
+ ${GWENGUI_GTK2_LDFLAGS} ${GNOME_LDFLAGS} ${KTOBLZCHECK_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-aqbanking PRIVATE -DG_LOG_DOMAIN=\"gnc.import.aqbanking\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-aqbanking PRIVATE ${AQBANKING_INCLUDE_DIRS}
+ ${GWENHYWFAR_INCLUDE_DIRS} ${KTOBLZCHECK_INCLUDE_DIRS})
+
+INSTALL(TARGETS gncmod-aqbanking
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install
+
+SET(aqbanking_GLADE assistant-ab-initial.glade dialog-ab.glade)
+
+SET(aqbanking_UI gnc-plugin-aqbanking-ui.xml)
+
+INSTALL(FILES ${aqbanking_GLADE} DESTINATION share/gnucash/gtkbuilder)
+
+INSTALL(FILES ${aqbanking_UI} DESTINATION share/gnucash/ui)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${aqbanking_UI}
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+ FILE(COPY ${aqbanking_GLADE}
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+ENDIF()
\ No newline at end of file
diff --git a/src/import-export/aqb/gschemas/CMakeLists.txt b/src/import-export/aqb/gschemas/CMakeLists.txt
new file mode 100644
index 0000000..d2c036f
--- /dev/null
+++ b/src/import-export/aqb/gschemas/CMakeLists.txt
@@ -0,0 +1,4 @@
+
+SET(aqb_GSCHEMA org.gnucash.dialogs.import.hbci.gschema.xml)
+
+ADD_GSCHEMA_TARGETS(aqb-gschema "${aqb_GSCHEMA}")
\ No newline at end of file
diff --git a/src/import-export/csv-exp/CMakeLists.txt b/src/import-export/csv-exp/CMakeLists.txt
new file mode 100644
index 0000000..5926d59
--- /dev/null
+++ b/src/import-export/csv-exp/CMakeLists.txt
@@ -0,0 +1,47 @@
+ADD_SUBDIRECTORY(gschemas)
+
+SET(csv_export_SOURCES
+ gncmod-csv-export.c
+ gnc-plugin-csv-export.c
+ assistant-csv-export.c
+ csv-tree-export.c
+ csv-transactions-export.c
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${csv_export_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+SET(csv_export_noinst_HEADERS
+ gnc-plugin-csv-export.h
+ assistant-csv-export.h
+ csv-tree-export.h
+ csv-transactions-export.h
+)
+
+ADD_LIBRARY(gncmod-csv-export ${csv_export_noinst_HEADERS} ${csv_export_SOURCES})
+
+TARGET_LINK_LIBRARIES(gncmod-csv-export gncmod-register-gnome gncmod-register-core gncmod-ledger-core gncmod-engine
+ gnc-module gncmod-gnome-utils gnc-gnome gncmod-app-utils gnc-core-utils)
+
+TARGET_COMPILE_DEFINITIONS(gncmod-csv-export PRIVATE -DG_LOG_DOMAIN=\"gnc.export.csv\")
+
+INSTALL(TARGETS gncmod-csv-export
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install.
+
+SET(csv_export_GLADE assistant-csv-export.glade)
+
+INSTALL(FILES ${csv_export_GLADE} DESTINATION share/gnucash/gtkbuilder)
+
+SET(csv_export_UI gnc-plugin-csv-export-ui.xml)
+
+INSTALL(FILES ${csv_export_UI} DESTINATION share/gnucash/ui)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${csv_export_UI}
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+ FILE(COPY ${csv_export_GLADE}
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+ENDIF()
\ No newline at end of file
diff --git a/src/import-export/csv-exp/gschemas/CMakeLists.txt b/src/import-export/csv-exp/gschemas/CMakeLists.txt
new file mode 100644
index 0000000..95b32c0
--- /dev/null
+++ b/src/import-export/csv-exp/gschemas/CMakeLists.txt
@@ -0,0 +1,5 @@
+
+SET(csv_exp_GSCHEMA org.gnucash.dialogs.export.csv.gschema.xml)
+
+ADD_GSCHEMA_TARGETS(csv-exp-gschema "${csv_exp_GSCHEMA}")
+
diff --git a/src/import-export/csv-imp/CMakeLists.txt b/src/import-export/csv-imp/CMakeLists.txt
new file mode 100644
index 0000000..dc42986
--- /dev/null
+++ b/src/import-export/csv-imp/CMakeLists.txt
@@ -0,0 +1,68 @@
+ADD_SUBDIRECTORY(gschemas)
+
+SET(csv_import_SOURCES
+ gncmod-csv-import.c
+ assistant-csv-account-import.c
+ assistant-csv-fixed-trans-import.c
+ assistant-csv-trans-import.c
+ gnc-plugin-csv-import.c
+ csv-account-import.c
+ csv-fixed-trans-import.c
+ gnc-csv-account-map.c
+ gnc-csv-model.c
+ gnc-csv-gnumeric-popup.c
+ gnc-csv-trans-settings.c
+ ${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.c
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${csv_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+SET(csv_import_noinst_HEADERS
+ assistant-csv-account-import.h
+ assistant-csv-fixed-trans-import.h
+ assistant-csv-trans-import.h
+ gnc-plugin-csv-import.h
+ csv-account-import.h
+ csv-fixed-trans-import.h
+ gnc-csv-account-map.h
+ gnc-csv-model.h
+ gnc-csv-gnumeric-popup.h
+ gnc-csv-trans-settings.h
+ ${CMAKE_SOURCE_DIR}/lib/stf/stf-parse.h
+)
+
+ADD_LIBRARY(gncmod-csv-import ${csv_import_noinst_HEADERS} ${csv_import_SOURCES})
+
+TARGET_LINK_LIBRARIES(gncmod-csv-import ${GOFFICE_LDFLAGS} gncmod-generic-import gncmod-gnome-utils
+ gncmod-app-utils gncmod-engine gnc-core-utils gnc-module)
+
+
+TARGET_COMPILE_DEFINITIONS(gncmod-csv-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import.csv\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-csv-import PRIVATE
+ ${CMAKE_SOURCE_DIR}/lib ${GOFFICE_INCLUDE_DIRS}
+)
+
+INSTALL(TARGETS gncmod-csv-import
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+# No headers to install
+
+SET(csv_import_GLADE assistant-csv-account-import.glade assistant-csv-fixed-trans-import.glade
+ assistant-csv-trans-import.glade)
+
+INSTALL(FILES ${csv_import_GLADE} DESTINATION share/gnucash/gtkbuilder)
+
+SET(csv_import_UI gnc-plugin-csv-import-ui.xml)
+
+INSTALL(FILES ${csv_import_UI} DESTINATION share/gnucash/ui)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${csv_import_UI}
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+ FILE(COPY ${csv_import_GLADE}
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+ENDIF()
diff --git a/src/import-export/csv-imp/gschemas/CMakeLists.txt b/src/import-export/csv-imp/gschemas/CMakeLists.txt
new file mode 100644
index 0000000..3a7b23d
--- /dev/null
+++ b/src/import-export/csv-imp/gschemas/CMakeLists.txt
@@ -0,0 +1,3 @@
+SET(csv_imp_GSCHEMA org.gnucash.dialogs.import.csv.gschema.xml)
+
+ADD_GSCHEMA_TARGETS(csv-imp-gschema "${csv_imp_GSCHEMA}")
\ No newline at end of file
diff --git a/src/import-export/gschemas/CMakeLists.txt b/src/import-export/gschemas/CMakeLists.txt
new file mode 100644
index 0000000..958269e
--- /dev/null
+++ b/src/import-export/gschemas/CMakeLists.txt
@@ -0,0 +1,4 @@
+
+SET(generic_import_GSCHEMA org.gnucash.dialogs.import.generic.gschema.xml)
+
+ADD_GSCHEMA_TARGETS(generic-import-gschema "${generic_import_GSCHEMA}")
\ No newline at end of file
diff --git a/src/import-export/log-replay/CMakeLists.txt b/src/import-export/log-replay/CMakeLists.txt
new file mode 100644
index 0000000..5d72b84
--- /dev/null
+++ b/src/import-export/log-replay/CMakeLists.txt
@@ -0,0 +1,36 @@
+
+SET(log_replay_SOURCES
+ gnc-log-replay.c
+ gnc-plugin-log-replay.c
+ gncmod-log-replay.c
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${log_replay_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+SET(log_replay_noinst_HEADERS
+ gnc-log-replay.h
+ gnc-plugin-log-replay.h
+)
+
+ADD_LIBRARY(gncmod-log-replay ${log_replay_SOURCES} ${log_replay_noinst_HEADERS})
+
+TARGET_LINK_LIBRARIES(gncmod-log-replay gncmod-gnome-utils gncmod-app-utils gncmod-engine
+ gnc-core-utils gnc-module gnc-qof ${GTK2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-log-replay PRIVATE -DG_LOG_DOMAIN=\"gnc.import.log-replay\")
+
+INSTALL(TARGETS gncmod-log-replay
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install.
+
+SET(log_replay_UI gnc-plugin-log-replay-ui.xml)
+
+INSTALL(FILES ${log_replay_UI} DESTINATION share/gnucash/ui)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${log_replay_UI}
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+ENDIF()
\ No newline at end of file
diff --git a/src/import-export/ofx/CMakeLists.txt b/src/import-export/ofx/CMakeLists.txt
new file mode 100644
index 0000000..de0d7ed
--- /dev/null
+++ b/src/import-export/ofx/CMakeLists.txt
@@ -0,0 +1,41 @@
+ADD_SUBDIRECTORY(gschemas)
+
+SET(ofx_SOURCES
+ gnc-ofx-import.c
+ gnc-ofx-kvp.c
+ gncmod-ofx-import.c
+ gnc-plugin-ofx.c
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${ofx_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+SET(ofx_noinst_HEADERS
+ gnc-ofx-import.h
+ gnc-ofx-kvp.h
+ gnc-plugin-ofx.h
+)
+
+ADD_LIBRARY(gncmod-ofx ${ofx_SOURCES} ${ofx_noinst_HEADERS})
+
+TARGET_LINK_LIBRARIES(gncmod-ofx gncmod-generic-import gncmod-engine gncmod-app-utils gnc-core-utils
+ gncmod-gnome-utils gnc-qof ${LIBOFX_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-ofx PRIVATE -DG_LOG_DOMAIN=\"gnc.import.ofx\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-ofx PRIVATE ${LIBOFX_INCLUDE_DIRS})
+
+INSTALL(TARGETS gncmod-ofx
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+SET(ofx_UI gnc-plugin-ofx-ui.xml)
+
+INSTALL(FILES ${ofx_UI} DESTINATION share/gnucash/ui)
+
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${ofx_UI}
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+ENDIF()
\ No newline at end of file
diff --git a/src/import-export/ofx/gschemas/CMakeLists.txt b/src/import-export/ofx/gschemas/CMakeLists.txt
new file mode 100644
index 0000000..9f143ad
--- /dev/null
+++ b/src/import-export/ofx/gschemas/CMakeLists.txt
@@ -0,0 +1,4 @@
+
+set(ofx_GSCHEMA org.gnucash.dialogs.import.ofx.gschema.xml)
+
+ADD_GSCHEMA_TARGETS(ofx-gschema "${ofx_GSCHEMA}")
diff --git a/src/import-export/qif-imp/CMakeLists.txt b/src/import-export/qif-imp/CMakeLists.txt
new file mode 100644
index 0000000..7205543
--- /dev/null
+++ b/src/import-export/qif-imp/CMakeLists.txt
@@ -0,0 +1,90 @@
+# CMakeLists.txt for src/import_export/qif-imp
+
+ADD_SUBDIRECTORY(gschemas)
+
+SET (qif_import_SOURCES
+ dialog-account-picker.c
+ assistant-qif-import.c
+ gnc-plugin-qif-import.c
+ gncmod-qif-import.c
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${qif_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+SET (qif_import_noinst_HEADERS
+ dialog-account-picker.h
+ assistant-qif-import.h
+ gnc-plugin-qif-import.h
+)
+
+ADD_LIBRARY (gncmod-qif-import ${qif_import_SOURCES} ${qif_import_noinst_HEADERS})
+
+TARGET_LINK_LIBRARIES(gncmod-qif-import gncmod-app-utils gncmod-gnome-utils gnc-gnome)
+
+TARGET_COMPILE_DEFINITIONS(gncmod-qif-import PRIVATE -DG_LOG_DOMAIN=\"gnc.import.qif.import\")
+
+INSTALL(TARGETS gncmod-qif-import
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install.
+
+
+# Scheme
+
+SET (qif_import_SCHEME
+ qif-dialog-utils.scm
+ qif-file.scm
+ qif-guess-map.scm
+ qif-merge-groups.scm
+ qif-objects.scm
+ qif-parse.scm
+ qif-to-gnc.scm
+ qif-utils.scm
+ qif-import.scm # yes, included in both SETs
+)
+
+SET(qif_import_SCHEME_2
+ qif-import.scm
+)
+
+SET(GUILE_MODULES "")
+SET(GUILE_LOAD_DIRS src/core-utils src/gnc-module src/scm)
+SET(GUILE_LIBRARY_DIRS src/core-utils src/gnc-module src/gnome)
+SET(GUILE_DEPENDS gncmod-qif-import scm-core-utils scm-gnc-module scm-scm)
+
+GNC_ADD_SCHEME_TARGETS(scm-qif-import-2
+ "${qif_import_SCHEME_2}"
+ "gnucash/import-export"
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-qif-import
+ "${qif_import_SCHEME}"
+ "qif-import"
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
+SET(qif_import_GLADE assistant-qif-import.glade dialog-account-picker.glade)
+
+INSTALL(FILES ${qif_import_GLADE} DESTINATION share/gnucash/gtkbuilder)
+
+SET(qif_import_UI gnc-plugin-qif-import-ui.xml)
+
+INSTALL(FILES ${qif_import_UI} DESTINATION share/gnucash/ui)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${qif_import_UI}
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+ FILE(COPY ${qif_import_GLADE}
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+ENDIF()
\ No newline at end of file
diff --git a/src/import-export/qif-imp/gschemas/CMakeLists.txt b/src/import-export/qif-imp/gschemas/CMakeLists.txt
new file mode 100644
index 0000000..aabed64
--- /dev/null
+++ b/src/import-export/qif-imp/gschemas/CMakeLists.txt
@@ -0,0 +1,4 @@
+
+set(qif_imp_GSCHEMA org.gnucash.dialogs.import.qif.gschema.xml)
+
+ADD_GSCHEMA_TARGETS(qif-imp-gschema "${qif_imp_GSCHEMA}")
diff --git a/src/import-export/qif/CMakeLists.txt b/src/import-export/qif/CMakeLists.txt
new file mode 100644
index 0000000..0bb858a
--- /dev/null
+++ b/src/import-export/qif/CMakeLists.txt
@@ -0,0 +1,33 @@
+
+SET(qif_SOURCES
+ qif-context.c
+ qif-defaults.c
+ qif-file.c
+ qif-objects.c
+ qif-parse.c
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${qif_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+SET(qif_noinst_HEADERS
+ qif-file.h
+ qif-defaults.h
+ qif-import-p.h
+ qif-import.h
+ qif-objects.h
+ qif-objects-p.h
+ qif-parse.h
+)
+
+ADD_LIBRARY(gncmod-qif ${qif_noinst_HEADERS} ${qif_SOURCES})
+
+TARGET_LINK_LIBRARIES(gncmod-qif gncmod-generic-import gncmod-engine gnc-qof ${GLIB2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-qif PRIVATE -DG_LOG_DOMAIN=\"gnc.import.qif\")
+
+INSTALL(TARGETS gncmod-qif
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install.
diff --git a/src/libqof/CMakeLists.txt b/src/libqof/CMakeLists.txt
index 14964f1..ccc8f46 100644
--- a/src/libqof/CMakeLists.txt
+++ b/src/libqof/CMakeLists.txt
@@ -1,41 +1,80 @@
# CMakeLists.txt for src/libqof
-ADD_DEFINITIONS (-DG_LOG_DOMAIN=\"qof\")
-
-INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
-INCLUDE_DIRECTORIES (${LIBINTL_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${REGEX_INCLUDE_PATH})
-INCLUDE_DIRECTORIES (${CMAKE_CURRENT_BINARY_DIR}/.. ) # for config.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/lib/libc) # for strptime.h
-INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/src) # for platform.h
+SET (gnc_qof_HEADERS
+ qof/gnc-aqbanking-templates.h
+ qof/gnc-date-p.h
+ qof/gnc-date.h
+ qof/gnc-numeric.h
+ qof/gnc-datetime.hpp
+ qof/gnc-rational.hpp
+ qof/gnc-timezone.hpp
+ qof/guid.h
+ qof/kvp_frame.hpp
+ qof/kvp-value.hpp
+ qof/qof.h
+ qof/qofbackend-p.h
+ qof/qofbackend.h
+ qof/qofbook.h
+ qof/qofbookslots.h
+ qof/qofchoice.h
+ qof/qofclass.h
+ qof/qofevent.h
+ qof/qofid-p.h
+ qof/qofid.h
+ qof/qofinstance-p.h
+ qof/qofinstance.h
+ qof/qoflog.h
+ qof/qofobject.h
+ qof/qofquery.h
+ qof/qofquerycore.h
+ qof/qofsession.h
+ qof/qofutil.h
+ qof/qof-gobject.h
+ qof/qof-string-cache.h
+)
+SET (gnc_qof_noinst_HEADERS
+ qof/qofbook-p.h
+ qof/qofclass-p.h
+ qof/gnc-date-p.h
+ qof/qofevent-p.h
+ qof/gnc-int128.hpp
+ qof/qofobject-p.h
+ qof/qofquery-p.h
+ qof/qofquerycore-p.h
+ qof/qofsession-p.h
+)
-SET (libgnc_qof_SOURCES
- qof/gnc-date.c
- qof/gnc-numeric.c
- qof/guid.c
- qof/kvp-util.c
- qof/kvp_frame.c
- qof/md5.c
- qof/qofbackend.c
- qof/qofbook.c
- qof/qofchoice.c
- qof/qofclass.c
- qof/qofevent.c
- qof/qofid.c
- qof/qofinstance.c
- qof/qoflog.c
- qof/qofobject.c
- qof/qofquery.c
- qof/qofquerycore.c
- qof/qofreference.c
- qof/qofsession.c
- qof/qofutil.c
- qof/qof-string-cache.c
+SET (gnc_qof_SOURCES
+ qof/gnc-aqbanking-templates.cpp
+ qof/gnc-date.cpp
+ qof/gnc-datetime.cpp
+ qof/gnc-int128.cpp
+ qof/gnc-numeric.cpp
+ qof/gnc-rational.cpp
+ qof/gnc-datetime.cpp
+ qof/gnc-timezone.cpp
+ qof/guid.cpp
+ qof/kvp_frame.cpp
+ qof/kvp-value.cpp
+ qof/qofbackend.cpp
+ qof/qofbook.cpp
+ qof/qofchoice.cpp
+ qof/qofclass.cpp
+ qof/qofevent.cpp
+ qof/qofid.cpp
+ qof/qofinstance.cpp
+ qof/qoflog.cpp
+ qof/qofobject.cpp
+ qof/qofquery.cpp
+ qof/qofquerycore.cpp
+ qof/qofsession.cpp
+ qof/qofutil.cpp
+ qof/qof-string-cache.cpp
)
IF (WIN32)
ADD_DEFINITIONS (-DOS_WIN32)
- SET (libgnc_qof_SOURCES ${libgnc_qof_SOURCES}
- qof/qof-win32.c
+ SET (gnc_qof_SOURCES ${gnc_qof_SOURCES}
+ qof/qof-win32.cpp
../../lib/libc/strptime.c
../../lib/libc/localtime_r.c
../../lib/libc/gmtime_r.c
@@ -43,40 +82,40 @@ IF (WIN32)
ENDIF (WIN32)
# Add dependency on config.h
-SET_SOURCE_FILES_PROPERTIES (${libgnc_qof_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+SET_SOURCE_FILES_PROPERTIES (${gnc_qof_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
-SET (libgnc_qof_HEADERS
- qof/gnc-date-p.h
- qof/gnc-date.h
- qof/gnc-numeric.h
- qof/guid.h
- qof/kvp-util-p.h
- qof/kvp-util.h
- qof/kvp_frame.h
- qof/qof.h
- qof/qofbackend-p.h
- qof/qofbackend.h
- qof/qofbook.h
- qof/qofbookslots.h
- qof/qofchoice.h
- qof/qofclass.h
- qof/qofevent.h
- qof/qofid-p.h
- qof/qofid.h
- qof/qofinstance-p.h
- qof/qofinstance.h
- qof/qoflog.h
- qof/qofobject.h
- qof/qofquery.h
- qof/qofquerycore.h
- qof/qofreference.h
- qof/qofsession.h
- qof/qofutil.h
- qof/qof-gobject.h
- qof/qof-string-cache.h
+ADD_LIBRARY (gnc-qof
+ ${gnc_qof_SOURCES}
+ ${gnc_qof_HEADERS}
+ ${gnc_qof_noinst_HEADERS}
)
-ADD_LIBRARY (qof
- ${libgnc_qof_SOURCES}
- ${libgnc_qof_HEADERS}
- )
+TARGET_LINK_LIBRARIES(gnc-qof ${Boost_DATE_TIME_LIBRARIES} ${REGEX_LDFLAGS} ${GMODULE_LDFLAGS} ${GLIB2_LDFLAGS} ${GOBJECT_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS (gnc-qof PRIVATE -DG_LOG_DOMAIN=\"qof\")
+
+TARGET_INCLUDE_DIRECTORIES (gnc-qof PUBLIC
+ ${CMAKE_BINARY_DIR}/src # for config.h
+ ${CMAKE_SOURCE_DIR}/src # for platform.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/qof
+ ${GLIB2_INCLUDE_DIRS}
+ ${LIBINTL_INCLUDE_PATH}
+ ${REGEX_INCLUDE_PATH}
+ ${CMAKE_SOURCE_DIR}/lib/libc # for strptime.h
+)
+
+INSTALL(TARGETS gnc-qof
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+INSTALL(FILES ${gnc_qof_HEADERS} DESTINATION include/gnucash)
+
+SET(qof_test_HEADERS
+ qof/kvp_frame.hpp
+ qof/qofbook.h
+ qof/qofinstance.h
+ qof/qofobject.h
+ qof/qofsession.h
+)
+
+INSTALL(FILES ${qof_test_HEADERS} DESTINATION libexec/gnucash/src/libqof/qof/test)
diff --git a/src/pixmaps/CMakeLists.txt b/src/pixmaps/CMakeLists.txt
new file mode 100644
index 0000000..2f0fb27
--- /dev/null
+++ b/src/pixmaps/CMakeLists.txt
@@ -0,0 +1,119 @@
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE
+)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE
+ )
+ENDIF()
+
+FOREACH(dir 256x256 128x128 96x96 64x64 48x48)
+ INSTALL(
+ FILES ${CMAKE_CURRENT_SOURCE_DIR}/gnucash-icon-${dir}.png
+ RENAME gnucash-icon.png
+ DESTINATION share/icons/hicolor/${dir}/apps)
+ IF(GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${CMAKE_CURRENT_SOURCE_DIR}/gnucash-icon-${dir}.png
+ DESTINATION ${DATADIR_BUILD}/icons/hicolor/${dir}/apps/gnucash-icon-${dir}.png)
+ ENDIF()
+ENDFOREACH(dir)
+
+INSTALL(
+ FILES ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
+ RENAME gnucash-icon.png
+ DESTINATION share/icons/hicolor/32x32/apps
+)
+
+INSTALL(
+ FILES ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-22x22.png
+ RENAME gnucash-icon.png
+ DESTINATION share/icons/hicolor/22x22/apps
+)
+INSTALL(
+ FILES ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-24x24.png
+ RENAME gnucash-icon.png
+ DESTINATION share/icons/hicolor/24x24/apps
+)
+INSTALL(
+ FILES ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
+ RENAME gnucash-icon.png
+ DESTINATION share/icons/hicolor/16x16/apps
+)
+INSTALL(
+ FILES ${CMAKE_SOURCE_DIR}/art/tango/scalable/gnucash.svg
+ RENAME gnucash-icon.svg
+ DESTINATION share/icons/hicolor/scalable/apps
+)
+INSTALL(
+ FILES ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
+ RENAME gnucash-icon-16x16.png
+ DESTINATION share/gnucash/pixmaps
+)
+INSTALL(
+ FILES ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
+ RENAME gnucash-icon-32x32.png
+ DESTINATION share/gnucash/pixmaps
+)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(
+ COPY ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
+ DESTINATION ${DATADIR_BUILD}/icons/hicolor/32x32/apps
+ )
+ FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/32x32/apps/gnucash.png
+ ${DATADIR_BUILD}/icons/hicolor/32x32/apps/gnucash-icon.png
+ )
+
+ FILE(
+ COPY ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-22x22.png
+ DESTINATION ${DATADIR_BUILD}/icons/hicolor/22x22/apps
+ )
+ FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/22x22/apps/gnucash-22x22.png
+ ${DATADIR_BUILD}/icons/hicolor/22x22/apps/gnucash-icon.png
+ )
+ FILE(
+ COPY ${CMAKE_SOURCE_DIR}/art/tango/22x22/gnucash-24x24.png
+ DESTINATION ${DATADIR_BUILD}/icons/hicolor/24x24/apps
+ )
+ FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/24x24/apps/gnucash-24x24.png
+ ${DATADIR_BUILD}/icons/hicolor/24x24/apps/gnucash-icon.png
+ )
+
+ FILE(
+ COPY ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
+ DESTINATION ${DATADIR_BUILD}/icons/hicolor/16x16/apps
+ )
+ FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/16x16/apps/gnucash.png
+ ${DATADIR_BUILD}/icons/hicolor/16x16/apps/gnucash-icon.png
+ )
+
+ FILE(
+ COPY ${CMAKE_SOURCE_DIR}/art/tango/scalable/gnucash.svg
+ DESTINATION ${DATADIR_BUILD}/icons/hicolor/scalable/apps
+ )
+ FILE(RENAME ${DATADIR_BUILD}/icons/hicolor/scalable/apps/gnucash.svg
+ ${DATADIR_BUILD}/icons/hicolor/scalable/apps/gnucash-icon.svg
+ )
+
+ FILE(
+ COPY ${CMAKE_SOURCE_DIR}/art/tango/16x16/gnucash.png
+ DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
+ )
+ FILE(RENAME ${DATADIR_BUILD}/gnucash/pixmaps/gnucash.png
+ ${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon-16x16.png
+ )
+
+ FILE(
+ COPY ${CMAKE_SOURCE_DIR}/art/tango/32x32/gnucash.png
+ DESTINATION ${DATADIR_BUILD}/gnucash/pixmaps
+ )
+ FILE(RENAME ${DATADIR_BUILD}/gnucash/pixmaps/gnucash.png
+ ${DATADIR_BUILD}/gnucash/pixmaps/gnucash-icon-32x32.png
+ )
+
+ENDIF()
\ No newline at end of file
diff --git a/src/plugins/bi_import/CMakeLists.txt b/src/plugins/bi_import/CMakeLists.txt
new file mode 100644
index 0000000..dc837ae
--- /dev/null
+++ b/src/plugins/bi_import/CMakeLists.txt
@@ -0,0 +1,43 @@
+
+ADD_SUBDIRECTORY(gtkbuilder)
+ADD_SUBDIRECTORY(ui)
+
+SET(bi_import_SOURCES
+ gnc-plugin-bi-import.c
+ gncmod-bi-import.c
+ dialog-bi-import-gui.c
+ dialog-bi-import-helper.c
+ dialog-bi-import.c
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${bi_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+SET(bi_import_noinst_HEADERS
+ gnc-plugin-bi-import.h
+ dialog-bi-import-gui.h
+ dialog-bi-import-helper.h
+ dialog-bi-import.h
+)
+
+ADD_LIBRARY(gncmod-bi_import ${bi_import_noinst_HEADERS} ${bi_import_SOURCES})
+
+TARGET_LINK_LIBRARIES(gncmod-bi_import
+ gncmod-business-gnome
+ gncmod-gnome-utils
+ gncmod-gnome-search
+ gncmod-app-utils
+ gncmod-engine
+ gnc-core-utils
+ gnc-module
+ gnc-qof
+)
+
+TARGET_COMPILE_DEFINITIONS(gncmod-bi_import PRIVATE -DG_LOG_DOMAIN=\"gnc.plugin.bi-import\")
+
+INSTALL(TARGETS gncmod-bi_import
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install.
+
diff --git a/src/plugins/bi_import/gtkbuilder/CMakeLists.txt b/src/plugins/bi_import/gtkbuilder/CMakeLists.txt
new file mode 100644
index 0000000..168e5c2
--- /dev/null
+++ b/src/plugins/bi_import/gtkbuilder/CMakeLists.txt
@@ -0,0 +1,11 @@
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/plugins/bi_import/ui/CMakeLists.txt b/src/plugins/bi_import/ui/CMakeLists.txt
new file mode 100644
index 0000000..6c9019d
--- /dev/null
+++ b/src/plugins/bi_import/ui/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/plugins/customer_import/CMakeLists.txt b/src/plugins/customer_import/CMakeLists.txt
new file mode 100644
index 0000000..75a8c58
--- /dev/null
+++ b/src/plugins/customer_import/CMakeLists.txt
@@ -0,0 +1,32 @@
+ADD_SUBDIRECTORY(gtkbuilder)
+ADD_SUBDIRECTORY(ui)
+
+SET(customer_import_SOURCES
+ gnc-plugin-customer_import.c
+ libgncmod-customer_import.c
+ dialog-customer-import-gui.c
+ dialog-customer-import.c
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${customer_import_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+
+SET(customer_import_noinst_HEADERS
+ gnc-plugin-customer_import.h
+ dialog-customer-import-gui.h
+ dialog-customer-import.h
+)
+
+ADD_LIBRARY(gncmod-customer_import ${customer_import_SOURCES} ${customer_input_noinst_HEADERS})
+
+TARGET_LINK_LIBRARIES(gncmod-customer_import gncmod-business-gnome gncmod-gnome-utils gncmod-app-utils
+ gncmod-engine gnc-core-utils gnc-module gnc-qof ${GLIB2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-customer_import PRIVATE -DG_LOG_DOMAIN=\"gnc.plugin.customer_import\")
+
+INSTALL(TARGETS gncmod-customer_import
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install.
\ No newline at end of file
diff --git a/src/plugins/customer_import/gtkbuilder/CMakeLists.txt b/src/plugins/customer_import/gtkbuilder/CMakeLists.txt
new file mode 100644
index 0000000..1d4d3d1
--- /dev/null
+++ b/src/plugins/customer_import/gtkbuilder/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/plugins/customer_import/ui/CMakeLists.txt b/src/plugins/customer_import/ui/CMakeLists.txt
new file mode 100644
index 0000000..6c9019d
--- /dev/null
+++ b/src/plugins/customer_import/ui/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY .
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
+ENDIF()
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ DESTINATION share/gnucash
+ PATTERN Makefile.* EXCLUDE
+ PATTERN CMakeLists.txt EXCLUDE)
diff --git a/src/quotes/CMakeLists.txt b/src/quotes/CMakeLists.txt
new file mode 100644
index 0000000..d00ec9e
--- /dev/null
+++ b/src/quotes/CMakeLists.txt
@@ -0,0 +1,46 @@
+
+
+
+SET(PERL ${PERL_EXECUTABLE})
+
+SET(_TMPDIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
+FILE(WRITE ${_TMPDIR}/copy_with_perms.cmake
+ "FILE(COPY \${SRC} DESTINATION \${DST}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)"
+)
+
+FOREACH(file gnc-fq-check.in gnc-fq-helper.in gnc-fq-update.in gnc-fq-dump)
+ STRING(REPLACE ".in" "" _OUTPUT_FILE_NAME ${file})
+ GNC_CONFIGURE2(${file} ${_OUTPUT_FILE_NAME})
+ SET(_ABS_OUTPUT_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_OUTPUT_FILE_NAME})
+ INSTALL(PROGRAMS ${_ABS_OUPUT_FILE} DESTINATION bin)
+ IF (GNC_BUILD_AS_INSTALL)
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_ABS_OUTPUT_FILE}
+ APPEND
+ COMMAND ${CMAKE_COMMAND} -D SRC=${_ABS_OUTPUT_FILE}
+ -D DST=${BINDIR_BUILD}
+ -P ${_TMPDIR}/copy_with_perms.cmake
+ )
+ ENDIF()
+ENDFOREACH(file)
+
+SET(_MAN_FILES "")
+FOREACH(file gnc-fq-dump gnc-fq-helper)
+ SET(_POD_INPUT ${CMAKE_CURRENT_BINARY_DIR}/${file})
+ SET(_MAN_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${file}.1)
+ LIST(APPEND _MAN_FILES ${_MAN_OUTPUT})
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${_MAN_OUTPUT}
+ COMMAND
+ ${CMAKE_COMMAND} -E env ${PERL_EXECUTABLE} ${POD2MAN_EXECUTABLE} ${_POD_INPUT} ${_MAN_OUTPUT}
+ DEPENDS ${_POD_INPUT}
+ )
+ENDFOREACH(file)
+
+# I don't bother copying the man pages for GNC_BUILD_AS_INSTALL. I probably should for completeness.
+
+ADD_CUSTOM_TARGET(quotes-man ALL DEPENDS ${_MAN_FILES})
+ADD_CUSTOM_TARGET(quotes-bin ALL DEPENDS gnc-fq-check gnc-fq-update)
+INSTALL(FILES ${_MAN_FILES} DESTINATION share/man/man1)
+
diff --git a/src/register/ledger-core/CMakeLists.txt b/src/register/ledger-core/CMakeLists.txt
new file mode 100644
index 0000000..09b3fbc
--- /dev/null
+++ b/src/register/ledger-core/CMakeLists.txt
@@ -0,0 +1,43 @@
+
+
+SET (ledger_core_SOURCES
+ gnc-ledger-display.c
+ gnc-ledger-display2.c
+ gncmod-ledger-core.c
+ split-register.c
+ split-register-control.c
+ split-register-layout.c
+ split-register-load.c
+ split-register-model.c
+ split-register-model-save.c
+ split-register-util.c
+)
+
+SET (ledger_core_HEADERS
+ gnc-ledger-display.h
+ gnc-ledger-display2.h
+ split-register.h
+ split-register-control.h
+ split-register-layout.h
+ split-register-model.h
+ split-register-model-save.h
+ split-register-p.h
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${ledger_core_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY (gncmod-ledger-core ${ledger_core_SOURCES} ${ledger_core_HEADERS})
+
+TARGET_LINK_LIBRARIES(gncmod-ledger-core gncmod-register-gnome gncmod-register-core gncmod-gnome-utils
+ gncmod-engine ${GTK2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS (gncmod-ledger-core PRIVATE -DG_LOG_DOMAIN=\"gnc.register.ledger\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-ledger-core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+INSTALL(TARGETS gncmod-ledger-core
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install
\ No newline at end of file
diff --git a/src/register/register-core/CMakeLists.txt b/src/register/register-core/CMakeLists.txt
new file mode 100644
index 0000000..c5ab961
--- /dev/null
+++ b/src/register/register-core/CMakeLists.txt
@@ -0,0 +1,59 @@
+
+
+SET (register_core_SOURCES
+ gncmod-register-core.c
+ basiccell.c
+ cell-factory.c
+ cellblock.c
+ formulacell.c
+ gtable.c
+ numcell.c
+ pricecell.c
+ quickfillcell.c
+ recncell.c
+ checkboxcell.c
+ register-common.c
+ table-allgui.c
+ table-control.c
+ table-layout.c
+ table-model.c
+)
+
+
+SET (register_core_HEADERS
+ basiccell.h
+ cell-factory.h
+ cellblock.h
+ combocell.h
+ datecell.h
+ formulacell.h
+ gtable.h
+ numcell.h
+ pricecell.h
+ quickfillcell.h
+ recncell.h
+ checkboxcell.h
+ register-common.h
+ table-allgui.h
+ table-control.h
+ table-layout.h
+ table-model.h
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${register_core_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY (gncmod-register-core ${register_core_SOURCES} ${register_core_HEADERS})
+
+TARGET_LINK_LIBRARIES(gncmod-register-core gncmod-gnome-utils gnc-qof gncmod-app-utils ${GMODULE_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS (gncmod-register-core PRIVATE -DG_LOG_DOMAIN=\"gnc.register.core\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-register-core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+INSTALL(TARGETS gncmod-register-core
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+INSTALL(FILES ${register_core_HEADERS} DESTINATION include/gnucash)
\ No newline at end of file
diff --git a/src/register/register-gnome/CMakeLists.txt b/src/register/register-gnome/CMakeLists.txt
new file mode 100644
index 0000000..9f0a5db
--- /dev/null
+++ b/src/register/register-gnome/CMakeLists.txt
@@ -0,0 +1,58 @@
+
+SET (register_gnome_SOURCES
+ gncmod-register-gnome.c
+ combocell-gnome.c
+ datecell-gnome.c
+ formulacell-gnome.c
+ gnucash-color.c
+ gnucash-cursor.c
+ gnucash-date-picker.c
+ gnucash-grid.c
+ gnucash-header.c
+ gnucash-item-edit.c
+ gnucash-item-list.c
+ gnucash-scrolled-window.c
+ gnucash-sheet.c
+ gnucash-style.c
+ pricecell-gnome.c
+ quickfillcell-gnome.c
+ table-gnome.c
+)
+
+SET (register_gnome_noinst_HEADERS
+ formulacell-gnome.h
+ gnucash-color.h
+ gnucash-cursor.h
+ gnucash-date-picker.h
+ gnucash-grid.h
+ gnucash-header.h
+ gnucash-item-edit.h
+ gnucash-item-list.h
+ gnucash-scrolled-window.h
+ gnucash-sheet.h
+ gnucash-sheetP.h
+ gnucash-style.h
+ pricecell-gnome.h
+ quickfillcell-gnome.h
+ table-gnome.h
+)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${register_gnome_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY (gncmod-register-gnome ${register_gnome_SOURCES} ${register_gnome_noinst_HEADERS})
+
+TARGET_LINK_LIBRARIES(gncmod-register-gnome gncmod-register-core gnc-qof ${GNOMECANVAS_LDFLAGS} ${GTK2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-register-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.register.gnome\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-register-gnome
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
+ PRIVATE ${CMAKE_SOURCE_DIR}/src/register/ledger-core ${GNOMECANVAS_INCLUDE_DIRS}
+)
+
+INSTALL(TARGETS gncmod-register-gnome
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install
\ No newline at end of file
diff --git a/src/report/CMakeLists.txt b/src/report/CMakeLists.txt
new file mode 100644
index 0000000..cb57c20
--- /dev/null
+++ b/src/report/CMakeLists.txt
@@ -0,0 +1,10 @@
+
+ADD_SUBDIRECTORY(business-reports)
+ADD_SUBDIRECTORY(jqplot)
+ADD_SUBDIRECTORY(locale-specific/us)
+ADD_SUBDIRECTORY(report-gnome)
+ADD_SUBDIRECTORY(report-system)
+ADD_SUBDIRECTORY(standard-reports)
+ADD_SUBDIRECTORY(stylesheets)
+ADD_SUBDIRECTORY(utility-reports)
+
diff --git a/src/report/business-reports/CMakeLists.txt b/src/report/business-reports/CMakeLists.txt
new file mode 100644
index 0000000..70687af
--- /dev/null
+++ b/src/report/business-reports/CMakeLists.txt
@@ -0,0 +1,46 @@
+
+SET (business_reports_SCHEME
+ aging.scm
+ customer-summary.scm
+ easy-invoice.scm
+ fancy-invoice.scm
+ taxinvoice.scm
+ receipt.scm
+ invoice.scm
+ job-report.scm
+ owner-report.scm
+ payables.scm
+ receivables.scm
+ balsheet-eg.scm
+ business-reports.scm
+)
+
+SET(business_reports_DATA
+ taxinvoice.eguile.scm
+ taxinvoice.css
+ receipt.eguile.scm
+ receipt.css
+ balsheet-eg.css
+ balsheet-eg.eguile.scm
+)
+
+SET(GUILE_OUTPUT_DIR gnucash/report)
+SET(GUILE_MODULES src/app-utils src/engine src/html src/gnome-utils
+ src/report/report-system src/report/standard-reports)
+SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/scm
+ src/report/business_reports src/report/report-system src/report/standard-reports)
+SET(GUILE_LIBRARY_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report/report-system
+ src/report/standard-reports)
+SET(GUILE_DEPENDS scm-business-reports-links gncmod-standard-reports scm-standard-reports)
+
+GNC_ADD_SCHEME_TARGETS(scm-business-reports
+ "${business_reports_SCHEME}"
+ ${GUILE_OUTPUT_DIR}
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ TRUE
+)
+
+INSTALL(FILES ${business_reports_DATA} DESTINATION ${SCHEME_INSTALLED_SOURCE_DIR}/gnucash/report)
\ No newline at end of file
diff --git a/src/report/jqplot/CMakeLists.txt b/src/report/jqplot/CMakeLists.txt
new file mode 100644
index 0000000..b168ce1
--- /dev/null
+++ b/src/report/jqplot/CMakeLists.txt
@@ -0,0 +1,33 @@
+
+SET(gncjqplot_DATA
+ jquery.min.js
+ jquery.jqplot.js
+ jquery.jqplot.css
+ plugins/jqplot.barRenderer.js
+ plugins/jqplot.BezierCurveRenderer.js
+ plugins/jqplot.blockRenderer.js
+ plugins/jqplot.bubbleRenderer.js
+ plugins/jqplot.canvasAxisLabelRenderer.js
+ plugins/jqplot.canvasAxisTickRenderer.js
+ plugins/jqplot.canvasTextRenderer.js
+ plugins/jqplot.categoryAxisRenderer.js
+ plugins/jqplot.ciParser.js
+ plugins/jqplot.cursor.js
+ plugins/jqplot.dateAxisRenderer.js
+ plugins/jqplot.donutRenderer.js
+ plugins/jqplot.dragable.js
+ plugins/jqplot.enhancedLegendRenderer.js
+ plugins/jqplot.funnelRenderer.js
+ plugins/jqplot.highlighter.js
+ plugins/jqplot.json2.js
+ plugins/jqplot.logAxisRenderer.js
+ plugins/jqplot.mekkoAxisRenderer.js
+ plugins/jqplot.mekkoRenderer.js
+ plugins/jqplot.meterGaugeRenderer.js
+ plugins/jqplot.ohlcRenderer.js
+ plugins/jqplot.pieRenderer.js
+ plugins/jqplot.pointLabels.js
+ plugins/jqplot.trendline.js
+)
+
+INSTALL(FILES ${gncjqplot_DATA} DESTINATION share/gnucash/jqplot)
\ No newline at end of file
diff --git a/src/report/locale-specific/us/CMakeLists.txt b/src/report/locale-specific/us/CMakeLists.txt
new file mode 100644
index 0000000..1945079
--- /dev/null
+++ b/src/report/locale-specific/us/CMakeLists.txt
@@ -0,0 +1,54 @@
+
+
+SET(locale_reports_us_SOURCES
+ gncmod-locale-reports-us.c
+)
+
+ADD_LIBRARY(gncmod-locale-reports-us ${locale_reports_us_SOURCES})
+
+TARGET_LINK_LIBRARIES(gncmod-locale-reports-us gnc-module gncmod-app-utils gncmod-gnome-utils
+ ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-locale-reports-us PRIVATE -DG_LOG_DOMAIN=\"gnc.report.locale.us\")
+
+
+INSTALL(TARGETS gncmod-locale-reports-us
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install
+
+# Scheme
+
+SET(gncmod_local_reports_us_SCHEME_1 taxtxf.scm taxtxf-de_DE.scm)
+
+
+SET(gncmod_local_reports_us_SCHEME_2 us.scm de_DE.scm)
+
+
+SET(GUILE_MODULES src/app-utils src/engine src/gnome-utils src/html src/report/report-system src/tax/us)
+SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report/report-system
+ src/scm src/tax/us)
+SET(GUILE_LIBRARY_DIRS src/engine src/libqof/qof src/app-utils src/core-utils src/gnc-module src/gnome-utils
+ src/html src/report/report-system)
+SET(GUILE_DEPENDS gncmod-html scm-tax-us-1 scm-tax-us-2 scm-report-system-3)
+
+GNC_ADD_SCHEME_TARGETS(scm-report-locale-specific-1
+ "${gncmod_local_reports_us_SCHEME_1}"
+ gnucash/report
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-report-locale-specific-2
+ "${gncmod_local_reports_us_SCHEME_2}"
+ gnucash/report/locale-specific
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "scm-report-locale-specific-1;${GUILE_DEPENDS}"
+ FALSE
+)
\ No newline at end of file
diff --git a/src/report/report-gnome/CMakeLists.txt b/src/report/report-gnome/CMakeLists.txt
new file mode 100644
index 0000000..8df635e
--- /dev/null
+++ b/src/report/report-gnome/CMakeLists.txt
@@ -0,0 +1,77 @@
+
+
+SET (report_gnome_HEADERS
+ dialog-report-column-view.h
+ dialog-custom-report.h
+ dialog-report-style-sheet.h
+ gnc-plugin-page-report.h
+ window-report.h
+)
+
+SET (SWIG_REPORT_GNOME_C ${CMAKE_CURRENT_BINARY_DIR}/swig-report-gnome.c)
+GNC_ADD_SWIG_COMMAND (${SWIG_REPORT_GNOME_C} ${CMAKE_CURRENT_SOURCE_DIR}/report-gnome.i ${report_gnome_HEADERS})
+
+SET (report_gnome_SOURCES
+ ${SWIG_REPORT_GNOME_C}
+ dialog-report-column-view.c
+ dialog-custom-report.c
+ dialog-report-style-sheet.c
+ gnc-plugin-page-report.c
+ gncmod-report-gnome.c
+ window-report.c
+)
+
+ADD_LIBRARY (gncmod-report-gnome
+ ${report_gnome_SOURCES}
+ ${report_gnome_HEADERS}
+)
+TARGET_LINK_LIBRARIES(gncmod-report-gnome gncmod-report-system gncmod-html gncmod-gnome-utils
+ gnc-qof ${GUILE_LDFLAGS} ${GTK2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS (gncmod-report-gnome PRIVATE -DG_LOG_DOMAIN=\"gnc.report.gui\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-report-gnome PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
+
+INSTALL(TARGETS gncmod-report-gnome
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+INSTALL(FILES ${report_gnome_HEADERS} DESTINATION include/gnucash)
+
+# Scheme
+
+SET(report_gnome_SCHEME
+ report-gnome.scm
+)
+
+SET(GUILE_OUTPUT_DIR gnucash/report)
+SET(GUILE_MODULES src/app-utils src/scm src/engine src/gnc-module src/gnome-utils src/reports/report-system src/report/utility-reports)
+SET(GUILE_LOAD_DIRS src/app-utils src/gnc-module src/engine src/scm src/core-utils src/gnome-utils)
+SET(GUILE_LIBRARY_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report-gnome)
+SET(GUILE_DEPENDS gncmod-report-gnome gncmod-engine scm-app-utils scm-gnome-utils scm-core-utils scm-gnc-module scm-scm)
+
+GNC_ADD_SCHEME_TARGETS(scm-report-gnome
+ "${report_gnome_SCHEME}"
+ ${GUILE_OUTPUT_DIR}
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
+SET(report_gnome_GLADE dialog-custom-report.glade dialog-report.glade)
+
+INSTALL(FILES ${report_gnome_GLADE} DESTINATION share/gnucash/gtkbuilder)
+
+SET(report_gnome_UI gnc-plugin-page-report-ui.xml)
+
+INSTALL(FILES ${report_gnome_UI} DESTINATION share/gnucash/ui)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${report_gnome_UI}
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+ FILE(COPY ${report_gnome_GLADE}
+ DESTINATION ${DATADIR_BUILD}/gnucash/gtkbuilder)
+ENDIF()
\ No newline at end of file
diff --git a/src/report/report-system/CMakeLists.txt b/src/report/report-system/CMakeLists.txt
new file mode 100644
index 0000000..33db0fd
--- /dev/null
+++ b/src/report/report-system/CMakeLists.txt
@@ -0,0 +1,107 @@
+
+SET (report_system_HEADERS
+ gnc-report.h
+)
+
+SET (SWIG_REPORT_SYSTEM_C ${CMAKE_CURRENT_BINARY_DIR}/swig-report-system.c)
+GNC_ADD_SWIG_COMMAND (${SWIG_REPORT_SYSTEM_C} ${CMAKE_CURRENT_SOURCE_DIR}/report-system.i ${report_system_HEADERS})
+
+SET (report_system_SOURCES
+ ${SWIG_REPORT_SYSTEM_C}
+ gncmod-report-system.c
+ gnc-report.c
+)
+
+ADD_LIBRARY (gncmod-report-system
+ ${report_system_SOURCES}
+ ${report_system_HEADERS}
+)
+
+TARGET_COMPILE_DEFINITIONS(gncmod-report-system PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
+
+TARGET_LINK_LIBRARIES(gncmod-report-system gnc-module gncmod-app-utils gnc-qof ${GTK2_LDFLAGS} ${GUILE_LDFLAGS})
+
+TARGET_INCLUDE_DIRECTORIES (gncmod-report-system
+ PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PRIVATE ${GTK2_INCLUDE_DIRS}
+)
+
+
+INSTALL(TARGETS gncmod-report-system
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+INSTALL(FILES ${report_system_HEADERS} DESTINATION include/gnucash)
+
+# Scheme
+
+SET (report_system_SCHEME
+ report-system.scm
+ eguile-gnc.scm
+ eguile-utilities.scm
+ eguile-html-utilities.scm
+)
+
+SET (report_system_SCHEME_2
+ collectors.scm
+ list-extras.scm
+ report-collectors.scm
+)
+
+SET (report_system_SCHEME_3
+ commodity-utilities.scm
+ html-acct-table.scm
+ html-barchart.scm
+ html-document.scm
+ html-fonts.scm
+ html-piechart.scm
+ html-scatter.scm
+ html-linechart.scm
+ html-style-info.scm
+ html-style-sheet.scm
+ html-table.scm
+ html-text.scm
+ html-utilities.scm
+ html-jqplot.scm
+ options-utilities.scm
+ report-utilities.scm
+ report.scm
+)
+
+
+SET(GUILE_MODULES src/app-utils src/engine src/html src/gnome-utils)
+SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report/report-system src/scm)
+SET(GUILE_LIBRARY_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils)
+SET(GUILE_DEPENDS gncmod-html gncmod-gnome-utils gncmod-report-system scm-app-utils scm-gnome-utils)
+
+
+GNC_ADD_SCHEME_TARGETS(scm-report-system
+ "${report_system_SCHEME}"
+ "gnucash/report"
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-report-system-2
+ "${report_system_SCHEME_2}"
+ "gnucash/report/report-system"
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ scm-report-system
+ FALSE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-report-system-3
+ "${report_system_SCHEME_3}"
+ ""
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ scm-report-system-2
+ FALSE
+)
+
diff --git a/src/report/standard-reports/CMakeLists.txt b/src/report/standard-reports/CMakeLists.txt
new file mode 100644
index 0000000..53bb1cd
--- /dev/null
+++ b/src/report/standard-reports/CMakeLists.txt
@@ -0,0 +1,84 @@
+
+SET(standard_reports_SOURCES gncmod-standard-reports.c)
+
+ADD_LIBRARY (gncmod-standard-reports ${standard_reports_SOURCES})
+
+TARGET_LINK_LIBRARIES(gncmod-standard-reports gnc-module ${GTK2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-standard-reports PRIVATE -DG_LOG_DOMAIN=\"gnc.report.standard\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-standard-reports PRIVATE ${GUILE_INCLUDE_DIRS})
+
+INSTALL(TARGETS gncmod-standard-reports
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+
+# No headers to install
+
+
+# Scheme
+
+SET (standard_reports_SCHEME standard-reports.scm)
+
+SET (standard_reports_SCHEME_2
+ account-piecharts.scm
+ account-summary.scm
+ advanced-portfolio.scm
+ average-balance.scm
+ balance-sheet.scm
+ budget-balance-sheet.scm
+ budget-barchart.scm
+ budget-flow.scm
+ budget-income-statement.scm
+ budget.scm
+ cash-flow.scm
+ category-barchart.scm
+ daily-reports.scm
+ equity-statement.scm
+ general-journal.scm
+ general-ledger.scm
+ income-statement.scm
+ net-barchart.scm
+ net-linechart.scm
+ portfolio.scm
+ price-scatter.scm
+ register.scm
+ sx-summary.scm
+ transaction.scm
+ trial-balance.scm
+ )
+
+SET(GUILE_MODULES src/app-utils src/engine src/gnome-utils src/html src/report/report-system)
+SET(GUILE_LOAD_DIRS src/app-utils src/engine src/core-utils src/gnc-module src/gnome-utils src/report/report-system src/scm)
+SET(GUILE_LIBRARY_DIRS src/app-utils src/engine src/core-utils src/gnc-module src/gnome-utils src/report/report-system)
+SET(GUILE_DEPENDS gncmod-html scm-app-utils scm-gnome-utils scm-report-system scm-report-system-3)
+
+GNC_ADD_SCHEME_TARGETS(scm-standard-reports
+ "${standard_reports_SCHEME}"
+ "gnucash/report"
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "scm-standard-reports-2;${GUILE_DEPENDS}"
+ TRUE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-standard-reports-2
+ "${standard_reports_SCHEME_2}"
+ "gnucash/report/standard-reports"
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "scm-standard-reports-2-links;${GUILE_DEPENDS}"
+ TRUE
+)
+
+# FIXME: This is a hack since core-utils assumes an autotools build environment.
+
+SET(STD_RPT_DIR ${CMAKE_CURRENT_BINARY_DIR}/gnucash/report)
+FILE(MAKE_DIRECTORY ${STD_RPT_DIR})
+FILE(COPY standard-reports.scm DESTINATION ${STD_RPT_DIR})
+
+FILE(MAKE_DIRECTORY ${STD_RPT_DIR}/standard-reports)
+FILE(COPY ${standard_reports_SCHEME_2} DESTINATION ${STD_RPT_DIR}/standard-reports)
\ No newline at end of file
diff --git a/src/report/stylesheets/CMakeLists.txt b/src/report/stylesheets/CMakeLists.txt
new file mode 100644
index 0000000..8649c37
--- /dev/null
+++ b/src/report/stylesheets/CMakeLists.txt
@@ -0,0 +1,80 @@
+
+SET(stylesheets_SOURCES
+ gnc-plugin-stylesheets.c
+ gncmod-stylesheets.c
+)
+
+SET(stylesheet_noinst_HEADERS
+ gnc-plugin-stylesheets.h
+)
+
+ADD_LIBRARY(gncmod-stylesheets MODULE ${stylesheets_SOURCES} ${stylesheets_noinst_HEADERS})
+
+TARGET_LINK_LIBRARIES(gncmod-stylesheets gncmod-report-gnome gncmod-report-system gncmod-gnome-utils gnc-module
+ gnc-qof ${GUILE_LDFLAGS} ${GTK2_LDFLAGS} ${GLIB2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-stylesheets PRIVATE -DG_LOG_DOMAIN=\"gnc.report.core\")
+
+SET(LIB_DIR lib/gnucash)
+IF (WIN32)
+ SET(LIB_DIR bin)
+ENDIF(WIN32)
+
+
+INSTALL(TARGETS gncmod-stylesheets
+ LIBRARY DESTINATION ${LIB_DIR}
+ ARCHIVE DESTINATION ${LIB_DIR}
+ RUNTIME DESTINATION bin)
+
+# No headers to install
+
+# Scheme
+
+SET(stylesheets_SCHEME_1
+ stylesheet-plain.scm
+ stylesheet-fancy.scm
+ stylesheet-footer.scm
+ stylesheet-easy.scm
+ stylesheet-head-or-tail.scm
+)
+
+SET(stylesheets_SCHEME_2
+ stylesheets.scm
+)
+
+SET(GUILE_OUTPUT_DIR gnucash/report)
+SET(GUILE_MODULES src/app-utils src/engine src/html src/gnome-utils src/report/report-system)
+SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/gnome-utils src/report/report-system src/scm)
+SET(GUILE_LIBRARY_DIRS src/engine src/app-utils src/core-utils src/gnc-module src/gnome-utils src/html src/report/report-system)
+SET(GUILE_DEPENDS gncmod-html scm-app-utils scm-report-system-3)
+
+GNC_ADD_SCHEME_TARGETS(scm-report-stylesheets-1
+ "${stylesheets_SCHEME_1}"
+ ${GUILE_OUTPUT_DIR}
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ TRUE
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-report-stylesheets-2
+ "${stylesheets_SCHEME_2}"
+ ${GUILE_OUTPUT_DIR}
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "scm-report-stylesheets-1;${GUILE_DEPENDS}"
+ TRUE
+)
+
+ADD_CUSTOM_TARGET(scm-report-stylesheets ALL DEPENDS scm-report-stylesheets-1 scm-report-stylesheets-2)
+
+SET(stylesheets_UI gnc-plugin-stylesheets-ui.xml)
+
+INSTALL(FILES ${stylesheets_UI} DESTINATION share/gnucash/ui)
+
+IF (GNC_BUILD_AS_INSTALL)
+ FILE(COPY ${stylesheets_UI}
+ DESTINATION ${DATADIR_BUILD}/gnucash/ui)
+ENDIF()
\ No newline at end of file
diff --git a/src/report/utility-reports/CMakeLists.txt b/src/report/utility-reports/CMakeLists.txt
new file mode 100644
index 0000000..c0110c4
--- /dev/null
+++ b/src/report/utility-reports/CMakeLists.txt
@@ -0,0 +1,55 @@
+
+
+SET(utility_reports_SOURCES
+ gncmod-utility-reports.c
+)
+
+ADD_LIBRARY(gncmod-utility-reports MODULE ${utility_reports_SOURCES})
+
+TARGET_LINK_LIBRARIES(gncmod-utility-reports gnc-module ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
+
+TARGET_COMPILE_DEFINITIONS(gncmod-utility-reports PRIVATE -DG_LOG_DOMAIN=\"gnc.report.util\")
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-utility-reports
+ PRIVATE ${GUILE_INCLUDE_DIRS}
+)
+
+SET(LIB_DIR lib/gnucash)
+IF (WIN32)
+ SET(LIB_DIR bin)
+ENDIF(WIN32)
+
+
+INSTALL(TARGETS gncmod-utility-reports
+ LIBRARY DESTINATION ${LIB_DIR}
+ ARCHIVE DESTINATION ${LIB_DIR}
+ RUNTIME DESTINATION bin)
+
+# Scheme
+
+SET(utility_reports_SCHEME
+ hello-world.scm
+ utility-reports.scm
+ view-column.scm
+ welcome-to-gnucash.scm
+)
+
+SET(GUILE_OUTPUT_DIR gnucash/report)
+SET(GUILE_MODULES src/app-utils src/engine src/gnome-utils src/html src/report/report-system)
+SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module
+ src/gnome-utils src/report/report-system src/scm)
+SET(GUILE_LIBRARY_DIRS src/engine src/app-utils src/core-utils src/gnc-module src/gnome-utils src/html
+ src/report/report-system)
+SET(GUILE_DEPENDS scm-utility-reports-links scm-app-utils scm-report-system-3)
+
+GNC_ADD_SCHEME_TARGETS(scm-utility-reports
+ "${utility_reports_SCHEME}"
+ ${GUILE_OUTPUT_DIR}
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ TRUE
+)
+
+
diff --git a/src/scm/CMakeLists.txt b/src/scm/CMakeLists.txt
new file mode 100644
index 0000000..5cd7fe0
--- /dev/null
+++ b/src/scm/CMakeLists.txt
@@ -0,0 +1,66 @@
+ADD_SUBDIRECTORY(gnumeric)
+
+SET (BUILD_CONFIG_SCM ${CMAKE_CURRENT_BINARY_DIR}/build-config.scm)
+
+SET (scm_SCHEME_4
+ substring-search.scm
+ xml-generator.scm
+)
+
+# We need to replace a couple of variables in build-config.scm. Normally, I
+# would use CONFIGURE_FILE to do this. But this scheme files is using a different
+# replacement marking scheme ("@-", "-@") than the usual one with just "@"
+# that CONFIGURE_FILE expects.
+
+# FIXME: ${BUILD_CONFIG_SCM} needs a rule to cause it to be generated, I think.
+
+IF (HAVE_GUILE1)
+ GNC_CONFIGURE(build-config.scm.in build-config.scm)
+ELSE()
+ GNC_CONFIGURE2(build-config.scm.in build-config.scm)
+ENDIF()
+
+# CONFIGURE_FILE(build-config.scm.in ${BUILD_CONFIG_SCM})
+
+SET(GUILE_MODULES "")
+SET(GUILE_LOAD_DIRS src/core-utils src/gnc-module)
+SET(GUILE_LIBRARY_DIRS src/core-utils src/gnc-module)
+SET(GUILE_DEPENDS scm-core-utils scm-gnc-module)
+
+SET(scm_SCHEME_0
+ fin.scm
+ string.scm
+ ${BUILD_CONFIG_SCM}
+ substring-search.scm
+ xml-generator.scm
+)
+
+GNC_ADD_SCHEME_TARGETS(scm-scm-0 "${scm_SCHEME_0}" "" "" "" "" "" FALSE)
+
+GNC_ADD_SCHEME_TARGETS(scm-scm-1 "printf.scm" gnucash "" "" "" "" FALSE)
+
+GNC_ADD_SCHEME_TARGETS(scm-scm-2
+ main.scm
+ gnucash
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "scm-scm-1;${GUILE_DEPENDS}" # requires printf.scm from scm-scm-1 and modules from GUILE_DEPENDS
+ FALSE
+)
+
+# depends on main.scm
+GNC_ADD_SCHEME_TARGETS(scm-scm-3
+ price-quotes.scm
+ gnucash
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "scm-scm-2;scm-scm-0" # depends on build_config.scm
+ FALSE)
+
+ADD_CUSTOM_TARGET(scm-scm ALL DEPENDS scm-scm-3 scm-scm-2 scm-scm-1 scm-scm-0 scm-gnumeric)
+
+INSTALL(FILES config DESTINATION etc/gnucash)
+
+
diff --git a/src/scm/gnumeric/CMakeLists.txt b/src/scm/gnumeric/CMakeLists.txt
new file mode 100644
index 0000000..7c38667
--- /dev/null
+++ b/src/scm/gnumeric/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+
+SET(gnumeric_SCHEME gnumeric-utilities.scm table-utils.scm)
+
+
+SET(GUILE_MODULES "")
+SET(GUILE_LOAD_DIRS "")
+SET(GUILE_LIBRARY_DIRS "")
+SET(GUILE_DEPENDS "")
+
+GNC_ADD_SCHEME_TARGETS(scm-gnumeric
+ "${gnumeric_SCHEME}"
+ gnumeric
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
diff --git a/src/tax/us/CMakeLists.txt b/src/tax/us/CMakeLists.txt
new file mode 100644
index 0000000..0424b78
--- /dev/null
+++ b/src/tax/us/CMakeLists.txt
@@ -0,0 +1,48 @@
+SET(tax_us_SOURCES gncmod-tax-us.c)
+
+# Add dependency on config.h
+SET_SOURCE_FILES_PROPERTIES (${tax_us_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
+
+ADD_LIBRARY(gncmod-tax-us ${tax_us_SOURCES})
+TARGET_LINK_LIBRARIES(gncmod-tax-us gnc-module ${GLIB2_LDFLAGS} ${GUILE_LDFLAGS})
+
+TARGET_INCLUDE_DIRECTORIES(gncmod-tax-us
+ PRIVATE ${CMAKE_BINARY_DIR}/src ${GUILE_INCLUDE_DIRS})
+
+INSTALL(TARGETS gncmod-tax-us
+ LIBRARY DESTINATION lib/gnucash
+ ARCHIVE DESTINATION lib/gnucash
+ RUNTIME DESTINATION bin)
+# No headers to install
+
+# Scheme
+
+SET(gncmod_tax_us_SCHEME_1 txf.scm txf-help.scm txf-de_DE.scm txf-help-de_DE.scm)
+SET(gncmod_tax_us_SCHEME_2 de_DE.scm us.scm)
+
+SET(GUILE_MODULES src/app-utils src/engine)
+SET(GUILE_LOAD_DIRS src/app-utils src/core-utils src/engine src/gnc-module src/scm)
+SET(GUILE_LIBRARY_DIRS src/app-utils src/engine src/gnc-module)
+SET(GUILE_DEPENDS scm-app-utils)
+
+GNC_ADD_SCHEME_TARGETS(scm-tax-us-1
+ "${gncmod_tax_us_SCHEME_1}"
+ ""
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+ )
+GNC_ADD_SCHEME_TARGETS(scm-tax-us-2
+ "${gncmod_tax_us_SCHEME_2}"
+ gnucash/tax
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+ )
+
+
+
diff --git a/src/test-core/CMakeLists.txt b/src/test-core/CMakeLists.txt
new file mode 100644
index 0000000..63177b6
--- /dev/null
+++ b/src/test-core/CMakeLists.txt
@@ -0,0 +1,54 @@
+
+SET(test_core_SOURCES
+ test-stuff.c
+ unittest-support.c
+)
+
+SET(test_core_noinst_HEADERS
+ test-stuff.h
+ unittest-support.h
+)
+
+INCLUDE_DIRECTORIES(
+ ${CMAKE_BINARY_DIR}/src
+ ${CMAKE_SOURCE_DIR}/src
+ ${CMAKE_SOURCE_DIR}/src/libqof/qof
+ ${CMAKE_SOURCE_DIR}/src/test-core
+
+ ${GLIB2_INCLUDE_DIRS}
+ ${GUILE_INCLUDE_DIRS}
+)
+
+ADD_LIBRARY(test-core ${test_core_SOURCES} ${test_core_noinst_HEADERS})
+TARGET_LINK_LIBRARIES(test-core gnc-qof ${GLIB2_LDFLAGS})
+
+SET (SWIG_UNITTEST_SUPPORT_GUILE_C ${CMAKE_CURRENT_BINARY_DIR}/swig-unittest-support-guile.c)
+GNC_ADD_SWIG_COMMAND (${SWIG_UNITTEST_SUPPORT_GUILE_C}
+ ${CMAKE_CURRENT_SOURCE_DIR}/unittest-support.i ${test_core_HEADERS})
+
+
+SET(test_core_guile_SOURCES ${SWIG_UNITTEST_SUPPORT_GUILE_C})
+
+ADD_LIBRARY(test-core-guile ${test_core_guile_SOURCES})
+TARGET_LINK_LIBRARIES(test-core-guile test-core ${GUILE_LDFLAGS} ${GLIB2_LDFLAGS})
+
+SET(test_core_SCHEME unittest-support.scm)
+
+SET(GUILE_OUTPUT_DIR gnucash)
+SET(GUILE_MODULES "")
+SET(GUILE_LOAD_DIRS "")
+SET(GUILE_LIBRARY_DIRS src/test-core src/libqof)
+SET(GUILE_DEPENDS test-core-guile)
+
+
+GNC_ADD_SCHEME_TARGETS(scm_test_core
+ ${test_core_SCHEME}
+ ${GUILE_OUTPUT_DIR}
+ "${GUILE_MODULES}"
+ "${GUILE_LOAD_DIRS}"
+ "${GUILE_LIBRARY_DIRS}"
+ "${GUILE_DEPENDS}"
+ FALSE
+)
+
+INSTALL(FILES unittest-support.h DESTINATION libexec/gnucash/src/libqof/qof/test)
\ No newline at end of file
Summary of changes:
CMakeLists.txt | 433 +++++++++++--
accounts/CMakeLists.txt | 67 ++
checks/CMakeLists.txt | 15 +
cmake/CMakeLists.txt | 28 +
cmake/COPYING | 674 +++++++++++++++++++++
cmake/INSTALL | 370 +++++++++++
cmake/README_CMAKE.txt | 218 +++++++
doc/CMakeLists.txt | 72 +++
doc/examples/CMakeLists.txt | 24 +
po/CMakeLists.txt | 48 ++
src/CMakeLists.txt | 98 ++-
src/app-utils/CMakeLists.txt | 162 ++++-
src/backend/dbi/CMakeLists.txt | 61 +-
src/backend/sql/CMakeLists.txt | 38 +-
src/backend/xml/CMakeLists.txt | 154 +++--
src/bin/CMakeLists.txt | 187 ++++++
src/bin/overrides/CMakeLists.txt | 33 +
src/business/business-gnome/CMakeLists.txt | 82 +++
.../business-gnome/gschemas/CMakeLists.txt | 4 +
.../business-gnome/gtkbuilder/CMakeLists.txt | 12 +
src/business/business-gnome/ui/CMakeLists.txt | 12 +
src/business/business-ledger/CMakeLists.txt | 35 ++
src/cmake_modules/GncAddGSchemaTargets.cmake | 49 ++
src/cmake_modules/GncAddSchemeTargets.cmake | 142 +++++
src/cmake_modules/GncConfigure.cmake | 42 ++
src/cmake_modules/GncFindPkgConfig.cmake | 248 ++++++++
src/config.h.cmake.in | 332 +++++++++-
src/core-utils/CMakeLists.txt | 139 +++--
src/engine/CMakeLists.txt | 126 +++-
src/gnc-module/CMakeLists.txt | 58 +-
src/gnome-search/CMakeLists.txt | 60 ++
src/gnome-utils/CMakeLists.txt | 264 ++++++++
src/gnome-utils/gschemas/CMakeLists.txt | 4 +
src/gnome-utils/gtkbuilder/CMakeLists.txt | 11 +
src/gnome-utils/ui/CMakeLists.txt | 12 +
src/gnome/CMakeLists.txt | 149 +++++
src/gnome/gschemas/CMakeLists.txt | 19 +
src/gnome/gtkbuilder/CMakeLists.txt | 12 +
src/gnome/ui/CMakeLists.txt | 12 +
src/html/CMakeLists.txt | 43 ++
src/import-export/CMakeLists.txt | 94 ++-
src/import-export/aqb/CMakeLists.txt | 97 ++-
src/import-export/aqb/gschemas/CMakeLists.txt | 4 +
src/import-export/csv-exp/CMakeLists.txt | 47 ++
src/import-export/csv-exp/gschemas/CMakeLists.txt | 5 +
src/import-export/csv-imp/CMakeLists.txt | 60 ++
src/import-export/csv-imp/gschemas/CMakeLists.txt | 3 +
src/import-export/gschemas/CMakeLists.txt | 4 +
src/import-export/log-replay/CMakeLists.txt | 36 ++
src/import-export/ofx/CMakeLists.txt | 41 ++
src/import-export/ofx/gschemas/CMakeLists.txt | 4 +
src/import-export/qif-imp/CMakeLists.txt | 90 +++
src/import-export/qif-imp/gschemas/CMakeLists.txt | 4 +
src/import-export/qif/CMakeLists.txt | 33 +
src/libqof/CMakeLists.txt | 168 +++--
src/pixmaps/CMakeLists.txt | 119 ++++
src/plugins/bi_import/CMakeLists.txt | 43 ++
src/plugins/bi_import/gtkbuilder/CMakeLists.txt | 11 +
src/plugins/bi_import/ui/CMakeLists.txt | 12 +
src/plugins/customer_import/CMakeLists.txt | 32 +
.../customer_import/gtkbuilder/CMakeLists.txt | 12 +
src/plugins/customer_import/ui/CMakeLists.txt | 12 +
src/quotes/CMakeLists.txt | 48 ++
src/register/ledger-core/CMakeLists.txt | 43 ++
src/register/register-core/CMakeLists.txt | 59 ++
src/register/register-gnome/CMakeLists.txt | 58 ++
src/report/CMakeLists.txt | 10 +
src/report/business-reports/CMakeLists.txt | 43 ++
src/report/jqplot/CMakeLists.txt | 33 +
src/report/locale-specific/us/CMakeLists.txt | 54 ++
src/report/report-gnome/CMakeLists.txt | 77 +++
src/report/report-system/CMakeLists.txt | 107 ++++
src/report/standard-reports/CMakeLists.txt | 84 +++
src/report/stylesheets/CMakeLists.txt | 79 +++
src/report/utility-reports/CMakeLists.txt | 55 ++
src/scm/CMakeLists.txt | 66 ++
src/scm/gnumeric/CMakeLists.txt | 19 +
src/tax/us/CMakeLists.txt | 48 ++
src/test-core/CMakeLists.txt | 54 ++
79 files changed, 6025 insertions(+), 392 deletions(-)
create mode 100644 accounts/CMakeLists.txt
create mode 100644 checks/CMakeLists.txt
create mode 100644 cmake/CMakeLists.txt
create mode 100644 cmake/COPYING
create mode 100644 cmake/INSTALL
create mode 100644 cmake/README_CMAKE.txt
create mode 100644 doc/CMakeLists.txt
create mode 100644 doc/examples/CMakeLists.txt
create mode 100644 po/CMakeLists.txt
create mode 100644 src/bin/CMakeLists.txt
create mode 100644 src/bin/overrides/CMakeLists.txt
create mode 100644 src/business/business-gnome/CMakeLists.txt
create mode 100644 src/business/business-gnome/gschemas/CMakeLists.txt
create mode 100644 src/business/business-gnome/gtkbuilder/CMakeLists.txt
create mode 100644 src/business/business-gnome/ui/CMakeLists.txt
create mode 100644 src/business/business-ledger/CMakeLists.txt
create mode 100644 src/cmake_modules/GncAddGSchemaTargets.cmake
create mode 100644 src/cmake_modules/GncAddSchemeTargets.cmake
create mode 100644 src/cmake_modules/GncConfigure.cmake
create mode 100644 src/cmake_modules/GncFindPkgConfig.cmake
create mode 100644 src/gnome-search/CMakeLists.txt
create mode 100644 src/gnome-utils/CMakeLists.txt
create mode 100644 src/gnome-utils/gschemas/CMakeLists.txt
create mode 100644 src/gnome-utils/gtkbuilder/CMakeLists.txt
create mode 100644 src/gnome-utils/ui/CMakeLists.txt
create mode 100644 src/gnome/CMakeLists.txt
create mode 100644 src/gnome/gschemas/CMakeLists.txt
create mode 100644 src/gnome/gtkbuilder/CMakeLists.txt
create mode 100644 src/gnome/ui/CMakeLists.txt
create mode 100644 src/html/CMakeLists.txt
create mode 100644 src/import-export/aqb/gschemas/CMakeLists.txt
create mode 100644 src/import-export/csv-exp/CMakeLists.txt
create mode 100644 src/import-export/csv-exp/gschemas/CMakeLists.txt
create mode 100644 src/import-export/csv-imp/CMakeLists.txt
create mode 100644 src/import-export/csv-imp/gschemas/CMakeLists.txt
create mode 100644 src/import-export/gschemas/CMakeLists.txt
create mode 100644 src/import-export/log-replay/CMakeLists.txt
create mode 100644 src/import-export/ofx/CMakeLists.txt
create mode 100644 src/import-export/ofx/gschemas/CMakeLists.txt
create mode 100644 src/import-export/qif-imp/CMakeLists.txt
create mode 100644 src/import-export/qif-imp/gschemas/CMakeLists.txt
create mode 100644 src/import-export/qif/CMakeLists.txt
create mode 100644 src/pixmaps/CMakeLists.txt
create mode 100644 src/plugins/bi_import/CMakeLists.txt
create mode 100644 src/plugins/bi_import/gtkbuilder/CMakeLists.txt
create mode 100644 src/plugins/bi_import/ui/CMakeLists.txt
create mode 100644 src/plugins/customer_import/CMakeLists.txt
create mode 100644 src/plugins/customer_import/gtkbuilder/CMakeLists.txt
create mode 100644 src/plugins/customer_import/ui/CMakeLists.txt
create mode 100644 src/quotes/CMakeLists.txt
create mode 100644 src/register/ledger-core/CMakeLists.txt
create mode 100644 src/register/register-core/CMakeLists.txt
create mode 100644 src/register/register-gnome/CMakeLists.txt
create mode 100644 src/report/CMakeLists.txt
create mode 100644 src/report/business-reports/CMakeLists.txt
create mode 100644 src/report/jqplot/CMakeLists.txt
create mode 100644 src/report/locale-specific/us/CMakeLists.txt
create mode 100644 src/report/report-gnome/CMakeLists.txt
create mode 100644 src/report/report-system/CMakeLists.txt
create mode 100644 src/report/standard-reports/CMakeLists.txt
create mode 100644 src/report/stylesheets/CMakeLists.txt
create mode 100644 src/report/utility-reports/CMakeLists.txt
create mode 100644 src/scm/CMakeLists.txt
create mode 100644 src/scm/gnumeric/CMakeLists.txt
create mode 100644 src/tax/us/CMakeLists.txt
create mode 100644 src/test-core/CMakeLists.txt
More information about the gnucash-changes
mailing list