# Copyright (C) 2007-2009 LuaDist. # Created by Peter Kapec # Redistribution and use of this file is allowed according to the terms of the MIT license. # For details see the COPYRIGHT file distributed with LuaDist. # Please note that the package source code is licensed under its own license. PROJECT(luasql C) # CMake configuration: CMAKE_MINIMUM_REQUIRED(VERSION 2.6 ) SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH}) # Where to install module parts: SET (INSTALL_LMOD share/lua/lmod CACHE PATH "Directory to install Lua modules.") SET (INSTALL_CMOD share/lua/cmod CACHE PATH "Directory to install Lua binary modules.") SET (INSTALL_DATA . CACHE PATH "Directory the package can store documentation, tests or other data in.") SET (INSTALL_DOC ${INSTALL_DATA}/doc CACHE PATH "Recommended directory to install documentation into.") SET (INSTALL_TEST ${INSTALL_DATA}/test CACHE PATH "Recommended directory to install tests into.") # We need Lua to compile FIND_PACKAGE(Lua51 REQUIRED) INCLUDE_DIRECTORIES(${LUA_INCLUDE_DIR}) # Common stuff INCLUDE_DIRECTORIES(src) SET(LUASQL_SRC src/luasql.c) # SQLite module # Find SQLite FIND_PACKAGE(SQLite3) IF(SQLITE3_FOUND) INCLUDE_DIRECTORIES (${SQLITE3_INCLUDE_DIRS}) ADD_LIBRARY(sqlite3 MODULE src/ls_sqlite3.c ${LUASQL_SRC}) TARGET_LINK_LIBRARIES(sqlite3 ${LUA_LIBRARY} ${SQLITE3_LIBRARIES}) SET_TARGET_PROPERTIES(sqlite3 PROPERTIES PREFIX "") INSTALL(TARGETS sqlite3 DESTINATION ${INSTALL_CMOD}/luasql) ENDIF() # ODBC module [2DO] IF(FALSE) IF (MINGW OR CYGWIN OR UNIX OR APPLE) IF(UNIX AND NOT APPLE) ADD_DEFINITIONS(-DUNIXODBC) SET(LIBS odbc) ELSEIF(APPLE) ADD_DEFINITIONS(-DUNIXODBC) SET(LIBS iodbc) ELSEIF(WIN32 AND NOT CYGWIN) SET(LIBS odbc32) ENDIF() ADD_LIBRARY(odbc_module MODULE src/ls_odbc.c ${LUASQL_SRC}) TARGET_LINK_LIBRARIES(odbc_module ${LUA_LIBRARY} ${LIBS}) SET_TARGET_PROPERTIES(odbc_module PROPERTIES PREFIX "" OUTPUT_NAME odbc) INSTALL (TARGETS odbc_module DESTINATION ${INSTALL_CMOD}/luasql) ENDIF() ENDIF() # MySQL and Oracle OCI8 need Zlib library FIND_PACKAGE(ZLIB) IF(ZLIB_FOUND) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) # MySQL module # Find MySQL FIND_PACKAGE(MySQL) IF(MYSQL_FOUND) INCLUDE_DIRECTORIES (${MYSQL_INCLUDE_DIRS}) ADD_LIBRARY(mysql MODULE src/ls_mysql.c ${LUASQL_SRC}) TARGET_LINK_LIBRARIES(mysql ${LUA_LIBRARY} ${MYSQL_LIBRARIES} ${ZLIB_LIBRARIES}) SET_TARGET_PROPERTIES(mysql PROPERTIES PREFIX "") INSTALL(TARGETS mysql DESTINATION ${INSTALL_CMOD}/luasql) ENDIF() # Oracle OCI8 module # Find Oracle OCI8 FIND_PACKAGE(OCI8) IF(OCI8_FOUND) INCLUDE_DIRECTORIES (${OCI8_INCLUDE_DIRS}) ADD_LIBRARY(oci8 MODULE src/ls_oci8.c ${LUASQL_SRC}) TARGET_LINK_LIBRARIES(oci8 ${LUA_LIBRARY} ${OCI8_LIBRARIES} ${ZLIB_LIBRARIES}) SET_TARGET_PROPERTIES(oci8 PROPERTIES PREFIX "") INSTALL(TARGETS oci8 DESTINATION ${INSTALL_CMOD}/luasql) ENDIF() ENDIF() # PostgreSQL module # Find PostgreSQL FIND_PACKAGE(PostgreSQL) IF(POSTGRESQL_FOUND) INCLUDE_DIRECTORIES (${POSTGRESQL_INCLUDE_DIRS}) ADD_LIBRARY(postgres MODULE src/ls_postgres.c ${LUASQL_SRC}) TARGET_LINK_LIBRARIES(postgres ${LUA_LIBRARY} ${POSTGRESQL_LIBRARIES}) SET_TARGET_PROPERTIES(postgres PROPERTIES PREFIX "") INSTALL(TARGETS postgres DESTINATION ${INSTALL_CMOD}/luasql) ENDIF() # ADO module IF(MSVC) INSTALL(FILES src/ado/ado.lua DESTINATION ${INSTALL_LMOD}/luasql) ENDIF() # JDBC module - TODO # Install all files and documentation INSTALL (FILES README DESTINATION ${INSTALL_DATA}) INSTALL (DIRECTORY doc/ DESTINATION ${INSTALL_DOC}) INSTALL (DIRECTORY tests/ DESTINATION ${INSTALL_TEST})