[CMake] Question about IF and STRINGS

Steven Truppe workbench at gmx.at
Fri May 31 12:53:18 EDT 2019


Hi everyone,

i try to create a build system where you can decide which libraries you
want to use with variables like "WITH_LIB_GLFW" for example. every lib
variable has other variables like WITH_LIB_GLFW_INC_PATH,

WITH_LIB_GLFW_LIB_PATH, etc. so i can decide with cmake what libraries
i'm going to use for the final executable.

Now my problem is that i'm relative new to cmake and i'm learning c++11
in the meantime and are coding on a project so i don't have to much time
for cmake (but it's a realy important part).

Here is the code:

cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
include(CMakePrintHelpers)

set(WITH_LIB_GLAD "Support the GLAD library" 1)
set(WITH_LIB_GLFW "Support for the GLFW library" 1)

  macro(bsAddLibrary lib)
	# get all WITH_LIB varables

	get_cmake_property(_variables VARIABLES)
	foreach(_var ${_variables})
		#	cmake_print_variables(${_var})
		if(${_var} MATCHES "^WITH_LIB_[AZaz]+$" _lib)
			cmake_print_variables(${_lib})
		endif()
	endforeach()
endmacro()


bsAddLibrary(WITH_LIB_GLAD) # Adds WITH_LIB_GLAD_INC_PATH and the other variables to a list for the main application that holds all inc path, compiler flags etc.

  ERROR:
======

-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:15 (if):
   if given arguments:

     "CMAKE_AR" "MATCHES" "^WITH_LIB_[AZaz]+\$" "_lib"

   Unknown arguments specified
Call Stack (most recent call first):
   CMakeLists.txt:22 (bsAddLibrary)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20190531/31b15d57/attachment.html>


More information about the CMake mailing list