[CMake] Help creating a module for detecting mysql-connector-c++

Ryan Pavlik rpavlik at iastate.edu
Wed May 26 14:42:24 EDT 2010


Didn't test it, just ran it through my cleanup software and then tweaked 
it a bit by hand.  Hopefully this should help - at the very least it 
will be more readable and standardized.

With this, you should just be able to set a MYSQLCONNECTORCPP_ROOT_DIR 
and have it find the rest properly and automatically, marking as 
advanced when possible.

Ryan

---

# - Try to find Mysql-Connector-C++
# Once done, this will define
#
#  MYSQLCONNECTORCPP_FOUND - system has Mysql-Connector-C++ installed
#  MYSQLCONNECTORCPP_INCLUDE_DIRS - the Mysql-Connector-C++ include directories
#  MYSQLCONNECTORCPP_LIBRARIES - link these to use Mysql-Connector-C++
#
# The user may wish to set, in the CMake GUI or otherwise, this variable:
#  MYSQLCONNECTORCPP_ROOT_DIR - path to start searching for the module

set(MYSQLCONNECTORCPP_ROOT_DIR
	"${MYSQLCONNECTORCPP_ROOT_DIR}"
	CACHE
	PATH
	"Where to start looking for this component.")

if(WIN32)
	find_path(MYSQLCONNECTORCPP_INCLUDE_DIR
		NAMES
		mysql_connection.h
		PATHS
		"C:\\Program Files"
		HINTS
		${MYSQLCONNECTORCPP_ROOT_DIR}
		PATH_SUFFIXES
		include)
		
	find_library(MYSQLCONNECTORCPP_LIBRARY
		NAMES
		mysqlcppconn
		mysqlcppconn-static
		HINTS
		${MYSQLCONNECTORCPP_ROOT_DIR}
		PATH_SUFFIXES
		lib)
		
else()
	find_path(MYSQLCONNECTORCPP_INCLUDE_DIR
		mysql_connection.h
		HINTS
		${MYSQLCONNECTORCPP_ROOT_DIR}
		PATH_SUFFIXES
		include)
		
	find_library(MYSQLCONNECTORCPP_LIBRARY
		NAMES
		mysqlcppconn
		mysqlcppconn-static
		HINTS
		${MYSQLCONNECTORCPP_ROOT_DIR}
		PATH_SUFFIXES
		lib64
		lib)
endif()

mark_as_advanced(MYSQLCONNECTORCPP_INCLUDE_DIR MYSQLCONNECTORCPP_LIBRARY)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MysqlConnectorCpp
	DEFAULT_MSG
	MYSQLCONNECTORCPP_INCLUDE_DIR
	MYSQLCONNECTORCPP_LIBRARY)

if(MYSQLCONNECTORCPP_FOUND)
	set(MYSQLCONNECTORCPP_INCLUDE_DIRS "${MYSQLCONNECTORCPP_INCLUDE_DIR}") # Add any dependencies here
	set(MYSQLCONNECTORCPP_LIBRARIES "${MYSQLCONNECTORCPP_LIBRARY}") # Add any dependencies here
	mark_as_advanced(MYSQLCONNECTORCPP_ROOT_DIR)
endif()





On 05/26/2010 12:11 PM, Torri, Stephen CIV NSWCDD, W15 wrote:
> I am trying to create a connector for finding mysql-connector-c++. This is a C++ library that allows a C++ application or library connect to a MySQL server. Right now it works fine on Linux but fails to locate the mysql-connector-c++ library installed on a XP 64-bit machine. On the Linux system the headers are located in /usr/include and the libraries are in /usr/lib. On the Windows system the location is not as easy to locate since the user can place them pretty much anywhere. At present they are installed in C:\Program Files\MySQL\MySQL Connector C++ 1.0.5. When I configure the project via the CMake-gui on Windows it reports that MysqlConnectorCpp_INCLUDE_DIR and MysqlConnectorCpp_LIBRARIES are NOTFOUND.
>
> Here is my module as it stands right now. Am I doing something wrong on the Windows side?
>
> Stephen
>    

-- 
Ryan Pavlik
HCI Graduate Student
Virtual Reality Applications Center
Iowa State University

rpavlik at iastate.edu
http://academic.cleardefinition.com



More information about the CMake mailing list