incremetnal
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5ff0806..e4aa79b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,7 +29,7 @@
endif()
# general
-option(BUILD_SHARED_LIBS "Build Pion as shared library" OFF)
+option(BUILD_SHARED_LIBS "Build as shared library" OFF)
option(BUILD_UT "Enable Unit test" OFF)
# Boost
@@ -73,7 +73,21 @@
${CMAKE_BINARY_DIR}/generated/webassets.cpp
)
-set_source_files_properties(${GENERATED_SRC_FILES} PROPERTIES GENERATED TRUE)
+if (CMAKE_COMPILER_IS_GNUCC)
+ execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion
+ OUTPUT_VARIABLE GCC_VERSION)
+ string(REGEX MATCHALL "[0-9]+" GCC_VERSION_COMPONENTS ${GCC_VERSION})
+ list(GET GCC_VERSION_COMPONENTS 0 GCC_MAJOR)
+ list(GET GCC_VERSION_COMPONENTS 1 GCC_MINOR)
+
+ message(STATUS ${GCC_MAJOR})
+ message(STATUS ${GCC_MINOR})
+endif()
+
+
+if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR GCC_VERSION VERSION_GREATER 5.0)
+ set_source_files_properties(${GENERATED_SRC_FILES} PROPERTIES GENERATED TRUE)
+endif()
set(SRC_FILES
src/token_authorization_middleware.cpp
@@ -96,25 +110,34 @@
# this line simply disables the warning, and the compiler does the right thing
# we selectively only disable this warning on this specific file
# http://stackoverflow.com/questions/28094263/create-array-of-chars-avoiding-narrowing
-set_source_files_properties(${CMAKE_BINARY_DIR}/generated/webassets.cpp PROPERTIES COMPILE_FLAGS -Wno-c++11-narrowing)
+if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "5.0")
+ set_source_files_properties(${CMAKE_BINARY_DIR}/generated/webassets.cpp PROPERTIES COMPILE_FLAGS -Wno-c++11-narrowing)
+ endif()
+elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ set_source_files_properties(${CMAKE_BINARY_DIR}/generated/webassets.cpp PROPERTIES COMPILE_FLAGS -Wno-c++11-narrowing)
+endif()
# big list of naughty strings
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/generated")
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/generated/blns.hpp
COMMAND xxd -i ${CMAKE_CURRENT_SOURCE_DIR}/src/blns.txt ${CMAKE_BINARY_DIR}/generated/blns.hpp)
-# googletest
-#find_package(GTest REQUIRED)
-enable_testing()
-find_package(GTest REQUIRED)
-add_executable(unittest ${HDR_FILES} ${SRC_FILES} ${UT_FILES})
-target_link_libraries(unittest GTest::GTest GTest::Main)
-target_link_libraries(unittest Boost::boost Boost::system)
-target_link_libraries(unittest ${CMAKE_THREAD_LIBS_INIT})
-target_link_libraries(unittest OpenSSL::SSL OpenSSL::Crypto)
-target_link_libraries(unittest g3logger)
-add_dependencies(unittest packagestaticcpp)
+# Unit Tests
+if(${BUILD_UT})
+ # googletest
+ enable_testing()
+ find_package(GTest REQUIRED)
+
+ add_executable(unittest ${HDR_FILES} ${SRC_FILES} ${UT_FILES})
+ target_link_libraries(unittest GTest::GTest GTest::Main)
+ target_link_libraries(unittest Boost::boost Boost::system)
+ target_link_libraries(unittest ${CMAKE_THREAD_LIBS_INIT})
+ target_link_libraries(unittest OpenSSL::SSL OpenSSL::Crypto)
+ target_link_libraries(unittest g3logger)
+ add_dependencies(unittest packagestaticcpp)
+endif(${BUILD_UT})
# web static assets
add_subdirectory(static)
@@ -129,6 +152,7 @@
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
+# Visual Studio Code helper
# this needs to be at the end to make sure all includes are handled correctly
get_property(C_INCLUDE_DIRS DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
execute_process(COMMAND python3 ${CMAKE_CURRENT_SOURCE_DIR}/scripts/prime_vscode_compile_db.py ${C_INCLUDE_DIRS})