[bt-devel] CMakeLists.txt Patch

Martin Gruner mg.pub at gmx.net
Fri Sep 12 09:55:04 MST 2008


Hi Greg,

thanks a lot. I put it in SVN.

Whenever we go away from KDE, MacOS integration will have to be redone, as 
KDE4_ADD_EXECUTABLE will not be available any more.

mg

Am Donnerstag, 11. September 2008 21:57:15 schrieb Greg Hellings:
> Martin,
>
> On Thu, Sep 11, 2008 at 2:43 PM, Martin Gruner <mg.pub at gmx.net> wrote:
> > Hi Greg,
> >
> > thank you for your changes. Can you please update CMakeLists.txt again
> > from SVN and send me your renewed patch again, so that I can apply it on
> > my current source? Sorry for the race-condition. =)
>
> Attached is the .diff file and appended below is its contents (in case
> the list scrubs the attachment).
>
> > BTW, you changed the directory structure to match MacOS requirements. Did
> > you also patch directoryutil.cpp? In its current implementation it
> > requires the current directory structure or will fail because it does not
> > find required directories. I guess this does not work with your new
> > structure out of the box, does it?
>
> No changes to directoryutil.cpp were required.  By placing the
> share/bibletime/* material directly inside of bibletime.app/Contents,
> the files are picked up as being relative to the current install
> directory, using the current code in directoryutil.cpp.  Thus, only
> the CMakeLists.txt had to be changed.
>
> --Greg
>
> > mg
>
> Diff:
> Index: CMakeLists.txt
> 
===================================================================
> --- CMakeLists.txt	(revision 814)
> +++ CMakeLists.txt	(working copy)
> @@ -15,6 +15,8 @@
>  # Find required packages
>  #
>  SET(QT_MIN_VERSION 4.4.0)
> +SET(QT_USE_DBUS 1)
> +SET(QT_USE_QTXML 1)
>  FIND_PACKAGE(Qt4 REQUIRED)
>  #
>  # If cmake says that qdbusxml2cpp is missing, uncomment the following line
> @@ -78,32 +80,30 @@
>  		PROPERTIES
>  			COMPILE_FLAGS "-fexceptions" #Enable exception handling
>  	)
> +	INCLUDE(${QT_USE_FILE})
>  	TARGET_LINK_LIBRARIES(bibletime
>  		${KDE4_KDEUI_LIBS}
>  		${KDE4_KDECORE_LIBS}
>  		${KDE4_KHTML_LIBS}
> -		QtCore
> -		QtGui
> -		QtXml
> -		QtDBus
> +		${QT_LIBRARIES}
>  		${CLUCENE_LIBRARY}
>  		${SWORD_LIBS}
>  	)
>  ELSE (CMAKE_BUILD_TYPE STREQUAL "Release")
> +	SET(CMAKE_BUILD_TYPE "Debug")
>  	KDE4_ADD_EXECUTABLE(bibletime ${bibletime_SOURCES}
> ${bibletime_test_SOURCES}) SET_TARGET_PROPERTIES(bibletime
>  		PROPERTIES
>  			COMPILE_FLAGS "-fexceptions -DBT_ENABLE_TESTING" #Enable exception
> handling and Testing
>  	)
> +	SET(QT_USE_QTTEST 1)
> +	INCLUDE(${QT_USE_FILE})
>  	TARGET_LINK_LIBRARIES(bibletime
>  		${KDE4_KDEUI_LIBS}
>  		${KDE4_KDECORE_LIBS}
>  		${KDE4_KHTML_LIBS}
> -		QtCore
> -		QtGui
> -		QtXml
> -		QtDBus
> -		QtTest
> +		${QT_LIBRARIES}
> +		${QT_LIBRARIES_DEBUG}
>  		${CLUCENE_LIBRARY}
>  		${SWORD_LIBS}
>  	)
> @@ -118,70 +118,102 @@
>
>  ######################################################
>
> -IF (NOT CMAKE_INSTALL_PREFIX)
> +IF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
>  	SET(CMAKE_INSTALL_PREFIX "install/") #install to ./build/install,
> allow override
> -ENDIF (NOT CMAKE_INSTALL_PREFIX)
> +ENDIF (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
>
> -SET(CMAKE_CXX_FLAGS "-W -O2")
> -SET(CMAKE_CXX_FLAGS_DEBUG "-Wall -Werror -O0 -g") #-pedantic-errors
> -SET(CMAKE_CXX_FLAGS_DEBUGFULL "-Wall -Werror -O0 -g") #-pedantic-errors
> +SET(CMAKE_CXX_FLAGS_RELEASE "-W -O2")
> +IF (NOT APPLE)
> +	SET(CMAKE_CXX_FLAGS_DEBUG "-Wall -Werror -pedantic-errors -O0 -g")
> +ELSE (NOT APPLE)
> +	SET(CMAKE_CXX_FLAGS_DEBUG "-Wall -O0 -g")
> +ENDIF (NOT APPLE)
>
> +SET(CMAKE_CXX_FLAGS_DEBUG_BINONLY ${CMAKE_CXX_FLAGS_DEBUG})
> +SET(CMAKE_C_FLAGS_DEBUG_BINONLY ${CMAKE_C_FLAGS_DEBUG})
> +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG_BINONLY ${CMAKE_EXE_LINKER_FLAGS_DEBUG})
> +SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG_BINONLY
> ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}) +MARK_AS_ADVANCED(
> +	CMAKE_CXX_FLAGS_DEBUG_BINONLY
> +	CMAKE_C_FLAGS_DEBUG_BINONLY
> +	CMAKE_EXE_LINKER_FLAGS_DEBUG_BINONLY
> +	CMAKE_SHARED_LINKER_FLAGS_DEBUG_BINONLY
> +)
> +
> +
>  ######################################################
>  # Install files
>  #
> -# main binary
> -INSTALL(TARGETS "bibletime"
> -	DESTINATION "bin/"
> +# main binary - Mac specifics handled by the KDE4_ADD_EXECUTABLE
> +IF (APPLE)
> +	SET (BT_DESTINATION ".")
> +	SET (BT_SHARE_PATH bibletime.app/Contents/)
> +ELSE (APPLE)
> +	SET (BT_DESTINATION "bin/")
> +	SET (BT_SHARE_PATH "")
> +ENDIF (APPLE)
> +INSTALL(TARGETS "bibletime"
> +	DESTINATION "${BT_DESTINATION}"
> +	CONFIGURATIONS Debug Release Debug_Binonly Debugfull
>  )
>  # compiled catalogs
>  FOREACH(MESSAGE_LOCALE_LANG ${MESSAGE_LOCALE_LANGS})
> -	INSTALL(FILES
> "${CMAKE_CURRENT_SOURCE_DIR}/i18n/messages/bibletime_ui_${MESSAGE_LOCALE_LA
>NG}.qm" -		DESTINATION "share/bibletime/locale/"
> +	INSTALL(FILES
> "${CMAKE_CURRENT_SOURCE_DIR}/i18n/messages/bibletime_ui_${MESSAGE_LOCALE_LA
>NG}.qm" +		DESTINATION "${BT_SHARE_PATH}share/bibletime/locale/"
> +		CONFIGURATIONS Debug Release Debugfull
>  	)
>  ENDFOREACH(MESSAGE_LOCALE_LANG ${MESSAGE_LOCALE_LANGS})
>  # icons
>  FILE(GLOB INSTALL_ICONS_LIST
> "${CMAKE_CURRENT_SOURCE_DIR}/pics/icons/*.svg") -INSTALL(FILES
> ${INSTALL_ICONS_LIST}
> -	DESTINATION "share/bibletime/icons/"
> +INSTALL(FILES ${INSTALL_ICONS_LIST}
> +	DESTINATION "${BT_SHARE_PATH}share/bibletime/icons/"
> +	CONFIGURATIONS Debug Release Debugfull
>  )
>  # display templates
>  FILE(GLOB INSTALL_DISPLAY_TEMPLATES_LIST
> ${CMAKE_CURRENT_SOURCE_DIR}/src/display-templates/*.tmpl)
> -INSTALL(FILES ${INSTALL_DISPLAY_TEMPLATES_LIST}
> -	DESTINATION "share/bibletime/display-templates/"
> +INSTALL(FILES ${INSTALL_DISPLAY_TEMPLATES_LIST}
> +	DESTINATION "${BT_SHARE_PATH}share/bibletime/display-templates/"
> +	CONFIGURATIONS Debug Release Debugfull
>  )
>  # splash screen
> -INSTALL(FILES "pics/startuplogo.png"
> -	DESTINATION "share/bibletime/pics/"
> +INSTALL(FILES "pics/startuplogo.png"
> +	DESTINATION "${BT_SHARE_PATH}share/bibletime/pics/"
> +	CONFIGURATIONS Debug Release Debugfull
>  )
>  #handbook (install images from en/ to all languages)
>  FILE(GLOB INSTALL_HANDBOOK_IMAGES
> "${CMAKE_CURRENT_SOURCE_DIR}/docs/handbook/en/html/*.png")
>  FOREACH(HANDBOOK_LOCALE_LANG ${HANDBOOK_LOCALE_LANGS} "en")
>  	FILE(GLOB INSTALL_HANDBOOK_HTML_FILES_${HANDBOOK_LOCALE_LANG}
> "${CMAKE_CURRENT_SOURCE_DIR}/docs/handbook/${HANDBOOK_LOCALE_LANG}/html/*.h
>tml") -	INSTALL(FILES ${INSTALL_HANDBOOK_HTML_FILES_${HANDBOOK_LOCALE_LANG}}
> -		DESTINATION "share/bibletime/docs/handbook/${HANDBOOK_LOCALE_LANG}/"
> +	INSTALL(FILES ${INSTALL_HANDBOOK_HTML_FILES_${HANDBOOK_LOCALE_LANG}}
> +		DESTINATION
> "${BT_SHARE_PATH}share/bibletime/docs/handbook/${HANDBOOK_LOCALE_LANG}/"
> +		CONFIGURATIONS Debug Release Debugfull
>  	)
> -	INSTALL(FILES ${INSTALL_HANDBOOK_IMAGES}
> -		DESTINATION "share/bibletime/docs/handbook/${HANDBOOK_LOCALE_LANG}/"
> +	INSTALL(FILES ${INSTALL_HANDBOOK_IMAGES}
> +		DESTINATION
> "${BT_SHARE_PATH}share/bibletime/docs/handbook/${HANDBOOK_LOCALE_LANG}/"
> +		CONFIGURATIONS Debug Release Debugfull
>  	)
>  ENDFOREACH(HANDBOOK_LOCALE_LANG ${HANDBOOK_LOCALE_LANGS} "en")
>  #howto (does not have images)
>  FOREACH(HOWTO_LOCALE_LANG ${HOWTO_LOCALE_LANGS} "en")
>  	FILE(GLOB INSTALL_HOWTO_HTML_FILES_${HOWTO_LOCALE_LANG}
> "${CMAKE_CURRENT_SOURCE_DIR}/docs/howto/${HOWTO_LOCALE_LANG}/html/*.html")
> -	INSTALL(FILES ${INSTALL_HOWTO_HTML_FILES_${HOWTO_LOCALE_LANG}}
> -		DESTINATION "share/bibletime/docs/howto/${HOWTO_LOCALE_LANG}/"
> +	INSTALL(FILES ${INSTALL_HOWTO_HTML_FILES_${HOWTO_LOCALE_LANG}}
> +		DESTINATION
> "${BT_SHARE_PATH}share/bibletime/docs/howto/${HOWTO_LOCALE_LANG}/"
> +		CONFIGURATIONS Debug Release Debugfull
>  	)
>  ENDFOREACH(HOWTO_LOCALE_LANG ${HOWTO_LOCALE_LANGS} "en")
>  #
>  # Platform specific installation
>  #
>  # LINUX: application icon
> -INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/pics/icons/bibletime.svg"
> -	DESTINATION "share/icons/"
> +INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/pics/icons/bibletime.svg"
> +	DESTINATION "${BT_SHARE_PATH}share/icons/"
> +	CONFIGURATIONS Debug Release Debugfull
>  )
>  # LINUX: desktop file
> 
> CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/platforms/linux/bibletime
>.desktop.cmake" "${CMAKE_CURRENT_BINARY_DIR}/bibletime.desktop")
> -INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/bibletime.desktop"
> -	DESTINATION "share/applications/"
> +INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/bibletime.desktop"
> +	DESTINATION "${BT_SHARE_PATH}share/applications/"
> +	CONFIGURATIONS Debug Release Debugfull
>  )
>  ######################################################




More information about the bt-devel mailing list