[bt-devel] CMakeLists.txt Patch

Greg Hellings greg.hellings at gmail.com
Thu Sep 11 12:57:15 MST 2008


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_LANG}.qm"
-		DESTINATION "share/bibletime/locale/"
+	INSTALL(FILES
"${CMAKE_CURRENT_SOURCE_DIR}/i18n/messages/bibletime_ui_${MESSAGE_LOCALE_LANG}.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/*.html")
-	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
 )
 ######################################################
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CMakeLists.diff
Type: text/x-diff
Size: 6804 bytes
Desc: not available
Url : http://www.crosswire.org/pipermail/bt-devel/attachments/20080911/02a8710f/attachment-0001.bin 


More information about the bt-devel mailing list