PROJECT(kdesvn) CMAKE_MINIMUM_REQUIRED(VERSION 2.4) SET(BASE_VERSION 1.0.4) OPTION(BUILD_TESTS "Building the tests yes or no (default off)") OPTION(DAILY_BUILD "Generate version number for a daily build (default off)") SET(TESTINGBUILD OFF CACHE BOOL "Enable/Disable special testing flags") IF (TESTINGBUILD) ADD_DEFINITIONS("-DTESTING_RC=\"\\\"\${CMAKE_SOURCE_DIR}/src/kdesvnui.rc\\\"\" -DTESTING_PARTRC=\"\\\"\${CMAKE_SOURCE_DIR}/src/kdesvn_part.rc\\\"\"") ADD_DEFINITIONS("-DFORCE_ASKPASS=\"\\\"\${CMAKE_BINARY_DIR}/bin/kdesvnaskpass\\\"\"") ENDIF (TESTINGBUILD) IF(BUILD_TESTS) ENABLE_TESTING() ENDIF(BUILD_TESTS) SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmakemodules ${CMAKE_SOURCE_DIR}/src/svnqt/cmakemodules) INCLUDE(FindKdeLibs) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/trinity/bin) SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/trinity/lib${LIB_SUFFIX}/trinity) INCLUDE(MacroEnsureVersion) INCLUDE(FindSubversion) INCLUDE(SetupCompiler) INCLUDE(FindSqlite) IF(QT_INCLUDE_DIR) ELSE(QT_INCLUDE_DIR) MESSAGE(STATUS_ERROR "Qt3 package not found--assuming TQt4") SET(QT_INCLUDE_DIR "/usr/include/qt4") ENDIF(QT_INCLUDE_DIR) IF (HAVE_GCC_VISIBILITY) SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden") SET(_KDESVN_EXPORT "__attribute__ ((visibility(\"default\")))") SET(_KDESVN_NOEXPORT "__attribute__ ((visibility(\"hidden\")))") ENDIF (HAVE_GCC_VISIBILITY) INCLUDE_DIRECTORIES ( BEFORE ${CMAKE_SOURCE_DIR}/src/svnqt ) INCLUDE_DIRECTORIES ( ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/svnfrontend ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}/src ${CMAKE_BINARY_DIR}/src/svnfrontend ${CMAKE_BINARY_DIR} ${KDE3_INCLUDE_DIR} ${QT_INCLUDE_DIR} ${APR_INCLUDE_DIR} ${APU_INCLUDE_DIR} ${SUBVERSION_INCLUDE_DIR} ) ADD_DEFINITIONS(${KDE3_DEFINITIONS} ${QT_DEFINITIONS} ${APR_CPP_FLAGS}) IF(CMAKE_BUILD_TYPE MATCHES Debug) # FindKde3 always make a "-O2" into it. That isn't nice. STRING(REGEX REPLACE "-O2 " "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) ENDIF(CMAKE_BUILD_TYPE MATCHES Debug) STRING(REGEX REPLACE "-fno-exceptions " "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/trinity/bin) SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/trinity/lib${LIB_SUFFIX}/trinity) SET(_BASE_LDADD "-L${CMAKE_BINARY_DIR}/trinity/lib${LIB_SUFFIX}") # current version IF (DAILY_BUILD) EXECUTE_PROCESS(COMMAND "date" "+%Y%m%d" OUTPUT_VARIABLE BUILDDATE) STRING(REPLACE "\n" "" BUILDDATE ${BUILDDATE}) SET(VERSION "${BASE_VERSION}.${BUILDDATE}") SET(KDESVN_VERSION "\"${BASE_VERSION}-${BUILDDATE}\"") ELSE(DAILY_BUILD) SET(VERSION "$ENV{KDESVN_VERSION}") IF(NOT VERSION) SET(VERSION ${BASE_VERSION}) ENDIF(NOT VERSION) SET(KDESVN_VERSION \"${VERSION}\") ENDIF(DAILY_BUILD) CONFIGURE_FILE(kdesvn-config.h.in kdesvn-config.h @ONLY) CONFIGURE_FILE(kdesvn.spec.in kdesvn.spec @ONLY) CONFIGURE_FILE(Helperstuff/BuildService/kdesvn.spec.in Helperstuff/BuildService/kdesvn.spec @ONLY) CONFIGURE_FILE(Helperstuff/BuildService/kdesvn.dsc.in Helperstuff/BuildService/kdesvn.dsc @ONLY) CONFIGURE_FILE(Doxyfile.in Doxyfile @ONLY) CONFIGURE_FILE(Doxyfile.svnqt.in Doxyfile.svnqt @ONLY) SET(DIST_EXCLUDE "Helperstuff/pic_design") CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmakemodules/makedist.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/makedist.sh" IMMEDIATE @ONLY) CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmakemodules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") ADD_CUSTOM_TARGET(dist "${CMAKE_BINARY_DIR}/makedist.sh" DEPENDS doc WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) SET(QT_UIC_EXECUTABLE "/usr/bin/uic-tqt") SET(QT_MOC_EXECUTABLE "/usr/bin/tmoc") ADD_SUBDIRECTORY(src) ADD_SUBDIRECTORY(po) ADD_SUBDIRECTORY(doc) FILE(GLOB _POFILES po/*.po) FOREACH(_p ${_POFILES}) SET(POFILES "${_p} ${POFILES}") ENDFOREACH(_p) SET(MESSAGES_DIR ${CMAKE_SOURCE_DIR}/src) CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmakemodules/package_messages.sh.in" "${CMAKE_CURRENT_BINARY_DIR}/package_messages.sh" IMMEDIATE @ONLY) ADD_CUSTOM_TARGET(package-messages "${CMAKE_CURRENT_BINARY_DIR}/package_messages.sh") ADD_CUSTOM_TARGET(apidox "doxygen" "${CMAKE_BINARY_DIR}/Doxyfile" DEPENDS "${CMAKE_BINARY_DIR}/Doxyfile")