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})