# define minimum cmake version cmake_minimum_required(VERSION 2.6.2) # set the plugin name here set( PLUGIN_NAME "DatabaseExplorer") # Our project is called 'plugin' this is how it will be called in # visual studio, and in our makefiles. project( ${PLUGIN_NAME} ) # It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'. find_package(wxWidgets COMPONENTS ${WX_COMPONENTS} REQUIRED) # wxWidgets include (this will do all the magic to configure everything) include( "${wxWidgets_USE_FILE}" ) if ( WITH_MYSQL ) find_library(LIBMYSQLCLIENT NAMES libmysqlclient.so) if ( ${LIBMYSQLCLIENT} STREQUAL "LIBMYSQLCLIENT-NOTFOUND") message( FATAL_ERROR "-- Could not locate libmysqlclient.so" ) else ( ${LIBMYSQLCLIENT} STREQUAL "LIBMYSQLCLIENT-NOTFOUND" ) message( "-- LIBMYSQLCLIENT is set to ${LIBMYSQLCLIENT}" ) endif ( ${LIBMYSQLCLIENT} STREQUAL "LIBMYSQLCLIENT-NOTFOUND" ) add_definitions( -DDBL_USE_MYSQL=1 ) endif ( WITH_MYSQL ) ## On UNIX we require GTK if (UNIX AND NOT APPLE) if (GTK_VERSION EQUAL 3) set(OLD_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}) # Cache the current value set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") find_package(GTK3) set(CMAKE_MODULE_PATH ${OLD_CMAKE_MODULE_PATH}) # Reset, else the official path isn't used again :/ if (GTK3_FOUND) include_directories(${GTK3_INCLUDE_DIRS}) else (GTK3_FOUND) message(FATAL_ERROR "Could not locate GTK.") endif (GTK3_FOUND) else() find_package(GTK2) if (GTK2_FOUND) include_directories(${GTK2_INCLUDE_DIRS}) else (GTK2_FOUND) message(FATAL_ERROR "Could not locate GTK.") endif (GTK2_FOUND) endif() endif (UNIX AND NOT APPLE) if ( USE_PCH ) add_definitions(-include "${CL_PCH_FILE}") add_definitions(-Winvalid-pch) endif ( USE_PCH ) # Include paths include_directories("${CL_SRC_ROOT}/Plugin" "${CL_SRC_ROOT}/CodeLite" "${CL_SRC_ROOT}/PCH" "${CL_SRC_ROOT}/Interfaces" "${CL_SRC_ROOT}/sdk/wxshapeframework/include" "${CL_SRC_ROOT}/sdk/databaselayer/include" ) add_definitions(-DWXUSINGDLL_WXSQLITE3) add_definitions(-DWXUSINGDLL_CL) add_definitions(-DWXUSINGDLL_SDK) add_definitions(-DDBL_USE_SQLITE) # Add RPATH if (UNIX) set (LINKER_OPTIONS -Wl,-rpath,"${PLUGINS_DIR}") endif (UNIX) FILE(GLOB SRCS "*.cpp") # Define the output add_library(${PLUGIN_NAME} SHARED ${SRCS}) # Remove the "lib" prefix from the plugin name set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "") if (GTK3_FOUND) target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} ${GTK3_LIBRARIES} ${LIBMYSQLCLIENT} -L"${CL_LIBPATH}" -lwxsqlite3-3.3 -lsqlite3 -llibcodelite -lplugin -ldatabaselayersqlite -lwxshapeframework) else() target_link_libraries(${PLUGIN_NAME} ${LINKER_OPTIONS} ${wxWidgets_LIBRARIES} ${GTK2_LIBRARIES} ${LIBMYSQLCLIENT} -L"${CL_LIBPATH}" -lwxsqlite3-3.0 -lsqlite3 -llibcodelite -lplugin -ldatabaselayersqlite -lwxshapeframework) endif() # Make sure that the plugin will not start build before 'plugin.so' is ready add_dependencies(${PLUGIN_NAME} plugin) install(TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGINS_DIR})