summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Schmelzer2011-12-01 13:04:18 +0100
committerSebastian Schmelzer2011-12-01 13:04:18 +0100
commit20bd544eb6b28bc13b7249fc8c5db10d25916513 (patch)
tree0ea26b4a7d967bdf6c38dc5bfe4445879809c7cb
parentmerge with master-team-project (diff)
downloadfbgui-20bd544eb6b28bc13b7249fc8c5db10d25916513.tar.gz
fbgui-20bd544eb6b28bc13b7249fc8c5db10d25916513.tar.xz
fbgui-20bd544eb6b28bc13b7249fc8c5db10d25916513.zip
let cmake find qxt
-rw-r--r--CMakeLists.txt19
-rw-r--r--cmake/FindQxt.cmake111
-rw-r--r--cmake/QxtConfig.cmake117
3 files changed, 242 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bb53f39..8bc7ac6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 2.8)
project(fbgui)
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/")
+
set(QT_MIN_VERSION "4.7.0")
find_package(Qt4 REQUIRED)
if (QT4_FOUND)
@@ -10,11 +12,14 @@ else(QT4_FOUND)
message(FATAL_ERROR "QT4 not found!")
endif(QT4_FOUND)
-#find_package(Qxt REQUIRED)
set(QT_USE_QTNETWORK TRUE)
set(QT_USE_QTWEBKIT TRUE)
+find_package(Qxt REQUIRED)
+SET(QXT_USE_QXTCORE TRUE)
+
+
file(GLOB FBGUI_SOURCES src/fbgui/*.cpp)
file(GLOB FBGUI_MOC_HEADERS src/fbgui/*.h src/common/*.h)
file(GLOB FBGUI_UIS src/fbgui/*.ui)
@@ -28,15 +33,17 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}
./src/common
./build
${QT_INCLUDES}
- /usr/local/Qxt/include/QxtCore
+ ${QXT_INCLUDE_DIRS}
/usr/include/sysfs
/usr/include/libusb-1.0)
include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})
-link_directories(/usr/local/Qxt/lib /usr/lib
- /usr/local/lib)
+link_directories(
+ /usr/lib
+ /usr/local/lib
+)
#add_library(
# /usr/local/Qxt/lib/libQxtCore.so
@@ -50,6 +57,7 @@ QT4_WRAP_CPP(FBGUI_MOC_SOURCES ${FBGUI_MOC_HEADERS})
add_executable(fbgui
${QT_INCLUDES}
+ ${QXT_INCLUDES}
${FBGUI_SOURCES}
${FBGUI_MOC_SOURCES}
${FBGUI_UI_HEADERS}
@@ -57,4 +65,5 @@ add_executable(fbgui
target_link_libraries(fbgui
${QT_LIBRARIES}
- QxtCore qjson sysfs usb-1.0 customdhcpcd nl)
+ ${QXT_LIBRARIES}
+ qjson sysfs usb-1.0 customdhcpcd nl)
diff --git a/cmake/FindQxt.cmake b/cmake/FindQxt.cmake
new file mode 100644
index 0000000..402fb51
--- /dev/null
+++ b/cmake/FindQxt.cmake
@@ -0,0 +1,111 @@
+#############
+## basic FindQxt.cmake
+## This is an *EXTREMELY BASIC* cmake find/config file for
+## those times you have a cmake project and wish to use
+## libQxt.
+##
+## It should be noted that at the time of writing, that
+## I (mschnee) have an extremely limited understanding of the
+## way Find*.cmake files work, but I have attempted to
+## emulate what FindQt4.cmake and a few others do.
+##
+## To enable a specific component, set your QXT_USE_${modname}:
+## SET(QXT_USE_QXTCORE TRUE)
+## SET(QXT_USE_QXTGUI FALSE)
+## Currently available components:
+## QxtCore, QxtGui, QxtNetwork, QxtWeb, QxtSql
+## Auto-including directories are enabled with INCLUDE_DIRECTORIES(), but
+## can be accessed if necessary via ${QXT_INCLUDE_DIRS}
+##
+## To add the libraries to your build, TARGET_LINK_LIBRARIES(), such as...
+## TARGET_LINK_LIBRARIES(YourTargetNameHere ${QXT_LIBRARIES})
+## ...or..
+## TARGET_LINK_LIBRARIES(YourTargetNameHere ${QT_LIBRARIES} ${QXT_LIBRARIES})
+################### TODO:
+## The purpose of this cmake file is to find what components
+## exist, regardless of how libQxt was build or configured, thus
+## it should search/find all possible options. As I am not aware
+## that any module requires anything special to be used, adding all
+## modules to ${QXT_MODULES} below should be sufficient.
+## Eventually, there should be version numbers, but
+## I am still too unfamiliar with cmake to determine how to do
+## version checks and comparisons.
+## At the moment, this cmake returns a failure if you
+## try to use a component that doesn't exist. I don't know how to
+## set up warnings.
+## It would be nice having a FindQxt.cmake and a UseQxt.cmake
+## file like done for Qt - one to check for everything in advance
+
+##############
+
+###### setup
+SET(QXT_MODULES QxtGui QxtWeb QxtZeroConf QxtNetwork QxtSql QxtBerkeley QxtCore)
+SET(QXT_FOUND_MODULES)
+FOREACH(mod ${QXT_MODULES})
+ STRING(TOUPPER ${mod} U_MOD)
+ SET(QXT_${U_MOD}_INCLUDE_DIR NOTFOUND)
+ SET(QXT_${U_MOD}_LIB_DEBUG NOTFOUND)
+ SET(QXT_${U_MOD}_LIB_RELEASE NOTFOUND)
+ SET(QXT_FOUND_${U_MOD} FALSE)
+ENDFOREACH(mod)
+SET(QXT_QXTGUI_DEPENDSON QxtCore)
+SET(QXT_QXTWEB_DEPENDSON QxtCore QxtNetwork)
+SET(QXT_QXTZEROCONF_DEPENDSON QxtCore QxtNetwork)
+SET(QXT_QXTNETWORK_DEPENDSON QxtCore)
+SET(QXT_QXTQSQL_DEPENDSON QxtCore)
+SET(QXT_QXTBERKELEY_DEPENDSON QxtCore)
+
+FOREACH(mod ${QXT_MODULES})
+ STRING(TOUPPER ${mod} U_MOD)
+ FIND_PATH(QXT_${U_MOD}_INCLUDE_DIR ${mod}
+ PATH_SUFFIXES ${mod} include/${mod} Qxt/include/${mod} include/Qxt/${mod} include/qxt/${mod}
+ PATHS
+ ~/Library/Frameworks/
+ /Library/Frameworks/
+ /sw/
+ /usr/local/
+ /usr
+ /opt/local/
+ /opt/csw
+ /opt
+ "C:\\"
+ "C:\\Program Files\\"
+ "C:\\Program Files(x86)\\"
+ NO_DEFAULT_PATH
+ )
+ FIND_LIBRARY(QXT_${U_MOD}_LIB_RELEASE NAME ${mod}
+ PATH_SUFFIXES Qxt/lib64 Qxt/lib lib64 lib qxt/lib64 qxt/lib
+ PATHS
+ /sw
+ /usr/local
+ /usr
+ /opt/local
+ /opt/csw
+ /opt
+ "C:\\"
+ "C:\\Program Files"
+ "C:\\Program Files(x86)"
+ NO_DEFAULT_PATH
+ )
+ FIND_LIBRARY(QXT_${U_MOD}_LIB_DEBUG NAME ${mod}d
+ PATH_SUFFIXES Qxt/lib64 Qxt/lib lib64 lib qxt/lib64 qxt/lib
+ PATHS
+ /sw
+ /usr/local
+ /usr
+ /opt/local
+ /opt/csw
+ /opt
+ "C:\\"
+ "C:\\Program Files"
+ "C:\\Program Files(x86)"
+ NO_DEFAULT_PATH
+ )
+ IF (QXT_${U_MOD}_LIB_RELEASE)
+ SET(QXT_FOUND_MODULES "${QXT_FOUND_MODULES} ${mod}")
+ ENDIF (QXT_${U_MOD}_LIB_RELEASE)
+
+ IF (QXT_${U_MOD}_LIB_DEBUG)
+ SET(QXT_FOUND_MODULES "${QXT_FOUND_MODULES} ${mod}")
+ ENDIF (QXT_${U_MOD}_LIB_DEBUG)
+ENDFOREACH(mod)
diff --git a/cmake/QxtConfig.cmake b/cmake/QxtConfig.cmake
new file mode 100644
index 0000000..d816285
--- /dev/null
+++ b/cmake/QxtConfig.cmake
@@ -0,0 +1,117 @@
+##
+## It should be noted that at the time of writing, that
+## I (mschnee) have an extremely limited understanding of the
+## way Find*.cmake files work, but I have attempted to
+## emulate what FindQt4.cmake and a few others do.
+##
+## To enable a specific component, set your QXT_USE_${modname}:
+## SET(QXT_USE_QXTCORE TRUE)
+## SET(QXT_USE_QXTGUI FALSE)
+## Currently available components:
+## QxtCore, QxtGui, QxtNetwork, QxtWeb, QxtSql
+## Auto-including directories are enabled with INCLUDE_DIRECTORIES(), but
+## can be accessed if necessary via ${QXT_INCLUDE_DIRS}
+##
+## To add the libraries to your build, TARGET_LINK_LIBRARIES(), such as...
+## TARGET_LINK_LIBRARIES(YourTargetNameHere ${QXT_LIBRARIES})
+## ...or..
+## TARGET_LINK_LIBRARIES(YourTargetNameHere ${QT_LIBRARIES} ${QXT_LIBRARIES})
+################### TODO:
+## The purpose of this cmake file is to find what components
+## exist, regardless of how libQxt was build or configured, thus
+## it should search/find all possible options. As I am not aware
+## that any module requires anything special to be used, adding all
+## modules to ${QXT_MODULES} below should be sufficient.
+## Eventually, there should be version numbers, but
+## I am still too unfamiliar with cmake to determine how to do
+## version checks and comparisons.
+## At the moment, this cmake returns a failure if you
+## try to use a component that doesn't exist. I don't know how to
+## set up warnings.
+## It would be nice having a FindQxt.cmake and a UseQxt.cmake
+## file like done for Qt - one to check for everything in advance
+
+##############
+
+###### setup .... if everything depends on core... right?
+SET(QXT_MODULES QxtGui QxtNetwork QxtWork QxtSql QxtCore)
+FOREACH(mod ${QXT_MODULES})
+ STRING(TOUPPER ${mod} U_MOD)
+ SET(QXT_${U_MOD}_INCLUDE_DIR NOTFOUND)
+ SET(QXT_${U_MOD}_LIB_DEBUG NOTFOUND)
+ SET(QXT_${U_MOD}_LIB_RELEASE NOTFOUND)
+ SET(QXT_FOUND_${U_MOD} FALSE)
+ENDFOREACH(mod)
+SET(QXT_QXTGUI_DEPENDSON QxtCore)
+SET(QXT_QXTNETWORK_DEPENDSON QxtCore)
+SET(QXT_QXTWEB_DEPENDSON QxtCore)
+SET(QXT_QXTQSQL_DEPENDSON QxtCore)
+
+FOREACH(mod ${QXT_MODULES})
+ STRING(TOUPPER ${mod} U_MOD)
+ FIND_PATH(QXT_${U_MOD}_INCLUDE_DIR ${mod}
+ /usr/Qxt/include/${mod}
+ /usr/local/Qxt/include/${mod}
+ C:\\libQxt\\include\\${mod}
+ NO_DEFAULT_PATH
+ )
+ FIND_LIBRARY(QXT_${U_MOD}_LIB_RELEASE NAME ${mod}
+ PATHS
+ /usr/Qxt/lib
+ /usr/local/Qxt/lib
+ C:\\libQxt\\lib
+ NO_DEFAULT_PATH
+ )
+ FIND_LIBRARY(QXT_${U_MOD}_LIB_DEBUG NAME ${mod}d
+ PATHS
+ /usr/Qxt/lib
+ /usr/local/Qxt/lib
+ C:\\libQxt\\lib
+ NO_DEFAULT_PATH
+ )
+ MESSAGE( "Found lib..." ${QXT_${U_MOD}_LIB_RELEASE} )
+ENDFOREACH(mod)
+
+FOREACH(mod ${QXT_MODULES})
+ STRING(TOUPPER ${mod} U_MOD)
+ IF(QXT_${U_MOD}_INCLUDE_DIR AND QXT_${U_MOD}_LIB_RELEASE)
+ SET(QXT_FOUND_${U_MOD} TRUE)
+ ENDIF(QXT_${U_MOD}_INCLUDE_DIR AND QXT_${U_MOD}_LIB_RELEASE)
+ENDFOREACH(mod)
+
+
+##### find and include
+# To use a Qxt Library....
+# SET(QXT_FIND_COMPONENTS QxtCore, QxtGui)
+# ...and this will do the rest
+IF( QXT_FIND_COMPONENTS )
+ FOREACH( component ${QXT_FIND_COMPONENTS} )
+ STRING( TOUPPER ${component} _COMPONENT )
+ SET(QXT_USE_${_COMPONENT}_COMPONENT TRUE)
+ ENDFOREACH( component )
+ENDIF( QXT_FIND_COMPONENTS )
+
+SET(QXT_LIBRARIES "")
+SET(QXT_INCLUDE_DIRS "")
+
+# like FindQt4.cmake, in order of dependence
+FOREACH( module ${QXT_MODULES} )
+ STRING(TOUPPER ${module} U_MOD)
+ IF(QXT_USE_${U_MOD} OR QXT_DEPENDS_${U_MOD})
+ MESSAGE("Searching for ${module}")
+ IF(QXT_FOUND_${U_MOD})
+ STRING(REPLACE "QXT" "" qxt_module_def "${U_MOD}")
+ ADD_DEFINITIONS(-DQXT_${qxt_module_def}_LIB)
+ SET(QXT_INCLUDE_DIRS ${QXT_INCLUDE_DIRS} ${QXT_${U_MOD}_INCLUDE_DIR})
+ INCLUDE_DIRECTORIES(${QXT_${U_MOD}_INCLUDE_DIR})
+ SET(QXT_LIBRARIES ${QXT_LIBRARIES} ${QXT_${U_MOD}_LIB_RELEASE})
+ ELSE(QXT_FOUND_${U_MOD})
+ MESSAGE("Could not find Qxt Module ${module}")
+ RETURN()
+ ENDIF(QXT_FOUND_${U_MOD})
+ FOREACH(dep QXT_${U_MOD}_DEPENDSON)
+ SET(QXT_DEPENDS_${dep} TRUE)
+ ENDFOREACH(dep)
+ ENDIF(QXT_USE_${U_MOD} OR QXT_DEPENDS_${U_MOD})
+ENDFOREACH(module)
+MESSAGE( "Including QxtLibraries..." ${QXT_LIBRARIES} )