From 425b6e31295fdf7ee7bb982ad509ba04018fa22e Mon Sep 17 00:00:00 2001 From: hoffmann Date: Fri, 15 Feb 2013 12:34:16 +0000 Subject: [PATCH] cmake: CMake-style look for VGA lib. git-svn-id: https://www4.informatik.uni-erlangen.de/i4svn/danceos/trunk/devel/fail@2101 8c4709b5-6ec9-48aa-a5cd-a96041d1645a --- cmake/FindVGA.cmake | 36 ++++++++++++++++++++++++++++++++++++ cmake/bochs.cmake | 8 +++++++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 cmake/FindVGA.cmake diff --git a/cmake/FindVGA.cmake b/cmake/FindVGA.cmake new file mode 100644 index 00000000..b9697682 --- /dev/null +++ b/cmake/FindVGA.cmake @@ -0,0 +1,36 @@ +# Find vga-related library information for Linux + +# This module defines the following uncached variables: +# VGA_FOUND, if false, do not try to use VGA. +# VGA_INCLUDE_DIRS, where to find vga.h. +# VGA_LIBRARIES, the libraries to link against to use the vga library +# VGA_LIBRARY_DIRS, the directory where the vga library is found. + +if(CMAKE_SYSTEM_NAME STREQUAL "Linux") +find_path(VGA_INCLUDE_DIR vga.h /usr/local/include /usr/include) + +if(VGA_INCLUDE_DIR) + find_library(VGA_LIBRARY + NAMES vga + PATHS /usr/local/lib /usr/lib + ) + if(VGA_LIBRARY) + set(VGA_LIBRARY_DIR "") + get_filename_component(VGA_LIBRARY_DIRS ${VGA_LIBRARY} PATH) + # Set uncached variables as per standard. + set(VGA_FOUND ON) + set(VGA_INCLUDE_DIRS ${VGA_INCLUDE_DIR}) + set(VGA_LIBRARIES ${VGA_LIBRARY}) + endif(VGA_LIBRARY) +endif(VGA_INCLUDE_DIR) + +if(VGA_FOUND) + if(NOT VGA_FIND_QUIETLY) + message(STATUS "FindVGA: Found both vga.h and the vga library") + endif(NOT VGA_FIND_QUIETLY) +else(VGA_FOUND) + if(VGA_FIND_REQUIRED) + message(FATAL_ERROR "FindVGA: Could not find vga.h and/or the vga library") + endif(VGA_FIND_REQUIRED) +endif(VGA_FOUND) +endif(CMAKE_SYSTEM_NAME STREQUAL "Linux") diff --git a/cmake/bochs.cmake b/cmake/bochs.cmake index a0778c84..529e645b 100644 --- a/cmake/bochs.cmake +++ b/cmake/bochs.cmake @@ -65,8 +65,14 @@ if(BUILD_BOCHS) unset(wxWidgets_USE_DEBUG CACHE) mark_as_advanced(wxWidgets_CONFIG_EXECUTABLE wxWidgets_wxrc_EXECUTABLE) + find_package(VGA) + if(VGA_FOUND) + set(bochs_library_dependencies ${bochs_library_dependencies} ${VGA_LIBRARIES}) + endif() + # FIXME: some libraries still need to be located the "cmake way" - set(bochs_library_dependencies ${bochs_library_dependencies} -lfontconfig -lrt -lvga -lvgagl -pthread) + set(bochs_library_dependencies ${bochs_library_dependencies} -lfontconfig -lrt -lvgagl -pthread) + set(bochs_src_dir ${PROJECT_SOURCE_DIR}/simulators/bochs)