[waffle] [PATCH] add FindWaffle.cmake,v2

groleo at gmail.com groleo at gmail.com
Thu Oct 18 02:50:19 PDT 2012


From: Adrian Marius Negreanu <adrian.m.negreanu at intel.com>

Piglit searches waffle by using pkg_check_modules.
If one tried to use android toolchain along cmake,
waffle won't be found, since pkg_check_modules relies on
pkg-config(missing on android)

To fix this, add a "cmake find module" for Waffle.

v2: Add version detection
v1: clean up the initial RFC patch

Signed-off-by: Adrian Marius Negreanu <adrian.m.negreanu at intel.com>
---
 cmake/Modules/FindWaffle.cmake | 58 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)
 create mode 100644 cmake/Modules/FindWaffle.cmake

diff --git a/cmake/Modules/FindWaffle.cmake b/cmake/Modules/FindWaffle.cmake
new file mode 100644
index 0000000..0f6861e
--- /dev/null
+++ b/cmake/Modules/FindWaffle.cmake
@@ -0,0 +1,58 @@
+# Copyright 2012 Intel Corporation
+#
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# - Redistributions of source code must retain the above copyright notice, this
+#   list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright notice,
+#   this list of conditions and the following disclaimer in the documentation
+#   and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#
+# Locate the Waffle library.
+#
+#
+# Defines the variables:
+#    WAFFLE_INCLUDE_DIR     Where to look for Waffle headers.
+#    WAFFLE_LIBRARY         Where to look for Waffle library.
+#    WAFFLE_FOUND           If FALSE, don't try to use Waffle.
+#    WAFFLE_VERSION_STRING  Waffle Version: Major.Minor.Patch
+#
+
+find_path(WAFFLE_INCLUDE_DIR
+    NAMES waffle.h
+)
+
+find_library(WAFFLE_LIBRARY
+    NAMES waffle
+)
+
+if(WAFFLE_INCLUDE_DIR AND EXISTS "${WAFFLE_INCLUDE_DIR}/waffle_version.h")
+    file(STRINGS "${WAFFLE_INCLUDE_DIR}/waffle_version.h" WAFFLE_VERSION_H)
+    string(REGEX REPLACE "^.*WAFFLE_MAJOR_VERSION ([0-9]+).*$" "\\1" WAFFLE_MAJOR_VERSION "${WAFFLE_VERSION_H}")
+    string(REGEX REPLACE "^.*WAFFLE_MINOR_VERSION ([0-9]+).*$" "\\1" WAFFLE_MINOR_VERSION "${WAFFLE_VERSION_H}")
+    string(REGEX REPLACE "^.*WAFFLE_PATCH_VERSION ([0-9]+).*$" "\\1" WAFFLE_PATCH_VERSION "${WAFFLE_VERSION_H}")
+    set(WAFFLE_VERSION_STRING "${WAFFLE_MAJOR_VERSION}.${WAFFLE_MINOR_VERSION}.${WAFFLE_PATCH_VERSION}")
+endif()
+
+# handle the 'QUIETLY' and 'REQUIRED' arguments and
+# set 'WAFFLE_FOUND' to TRUE if all listed variables are TRUE
+include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
+find_package_handle_standard_args(Waffle REQUIRED_VARS WAFFLE_LIBRARY WAFFLE_INCLUDE_DIR VERSION_VAR WAFFLE_VERSION_STRING) 
+
+mark_as_advanced(WAFFLE_LIBRARY WAFFLE_INCLUDE_DIR)
-- 
1.7.11.3



More information about the waffle mailing list