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