[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r3466: Add CMake fu for finding and loading the Marble widget plugi (in vidalia/branches/marble: cmake src/vidalia)
Author: edmanm
Date: 2009-01-20 19:07:21 -0500 (Tue, 20 Jan 2009)
New Revision: 3466
Modified:
vidalia/branches/marble/cmake/FindMarble.cmake
vidalia/branches/marble/src/vidalia/CMakeLists.txt
Log:
Add CMake fu for finding and loading the Marble widget plugins we're
interested in. Currently we just load the stars and overview map plugins, and
exclude the compass. (I don't think anyone will be taking their Vidalia
orienteering.)
Modified: vidalia/branches/marble/cmake/FindMarble.cmake
===================================================================
--- vidalia/branches/marble/cmake/FindMarble.cmake 2009-01-20 05:30:57 UTC (rev 3465)
+++ vidalia/branches/marble/cmake/FindMarble.cmake 2009-01-21 00:07:21 UTC (rev 3466)
@@ -40,31 +40,70 @@
## SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
##
-
-if (MARBLE_INCLUDE_DIR AND MARBLE_DATA_DIR AND MARBLE_LIBRARIES)
- set(MARBLE_FIND_QUIETLY TRUE)
-endif(MARBLE_INCLUDE_DIR AND MARBLE_DATA_DIR AND MARBLE_LIBRARIES)
-
+message(STATUS "Looking for Marble header files")
find_path(MARBLE_INCLUDE_DIR
- NAMES MarbleMap.h
+ NAMES MarbleWidget.h
PATH_SUFFIXES marble
)
+if (MARBLE_INCLUDE_DIR)
+ message(STATUS "Looking for Marble header files - found")
+else(MARBLE_INCLUDE_DIR)
+ message(FATAL_ERROR "Could not find Marble header files. If Marble is installed, you can specify its location with -DMARBLE_INCLUDE_DIR=<path>")
+endif(MARBLE_INCLUDE_DIR)
-find_path(MARBLE_DATA_DIR
- NAMES srtm.dgml
- PATH_SUFFIXES maps/earth/srtm
-)
-if (MARBLE_DATA_DIR)
- message(STATUS "Using Marble data from ${MARBLE_DATA_DIR}")
-endif(MARBLE_DATA_DIR)
+message(STATUS "Looking for Marble libraries")
find_library(MARBLE_LIBRARIES
NAMES marblewidget
PATHS ${MARBLE_LIBRARY_DIR}
)
+if (MARBLE_LIBRARY_DIR)
+ message(STATUS "Looking for Marble libraries - found")
+else(MARBLE_LIBRARY_DIR)
+ message(FATAL_ERROR "Could not find Marble libraries. If Marble is installed, you can specify its location with -DMARBLE_LIBRARY_DIR=<path>")
+endif(MARBLE_LIBRARY_DIR)
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(marble DEFAULT_MSG
- MARBLE_INCLUDE_DIR
- MARBLE_LIBRARIES
-)
+
+if (APPLE OR WIN32)
+ message(STATUS "Looking for Marble data files")
+ find_path(MARBLE_DATA_DIR
+ NAMES srtm.dgml
+ PATH_SUFFIXES maps/earth/srtm
+ )
+ if (MARBLE_DATA_DIR)
+ message(STATUS "Looking for Marble data files - ${MARBLE_DATA_DIR}")
+ else (MARBLE_DATA_DIR)
+ message(FATAL_ERROR "Could not find Marble libraries. If Marble is installed, you can specify its location with -DMARBLE_DATA_DIR=<path>")
+ endif(MARBLE_DATA_DIR)
+
+
+ message(STATUS "Looking for Marble plugin widgets")
+ find_library(MARBLE_OVERVIEWMAP_PLUGIN
+ NAMES MarbleOverviewMap
+ PATHS ${MARBLE_PLUGIN_DIR}
+ PATH_SUFFIXES render/overviewmap
+ )
+ if (MARBLE_OVERVIEWMAP_PLUGIN)
+ message(STATUS "Looking for Marble plugin widgets - found overview map plugin")
+ set(MARBLE_PLUGINS ${MARBLE_PLUGINS}
+ ${MARBLE_OVERVIEWMAP_PLUGIN}
+ )
+ endif(MARBLE_OVERVIEWMAP_PLUGIN)
+
+ find_library(MARBLE_STARS_PLUGIN
+ NAMES MarbleStarsPlugin
+ PATHS ${MARBLE_PLUGIN_DIR}
+ PATH_SUFFIXES render/stars
+ )
+ if (MARBLE_STARS_PLUGIN)
+ message(STATUS "Looking for Marble plugin widgets - found stars plugin")
+ set(MARBLE_PLUGINS ${MARBLE_PLUGINS}
+ ${MARBLE_STARS_PLUGIN}
+ )
+ endif(MARBLE_STARS_PLUGIN)
+
+ if (NOT MARBLE_PLUGINS)
+ message(STATUS "Looking for Marble plugin widgets - none found")
+ endif(NOT MARBLE_PLUGINS)
+endif(APPLE OR WIN32)
+
Modified: vidalia/branches/marble/src/vidalia/CMakeLists.txt
===================================================================
--- vidalia/branches/marble/src/vidalia/CMakeLists.txt 2009-01-20 05:30:57 UTC (rev 3465)
+++ vidalia/branches/marble/src/vidalia/CMakeLists.txt 2009-01-21 00:07:21 UTC (rev 3466)
@@ -293,6 +293,8 @@
placemarks/baseplacemarks.cache
placemarks/boundaryplacemarks.cache
placemarks/elevplacemarks.cache
+ stars/stars.dat
+ svg/worldmap.svg
)
## Set the appropriate executable target for the current platform
@@ -339,18 +341,20 @@
endforeach(it)
## Create the Marble plugins directory and copy in any wanted plugins
- add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
- COMMAND ${CMAKE_COMMAND}
- ARGS -E make_directory
- ${CMAKE_CURRENT_BINARY_DIR}/Vidalia.app/Contents/Resources/plugins
- )
- foreach(it ${MARBLE_PLUGINS})
+ if (MARBLE_PLUGINS)
add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
COMMAND ${CMAKE_COMMAND}
- ARGS -E copy_if_different ${it}
- ${CMAKE_CURRENT_BINARY_DIR}/Vidalia.app/Contents/Resources/plugins/
+ ARGS -E make_directory
+ ${CMAKE_CURRENT_BINARY_DIR}/Vidalia.app/Contents/Resources/plugins
)
- endforeach(it)
+ foreach(it ${MARBLE_PLUGINS})
+ add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${it}
+ ${CMAKE_CURRENT_BINARY_DIR}/Vidalia.app/Contents/Resources/plugins/
+ )
+ endforeach(it)
+ endif(MARBLE_PLUGINS)
else(APPLE)
## Set the output file name
@@ -360,24 +364,39 @@
## Create a Windows binary
win32_wrap_rc(vidalia_SRCS res/vidalia_win.rc)
add_executable(${vidalia_BIN} WIN32 ${vidalia_SRCS})
+
+ ## Copy the Marble data into the data/ directory under the binary
+ foreach(it ${marble_DATA})
+ get_filename_component(outdir ${it} PATH)
+ get_filename_component(outfile ${it} NAME)
+
+ add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${outdir}
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${MARBLE_DATA_DIR}/${it}
+ ${CMAKE_CURRENT_BINARY_DIR}/data/${it}
+ )
+ endforeach(it)
+
+ ## Create the Marble plugins directory and copy in any wanted plugins
+ if (MARBLE_PLUGINS)
+ add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/plugins
+ )
+ foreach(it ${MARBLE_PLUGINS})
+ add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -E copy_if_different ${it}
+ ${CMAKE_CURRENT_BINARY_DIR}/plugins/
+ )
+ endif(MARBLE_PLUGINS)
+
else (WIN32)
## Non-Windows, non-Mac
add_executable(${vidalia_BIN} ${vidalia_SRCS})
endif(WIN32)
-
- ## Copy the Marble data into the data/ directory under the binary
- foreach(it ${marble_DATA})
- get_filename_component(outdir ${it} PATH)
- get_filename_component(outfile ${it} NAME)
-
- add_custom_command(TARGET ${vidalia_BIN} POST_BUILD
- COMMAND ${CMAKE_COMMAND}
- ARGS -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${outdir}
- COMMAND ${CMAKE_COMMAND}
- ARGS -E copy_if_different ${MARBLE_DATA_DIR}/${it}
- ${CMAKE_CURRENT_BINARY_DIR}/data/${it}
- )
- endforeach(it)
endif(APPLE)
add_dependencies(${vidalia_BIN} i18n)