mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-26 19:00:18 -06:00
170 lines
4.4 KiB
CMake
170 lines
4.4 KiB
CMake
# NB: Unit tests which require GSchemas should be made conditional on COMPILE_GSCHEMAS.
|
|
add_subdirectory(test)
|
|
add_subdirectory(mocks)
|
|
|
|
include (GncFindLibm)
|
|
|
|
# Build the library
|
|
|
|
set (app_utils_HEADERS
|
|
QuickFill.h
|
|
file-utils.h
|
|
gnc-basic-gobject.h
|
|
gnc-account-merge.h
|
|
gnc-addr-quickfill.h
|
|
gnc-entry-quickfill.h
|
|
gnc-euro.h
|
|
gnc-gsettings.h
|
|
gnc-help-utils.h
|
|
gnc-prefs-utils.h
|
|
gnc-quotes.hpp
|
|
gnc-state.h
|
|
gnc-ui-util.h
|
|
gnc-ui-balances.h
|
|
)
|
|
|
|
set (app_utils_SOURCES
|
|
QuickFill.c
|
|
file-utils.c
|
|
gnc-account-merge.c
|
|
gnc-addr-quickfill.c
|
|
gnc-entry-quickfill.c
|
|
gnc-euro.c
|
|
gnc-gsettings.cpp
|
|
gnc-prefs-utils.c
|
|
gnc-quotes.cpp
|
|
gnc-state.c
|
|
gnc-ui-util.c
|
|
gnc-ui-balances.c
|
|
)
|
|
|
|
set_source_files_properties (${app_utils_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
|
|
|
|
gnc_check_standard_math_library()
|
|
if (NOT STANDARD_MATH_LIBRARY_FOUND)
|
|
message(FATAL_ERROR "An implementation of the standard C function pow() is required and is supported neither by the C runtime nor libm.so.")
|
|
endif()
|
|
|
|
set(app_utils_ALL_SOURCES ${app_utils_SOURCES} ${app_utils_HEADERS})
|
|
set(app_utils_ALL_LIBRARIES
|
|
gnc-engine
|
|
${Boost_FILESYSTEM_LIBRARY}
|
|
${Boost_PROPERTY_TREE_LIBRARY}
|
|
${GIO_LDFLAGS}
|
|
${LIBXML2_LDFLAGS}
|
|
${LIBXSLT_LDFLAGS}
|
|
${STANDARD_MATH_LIBRARY}
|
|
)
|
|
|
|
set(app_utils_ALL_INCLUDES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/calculation
|
|
${GIO_INCLUDE_DIRS}
|
|
${LIBXML2_INCLUDE_DIRS}
|
|
${LIBXSLT_INCLUDE_DIRS}
|
|
${CMAKE_SOURCE_DIR}/libgnucash/backend
|
|
${CMAKE_SOURCE_DIR}/libgnucash/engine)
|
|
|
|
if (WIN32)
|
|
list(APPEND app_utils_ALL_SOURCES gnc-help-utils.c)
|
|
list(APPEND app_utils_ALL_LIBRARIES ${HTMLHELP_LIBRARY})
|
|
list(APPEND app_utils_ALL_INCLUDES ${HTMLHELP_INCLUDE_PATH})
|
|
endif()
|
|
|
|
|
|
add_library (gnc-app-utils ${app_utils_ALL_SOURCES} ${SWIG_APP_UTILS_GUILE_CPP})
|
|
target_link_libraries(gnc-app-utils ${app_utils_ALL_LIBRARIES})
|
|
|
|
target_include_directories (gnc-app-utils
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${GLIB2_INCLUDE_DIRS}
|
|
PRIVATE
|
|
${app_utils_ALL_INCLUDES}
|
|
)
|
|
target_compile_definitions (gnc-app-utils PRIVATE -DG_LOG_DOMAIN=\"gnc.app-utils\")
|
|
|
|
if (APPLE)
|
|
set_target_properties (gnc-app-utils PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
|
|
endif()
|
|
|
|
install(TARGETS gnc-app-utils
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
)
|
|
|
|
set(expressions_SOURCES
|
|
calculation/expression_parser.c
|
|
calculation/fin.c
|
|
gfec.c
|
|
gnc-exp-parser.c
|
|
gnc-sx-instance-model.c
|
|
)
|
|
|
|
set(expressions_noinstall_HEADERS
|
|
calculation/finvar.h
|
|
calculation/finproto.h
|
|
calculation/fin_spl_protos.h
|
|
calculation/fin_static_proto.h
|
|
)
|
|
set(expressions_HEADERS
|
|
gfec.h
|
|
gnc-exp-parser.h
|
|
gnc-sx-instance-model.h
|
|
)
|
|
|
|
set(expressions_all_sources ${expressions_SOURCES} ${expressions_noinstall_HEADERS} ${expressions_HEADERS})
|
|
|
|
set_source_files_properties(${expressions_SOURCES} PROPERTIES OBJECT_DEPENDS ${CONFIG_H})
|
|
add_library(gnc-expressions
|
|
${expressions_HEADERS}
|
|
${expressions_SOURCES}
|
|
)
|
|
|
|
target_include_directories(gnc-expressions
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${CMAKE_CURRENT_SOURCE_DIR}/calculation
|
|
${CMAKE_SOURCE_DIR}/bindings/guile
|
|
${CMAKE_SOURCE_DIR}/libgnucash/app-utils
|
|
${GUILE_INCLUDE_DIRS}
|
|
${GLIB2_INCLUDE_DIRS}
|
|
PRIVATE
|
|
${CMAKE_SOURCE_DIR}/common
|
|
${CMAKE_BINARY_DIR}/common)
|
|
|
|
target_link_libraries(gnc-expressions
|
|
PUBLIC
|
|
gnc-engine
|
|
gnc-app-utils
|
|
gnucash-guile
|
|
${GUILE_LDFLAGS}
|
|
${GLIB2_LDFLAGS})
|
|
|
|
install(TARGETS gnc-expressions
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
)
|
|
|
|
|
|
install(FILES ${app_utils_HEADERS} ${expressions_HEADERS}
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/gnucash)
|
|
set_local_dist(app_utils_DIST_local
|
|
${app_utils_ALL_SOURCES}
|
|
${app_utils_SCHEME_1}
|
|
${app_utils_SCHEME_1a}
|
|
${app_utils_SCHEME_1b}
|
|
${app_utils_SCHEME_1c}
|
|
${app_utils_SCHEME_2}
|
|
${app_utils_SCHEME_3}
|
|
${expressions_all_sources}
|
|
CMakeLists.txt gnc-help-utils.c)
|
|
|
|
|
|
set(app_utils_DIST
|
|
${app_utils_DIST_local}
|
|
${test_app_utils_DIST}
|
|
${app_utils_mocks_DIST}
|
|
PARENT_SCOPE)
|