Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 78 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,28 +1,94 @@
# Common variables.
CMAKE_MINIMUM_REQUIRED (VERSION 3.0)
PROJECT (boolinq VERSION 3.0.0 LANGUAGES CXX)
INCLUDE(Dart)

IF (DEFINED PROJECT_NAME)
set(BOOLINQ_SUBPROJECT ON)
ENDIF ()
PROJECT (boolinq VERSION 3.0.5 LANGUAGES CXX)

SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -ggdb3 -DDEBUG")
SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3")
INCLUDE (CMakePackageConfigHelpers)
INCLUDE (GNUInstallDirs)
INCLUDE (Dart)


SET (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -O0 -ggdb3 -DDEBUG")


OPTION (BUILD_TESTS "Build unit tests" ON)
OPTION (BUILD_BENCHMARK "Build benchmark" ON)


# Static code analyse.
SET (CppCheck_REPORT ${PROJECT_BINARY_DIR}/cppcheck.report)
ADD_CUSTOM_COMMAND (
OUTPUT ${CppCheck_REPORT}
COMMAND cppcheck ${PROJECT_SOURCE_DIR}/imclude/boolinq/boolinq.h --enable=all --force --inconclusive &>cppcheck.report
COMMAND cppcheck ${PROJECT_SOURCE_DIR}/include/boolinq/boolinq.h --enable=all --force --inconclusive &>cppcheck.report
)
ADD_CUSTOM_TARGET (cppcheck DEPENDS ${CppCheck_REPORT})
SET_DIRECTORY_PROPERTIES (PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CppCheck_REPORT})


# Initialize CMake target.
ADD_LIBRARY (boolinq INTERFACE)
ADD_LIBRARY (boolinq::boolinq ALIAS boolinq)

TARGET_COMPILE_FEATURES (boolinq INTERFACE cxx_std_11)
TARGET_INCLUDE_DIRECTORIES (boolinq INTERFACE
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
)


# Testing.
ADD_SUBDIRECTORY (externals/googletest)
ADD_SUBDIRECTORY (externals/benchmark)
ADD_SUBDIRECTORY (test)
ADD_SUBDIRECTORY (bench)
ADD_DEPENDENCIES ("${PROJECT_NAME}-test" gtest)
ADD_DEPENDENCIES ("${PROJECT_NAME}-test14" gtest)
ADD_DEPENDENCIES ("${PROJECT_NAME}-bench" benchmark)
IF (BUILD_TESTS OR BUILD_BENCHMARK)
FIND_PACKAGE(GTest QUIET)
IF (NOT GTest_FOUND)
ADD_SUBDIRECTORY (externals/googletest)
ENDIF ()
ENDIF()

IF (BUILD_TESTS)
ADD_SUBDIRECTORY (test)
IF (NOT GTest_FOUND)
ADD_DEPENDENCIES ("${PROJECT_NAME}-test" gtest)
ADD_DEPENDENCIES ("${PROJECT_NAME}-test14" gtest)
ENDIF ()
ENDIF ()

IF (BUILD_BENCHMARK)
FIND_PACKAGE(benchmark QUIET)
IF (NOT benchmark_FOUND)
ADD_SUBDIRECTORY (externals/benchmark)
ADD_SUBDIRECTORY (bench)
ADD_DEPENDENCIES ("${PROJECT_NAME}-bench" benchmark)
ELSE ()
ADD_SUBDIRECTORY (bench)
ENDIF ()
ENDIF ()


# Installation.
IF (NOT BOOLINQ_SUBPROJECT)
WRITE_BASIC_PACKAGE_VERSION_FILE (
${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion
)

INSTALL (TARGETS boolinq EXPORT boolinqTargets)

INSTALL (EXPORT boolinqTargets
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/boolinq
NAMESPACE boolinq::
FILE ${PROJECT_NAME}Config.cmake
)

INSTALL (FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/boolinq
)

INSTALL (DIRECTORY include/boolinq
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING PATTERN "*.h"
)
ENDIF ()
41 changes: 34 additions & 7 deletions bench/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,45 @@ SET (TARGET "${PROJECT_NAME}-bench" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wvla -W
SET (TARGET "${PROJECT_NAME}-bench" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-qual -Wpointer-arith -Wold-style-cast")


INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/include/boolinq)
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/benchmark-src/include)
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/googletest-src/googletest/include)


