project(kcalc) if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) find_package(KDE4) include(KDE4Defaults) include_directories(${KDE4_INCLUDES}) add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) # If definitions like -D_GNU_SOURCE are needed for these checks they # should be added to _KDE4_PLATFORM_DEFINITIONS when it is originally # defined outside this file. Here we include these definitions in # CMAKE_REQUIRED_DEFINITIONS so they will be included in the build of # checks below. set( CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS} ) set(GMP_REQUIRED TRUE) else() set(GMP_REQUIRED FALSE) endif() set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" ${CMAKE_SOURCE_DIR}/cmake/modules) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KDE4_ENABLE_EXCEPTIONS}") add_definitions (-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS) find_package(GMP) macro_log_feature( GMP_FOUND "GMP" "The GNU Multiple Precision Arithmetic Library" "http://gmplib.org/" ${GMP_REQUIRED} "" "Required for building KCalc.") if(NOT GMP_FOUND) if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR}) macro_display_feature_log() else() return() endif() endif(NOT GMP_FOUND) include(CheckTypeSize) include(CheckIncludeFiles) check_include_files(ieeefp.h HAVE_IEEEFP_H) check_type_size("signed long" SIZEOF_SIGNED_LONG) check_type_size("unsigned long" SIZEOF_UNSIGNED_LONG) configure_file(config-kcalc.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kcalc.h ) include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/knumber ${GMP_INCLUDE_DIR} ) ########### next target ############### # Needs absolute paths due to the test program for knumber set(libknumber_la_SRCS ${kcalc_SOURCE_DIR}/knumber/knumber.cpp ${kcalc_SOURCE_DIR}/knumber/knumber_error.cpp ${kcalc_SOURCE_DIR}/knumber/knumber_float.cpp ${kcalc_SOURCE_DIR}/knumber/knumber_fraction.cpp ${kcalc_SOURCE_DIR}/knumber/knumber_integer.cpp ${kcalc_SOURCE_DIR}/knumber/knumber_operators.cpp ) add_subdirectory( knumber ) # add_subdirectory( tests ) set(kcalc_KDEINIT_SRCS ${libknumber_la_SRCS} kcalc.cpp bitbutton.cpp kcalc_bitset.cpp kcalc_button.cpp kcalc_const_button.cpp kcalc_const_menu.cpp kcalc_core.cpp kcalcdisplay.cpp stats.cpp ) kde4_add_ui_files(kcalc_KDEINIT_SRCS kcalc.ui constants.ui colors.ui fonts.ui general.ui) kde4_add_kcfg_files(kcalc_KDEINIT_SRCS kcalc_settings.kcfgc ) kde4_add_app_icon(kcalc_KDEINIT_SRCS "${KDE4_INSTALL_DIR}/share/icons/oxygen/*/apps/accessories-calculator.png") kde4_add_kdeinit_executable( kcalc ${kcalc_KDEINIT_SRCS}) target_link_libraries(kdeinit_kcalc ${QT_QTXML_LIBRARY} ${KDE4_KDEUI_LIBS} ${GMP_LIBRARIES} ${MPFR_LIBRARIES}) install(TARGETS kdeinit_kcalc ${INSTALL_TARGETS_DEFAULT_ARGS}) target_link_libraries( kcalc kdeinit_kcalc ) install(TARGETS kcalc ${INSTALL_TARGETS_DEFAULT_ARGS} ) ########### install files ############### install( PROGRAMS kcalc.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) install( FILES kcalc.kcfg DESTINATION ${KCFG_INSTALL_DIR}) install( FILES kcalcui.rc DESTINATION ${DATA_INSTALL_DIR}/kcalc) install( FILES scienceconstants.xml DESTINATION ${DATA_INSTALL_DIR}/kcalc) install( FILES kcalcrc.upd DESTINATION ${DATA_INSTALL_DIR}/kconf_update) kde4_install_icons( ${ICON_INSTALL_DIR} )