From cdd2c6e4293583e3935961ecbdf56d3823ea9640 Mon Sep 17 00:00:00 2001 From: bergmann Date: Tue, 25 Sep 2018 21:32:21 +0200 Subject: [PATCH] * refactored cmake files --- cmake/options.cmake | 19 +++++------ cmake/options.h.in | 1 + include/cpphibernate/config.h | 1 + src/CMakeLists.txt | 33 ++++++++++++++----- .../driver/mariadb/schema/field.cpp | 0 .../driver/mariadb/schema/schema.cpp | 0 .../driver/mariadb/schema/table.cpp | 0 src/{ => cpphibernate}/types.cpp | 0 test/CMakeLists.txt | 14 ++++---- 9 files changed, 41 insertions(+), 27 deletions(-) create mode 100644 cmake/options.h.in rename src/{ => cpphibernate}/driver/mariadb/schema/field.cpp (100%) rename src/{ => cpphibernate}/driver/mariadb/schema/schema.cpp (100%) rename src/{ => cpphibernate}/driver/mariadb/schema/table.cpp (100%) rename src/{ => cpphibernate}/types.cpp (100%) diff --git a/cmake/options.cmake b/cmake/options.cmake index 43c5d8d..3e99498 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -1,10 +1,9 @@ -Option ( CPPHIBERNATE_BUILD_SHARED - "Build cpphibernate shared library" - OFF ) -Option ( CPPHIBERNATE_DEBUG_OUTPUT - "Enable debug output" - OFF ) - -If ( CPPHIBERNATE_DEBUG_OUTPUT ) - Add_Definitions ( -DCPPHIBERNATE_DEBUG ) -EndIf ( ) \ No newline at end of file +Option ( CPPHIBERNATE_BUILD_SHARED + "Build cpphibernate shared library" + ON ) +Option ( CPPHIBERNATE_INSTALL_DEV_FILES + "Install development files of cpphibernate" + ON ) +Option ( CPPHIBERNATE_DEBUG + "Enable debug output" + OFF ) diff --git a/cmake/options.h.in b/cmake/options.h.in new file mode 100644 index 0000000..c9b0288 --- /dev/null +++ b/cmake/options.h.in @@ -0,0 +1 @@ +#cmakedefine CPPHIBERNATE_DEBUG \ No newline at end of file diff --git a/include/cpphibernate/config.h b/include/cpphibernate/config.h index 8350fec..54b2205 100644 --- a/include/cpphibernate/config.h +++ b/include/cpphibernate/config.h @@ -2,6 +2,7 @@ #include #include +#include #ifdef CPPHIBERNATE_DEBUG # include diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index aa26a3d..b39bec3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -18,18 +18,33 @@ Find_Package ( cppmariadb REQUIRED ) # Project: cpphibernate ############################################################################### +# Build Project ( cpphibernate VERSION 1.0.0.0 LANGUAGES CXX ) +Set ( CPPHIBERNATE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../include ) +Set ( CPPHIBERNATE_GENERATE_DIR ${CMAKE_CURRENT_BINARY_DIR}/generated ) File ( GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ) Add_Library ( cpphibernate ${SOURCE_FILES} ) -Target_Include_Directories ( - cpphibernate - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/../include - ) -Target_Link_Libraries ( - cpphibernate - cpputils - cppmariadb - ) +Configure_File ( ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/options.h.in + ${CPPHIBERNATE_GENERATE_DIR}/cpphibernate/options.h ) +Target_Include_Directories ( cpphibernate + PUBLIC ${CPPHIBERNATE_INCLUDE_DIR} + ${CPPHIBERNATE_GENERATE_DIR} ) +Target_Link_Libraries ( cpphibernate + cpputils + cppmariadb ) + +# Install +If ( BUILD_SHARED_LIBS OR CPPHIBERNATE_INSTALL_DEV_FILES ) + Install ( TARGETS cpphibernate DESTINATION lib ) +EndIf ( ) + +If ( CPPHIBERNATE_INSTALL_DEV_FILES ) + Install ( FILES ${CPPHIBERNATE_INCLUDE_DIR}/cpphibernate.h DESTINATION include ) + Install ( DIRECTORY ${CPPHIBERNATE_INCLUDE_DIR}/cpphibernate DESTINATION include ) + Install ( DIRECTORY ${CPPHIBERNATE_GENERATE_DIR}/cpphibernate DESTINATION include ) +EndIf ( ) + +# Optimize If ( __COTIRE_INCLUDED ) Cotire ( cpphibernate ) EndIf ( ) diff --git a/src/driver/mariadb/schema/field.cpp b/src/cpphibernate/driver/mariadb/schema/field.cpp similarity index 100% rename from src/driver/mariadb/schema/field.cpp rename to src/cpphibernate/driver/mariadb/schema/field.cpp diff --git a/src/driver/mariadb/schema/schema.cpp b/src/cpphibernate/driver/mariadb/schema/schema.cpp similarity index 100% rename from src/driver/mariadb/schema/schema.cpp rename to src/cpphibernate/driver/mariadb/schema/schema.cpp diff --git a/src/driver/mariadb/schema/table.cpp b/src/cpphibernate/driver/mariadb/schema/table.cpp similarity index 100% rename from src/driver/mariadb/schema/table.cpp rename to src/cpphibernate/driver/mariadb/schema/table.cpp diff --git a/src/types.cpp b/src/cpphibernate/types.cpp similarity index 100% rename from src/types.cpp rename to src/cpphibernate/types.cpp diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c4a9318..ccfdf24 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -16,14 +16,12 @@ Project ( test_cpphibernate ) File ( GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ) List ( FILTER SOURCE_FILES EXCLUDE REGEX "/_[A-Za-z0-9_-]*\.cpp$" ) Add_Executable ( test_cpphibernate EXCLUDE_FROM_ALL ${SOURCE_FILES} ) -Target_Link_Libraries ( - test_cpphibernate - cpphibernate - gtest - gmock - gmock_main - pthread - ) +Target_Link_Libraries ( test_cpphibernate + cpphibernate + gtest + gmock + gmock_main + pthread ) If ( __COTIRE_INCLUDED ) Cotire ( test_cpphibernate ) EndIf ( )