# Benchmarks.
ADD_EXECUTABLE (
"${PROJECT_NAME}-bench"
${PROJECT_SOURCE_DIR}/bench/SpeedTest.cpp
)

TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-bench"
benchmark
gtest
boolinq::boolinq
)

IF (GTest_FOUND)
TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-bench"
GTest::gtest
)
ELSE ()
TARGET_INCLUDE_DIRECTORIES (
"${PROJECT_NAME}-bench" PRIVATE
${CMAKE_BINARY_DIR}/googletest-src/googletest/include
)
TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-bench"
gtest
)
ENDIF ()

IF (benchmark_FOUND)
TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-bench"
benchmark::benchmark
)
ELSE ()
TARGET_INCLUDE_DIRECTORIES (
"${PROJECT_NAME}-bench" PRIVATE
${CMAKE_BINARY_DIR}/benchmark-src/include
)
TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-bench"
benchmark
)
ENDIF ()
2 changes: 1 addition & 1 deletion bench/SpeedTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <benchmark/benchmark.h>
#include <gtest/gtest.h>

#include "boolinq.h"
#include <boolinq/boolinq.h>


using namespace boolinq;
Expand Down
2 changes: 1 addition & 1 deletion test/AllTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <gtest/gtest.h>

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/AnyTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <gtest/gtest.h>

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/AppendTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <gtest/gtest.h>
#include "CommonTests.h"

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/AvgTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <gtest/gtest.h>

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/BitsTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <gtest/gtest.h>
#include "CommonTests.h"

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/BytesTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <gtest/gtest.h>
#include "CommonTests.h"

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
45 changes: 37 additions & 8 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ SET (TARGET "${PROJECT_NAME}-test" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")


INCLUDE_DIRECTORIES (${PROJECT_SOURCE_DIR}/include/boolinq)
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/googletest-src/googletest/include)

# Unit tests.
SET (
BoolinqTest_SOURCES
Expand Down Expand Up @@ -61,10 +58,26 @@ ADD_EXECUTABLE (

TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-test"
gtest_main
gtest
#gcov
boolinq::boolinq
)
IF (GTest_FOUND)
TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-test"
GTest::gtest
GTest::gtest_main
)
ELSE()
TARGET_INCLUDE_DIRECTORIES (
"${PROJECT_NAME}-test" PRIVATE
${CMAKE_BINARY_DIR}/googletest-src/googletest/include
)
TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-test"
gtest_main
gtest
#gcov
)
ENDIF ()

#separate target for the complex group by test requiring C++14
ADD_EXECUTABLE (
Expand All @@ -76,9 +89,25 @@ TARGET_COMPILE_FEATURES("${PROJECT_NAME}-test14" PRIVATE cxx_std_14)

TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-test14"
gtest_main
gtest
boolinq::boolinq
)
IF (GTest_FOUND)
TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-test14"
GTest::gtest
GTest::gtest_main
)
ELSE()
TARGET_INCLUDE_DIRECTORIES (
"${PROJECT_NAME}-test14" PRIVATE
${CMAKE_BINARY_DIR}/googletest-src/googletest/include
)
TARGET_LINK_LIBRARIES (
"${PROJECT_NAME}-test14"
gtest_main
gtest
)
ENDIF ()

ENABLE_TESTING ()
ADD_TEST (BoolinqTest "${PROJECT_NAME}-test")
Expand Down
2 changes: 1 addition & 1 deletion test/CommonTests.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

#include <set>

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/ConcatTest.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include <gtest/gtest.h>
#include "CommonTests.h"

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/ContainsTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <gtest/gtest.h>

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/CountTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <gtest/gtest.h>

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/CtorTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
#include <gtest/gtest.h>
#include "CommonTests.h"

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/DistinctTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <gtest/gtest.h>
#include "CommonTests.h"

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/DotCallTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include <gtest/gtest.h>
#include "CommonTests.h"

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/ElementAtTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

#include <gtest/gtest.h>

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/FirstTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#include <gtest/gtest.h>

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/ForEachTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#include <gtest/gtest.h>

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/GroupByTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <gtest/gtest.h>
#include "CommonTests.h"

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
2 changes: 1 addition & 1 deletion test/GroupByTestComplex.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <gtest/gtest.h>
#include "CommonTests.h"

#include "boolinq.h"
#include <boolinq/boolinq.h>

using namespace boolinq;

Expand Down
Loading