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)