From 11a7c0d6b66e82df69763f2ae5ceb89e5a4eb3f9 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Thu, 11 Sep 2014 21:50:59 +0300 Subject: [PATCH] added gcov and static embedded library flags --- CMakeLists.txt | 27 +++++++++++++++++++++------ server/core/CMakeLists.txt | 3 ++- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 639549f3c..964010454 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,12 +22,24 @@ endif(ERRMSG_NOT_FOUND) set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -fPIC) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fPIC) -if(NOT EMBEDDED_LIB) - find_library(EMBEDDED_LIB libmysqld.a PATHS /usr/lib /usr/lib64 PATH_SUFFIXES mysql) - if(EMBEDDED_LIB_NOT_FOUND) - message(ERROR "Library not found: libmysqld. If your install of MySQL is in a non-default location, please provide the location with -DEMBEDDED_LIB=") - endif(EMBEDDED_LIB_NOT_FOUND) -endif(NOT EMBEDDED_LIB) +if(GCOV) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov") +endif(GCOV) + + +if(STATIC_EMBEDDED) + find_file(EMBEDDED_LIB libmysqld.a PATHS /usr/lib /usr/lib64 PATH_SUFFIXES mysql mariadb) + message(STATUS "Using static embedded library.") +elseif( NOT STATIC_EMBEDDED) + find_library(EMBEDDED_LIB mysqld PATHS /usr/lib /usr/lib64 PATH_SUFFIXES mysql mariadb) + message(STATUS "Using dynamic embedded library.") +endif(STATIC_EMBEDDED) + +if(EMBEDDED_LIB_NOT_FOUND) + message(FATAL_ERROR "Library not found: libmysqld. If your install of MySQL is in a non-default location, please provide the location with -DEMBEDDED_LIB=") +endif(EMBEDDED_LIB_NOT_FOUND) include_directories(${MYSQL_DIR}) include_directories(${MYSQL_DIR}/private) @@ -52,6 +64,8 @@ endif(BUILD_RABBITMQ) file(GLOB DOCS Documentation/*.pdf) install(FILES server/test/MaxScale_test.cnf RENAME MaxScale.cnf DESTINATION etc) +install(FILES maxscale.conf DESTINATION etc/ld.so.conf.d) +install(FILES etc/init.d/maxscale DESTINATION etc/init.d) install(FILES ${ERRMSG} DESTINATION mysql) install(FILES ${EMBEDDED_LIB} DESTINATION lib) install(FILES ${DOCS} DESTINATION Documentation) @@ -62,6 +76,7 @@ set(CPACK_GENERATOR "RPM") set(CPACK_PACKAGE_VERSION_MAJOR "1") set(CPACK_PACKAGE_VERSION_MINOR "0") set(CPACK_PACKAGE_VERSION_PATCH "0") +set(CPACK_PACKAGE_CONTACT "SkySQL Ab") set(CPACK_PACKAGE_FILE_NAME "maxscale-${MAXSCALE_VERSION}") set(CPACK_RPM_PACKAGE_NAME "maxscale-${MAXSCALE_VERSION}") set(CPACK_RPM_PACKAGE_VENDOR "SkySQL Ab") diff --git a/server/core/CMakeLists.txt b/server/core/CMakeLists.txt index b10d476da..f0e48aa08 100644 --- a/server/core/CMakeLists.txt +++ b/server/core/CMakeLists.txt @@ -1,12 +1,13 @@ file(GLOB FULLCORE_SRC *.c) add_library(fullcore STATIC ${FULLCORE_SRC}) target_link_libraries(fullcore utils log_manager aio pthread crypt dl mysqld crypto inih) + add_executable(maxscale atomic.c buffer.c spinlock.c gateway.c gw_utils.c utils.c dcb.c load_utils.c session.c service.c server.c poll.c config.c users.c hashtable.c dbusers.c thread.c gwbitmask.c monitor.c adminusers.c secrets.c filter.c modutil.c hint.c housekeeper.c) set_target_properties(maxscale PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${CMAKE_INSTALL_PREFIX}/lib) -target_link_libraries(maxscale utils log_manager aio pthread crypt dl mysqld crypto inih) +target_link_libraries(maxscale utils log_manager ssl aio pthread crypt dl ${EMBEDDED_LIB} crypto inih z) install(TARGETS maxscale DESTINATION bin) add_executable(maxkeys maxkeys.c secrets.c utils.c)