|
@@ -13,7 +13,7 @@ set(CMAKE_DISABLE_SOURCE_CHANGES ON)
|
|
|
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
|
|
|
|
|
|
# Make sure we can import out CMake functions
|
|
|
-list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
|
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
|
|
|
|
|
|
# Load in the needed CMake modules
|
|
|
include(CheckIncludeFiles)
|
|
@@ -38,8 +38,10 @@ determine_target_architecture(CIVETWEB_ARCHITECTURE)
|
|
|
include(GNUInstallDirs)
|
|
|
|
|
|
# Detect the platform reliably
|
|
|
-if(NOT MACOSX AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
|
- SET(DARWIN YES)
|
|
|
+if(${KERNEL_NAME} MATCHES "zephyr")
|
|
|
+ SET(ZEPHYR YES)
|
|
|
+elseif(NOT MACOSX AND ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
|
|
+ SET(DARWIN YES)
|
|
|
elseif(NOT BSD AND ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
|
|
|
SET(FREEBSD YES)
|
|
|
elseif(NOT LINUX AND ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
|
|
@@ -294,27 +296,6 @@ else()
|
|
|
add_c_compiler_flag(-std=${CIVETWEB_C_STANDARD})
|
|
|
endif()
|
|
|
|
|
|
-#Warnings: enable everything
|
|
|
-add_c_compiler_flag(-Wall)
|
|
|
-add_c_compiler_flag(-Wextra)
|
|
|
-add_c_compiler_flag(-Wshadow)
|
|
|
-add_c_compiler_flag(-Wconversion)
|
|
|
-add_c_compiler_flag(-Wmissing-prototypes)
|
|
|
-add_c_compiler_flag(-Weverything)
|
|
|
-add_c_compiler_flag(-Wparentheses)
|
|
|
-add_c_compiler_flag(/W4) # VisualStudio highest warning level
|
|
|
-
|
|
|
-#Warnings: Disable some warnings
|
|
|
-add_c_compiler_flag(-Wno-padded) # padding in structures by compiler
|
|
|
-add_c_compiler_flag(-Wno-unused-macros) # so what?
|
|
|
-Check_C_Compiler_Flag( HAVE_NO_RESERVED_ID_MACROS -Wno-reserved-id-macros)
|
|
|
-if (HAVE_NO_RESERVED_ID_MACROS)
|
|
|
-add_c_compiler_flag(-Wno-reserved-id-macros) # for system headers
|
|
|
-endif (HAVE_NO_RESERVED_ID_MACROS)
|
|
|
-add_c_compiler_flag(-Wno-format-nonliteral) # printf(myFormatStringVar, ...)
|
|
|
-add_c_compiler_flag(-Wno-cast-qual) # const cast
|
|
|
-add_c_compiler_flag(/Wd4820) # padding
|
|
|
-
|
|
|
if (MINGW)
|
|
|
add_c_compiler_flag(-Wno-format)
|
|
|
endif()
|
|
@@ -322,9 +303,6 @@ if (NOT CIVETWEB_ALLOW_WARNINGS)
|
|
|
add_c_compiler_flag(-Werror)
|
|
|
add_c_compiler_flag(/WX)
|
|
|
endif()
|
|
|
-add_c_compiler_flag(-pedantic-errors)
|
|
|
-add_c_compiler_flag(-fvisibility=hidden)
|
|
|
-add_c_compiler_flag(-fstack-protector-strong RELEASE)
|
|
|
if (${CIVETWEB_ENABLE_LTO})
|
|
|
add_c_compiler_flag(-flto RELEASE)
|
|
|
endif()
|
|
@@ -335,7 +313,6 @@ if (HAVE_C_FLAG_FSANITIZE_ADDRESS)
|
|
|
add_c_compiler_flag(-static-asan DEBUG)
|
|
|
endif()
|
|
|
endif()
|
|
|
-add_c_compiler_flag(-fstack-protector-all DEBUG)
|
|
|
if (MINGW)
|
|
|
add_c_compiler_flag(-mwindows)
|
|
|
endif()
|
|
@@ -417,6 +394,79 @@ if (CIVETWEB_ENABLE_CXX)
|
|
|
add_cxx_compiler_flag(--coverage COVERAGE)
|
|
|
endif()
|
|
|
|
|
|
+if (NOT ZEPHYR)
|
|
|
+ #Warnings: enable everything
|
|
|
+ add_c_compiler_flag(-Wall)
|
|
|
+ add_c_compiler_flag(-Wextra)
|
|
|
+ add_c_compiler_flag(-Wshadow)
|
|
|
+ add_c_compiler_flag(-Wconversion)
|
|
|
+ add_c_compiler_flag(-Wmissing-prototypes)
|
|
|
+ add_c_compiler_flag(-Weverything)
|
|
|
+ add_c_compiler_flag(-Wparentheses)
|
|
|
+ add_c_compiler_flag(/W4) # VisualStudio highest warning level
|
|
|
+
|
|
|
+ #Warnings: Disable some warnings
|
|
|
+ add_c_compiler_flag(-Wno-padded) # padding in structures by compiler
|
|
|
+ add_c_compiler_flag(-Wno-unused-macros) # so what?
|
|
|
+ Check_C_Compiler_Flag( HAVE_NO_RESERVED_ID_MACROS -Wno-reserved-id-macros)
|
|
|
+ if (HAVE_NO_RESERVED_ID_MACROS)
|
|
|
+ add_c_compiler_flag(-Wno-reserved-id-macros) # for system headers
|
|
|
+ endif (HAVE_NO_RESERVED_ID_MACROS)
|
|
|
+ add_c_compiler_flag(-Wno-format-nonliteral) # printf(myFormatStringVar, ...)
|
|
|
+ add_c_compiler_flag(-Wno-cast-qual) # const cast
|
|
|
+ add_c_compiler_flag(/Wd4820) # padding
|
|
|
+
|
|
|
+ add_c_compiler_flag(-pedantic-errors)
|
|
|
+ add_c_compiler_flag(-fvisibility=hidden)
|
|
|
+ add_c_compiler_flag(-fstack-protector-strong RELEASE)
|
|
|
+ add_c_compiler_flag(-fstack-protector-all DEBUG)
|
|
|
+else()
|
|
|
+ # This policy is needed to override options with variables
|
|
|
+ cmake_policy(SET CMP0077 NEW)
|
|
|
+
|
|
|
+ # Configure what you need/support in Zephyr
|
|
|
+ set(CIVETWEB_SERVE_NO_FILES ON)
|
|
|
+ set(CIVETWEB_SERVE_NO_FILESYSTEMS ON)
|
|
|
+ set(CIVETWEB_DISABLE_CGI ON)
|
|
|
+ set(CIVETWEB_DISABLE_CACHING ON)
|
|
|
+ set(CIVETWEB_ENABLE_SSL OFF)
|
|
|
+ set(CIVETWEB_ENABLE_SSL_DYNAMIC_LOADING OFF)
|
|
|
+
|
|
|
+ set(CIVETWEB_ENABLE_LUA OFF)
|
|
|
+ set(CIVETWEB_ENABLE_DUKTAPE OFF)
|
|
|
+ set(CIVETWEB_ENABLE_MEMORY_DEBUGGING OFF)
|
|
|
+ set(CIVETWEB_ENABLE_SERVER_EXECUTABLE OFF)
|
|
|
+ set(CIVETWEB_ENABLE_ASAN OFF)
|
|
|
+ set(CIVETWEB_INSTALL_EXECUTABLE OFF)
|
|
|
+
|
|
|
+ set(CIVETWEB_THREAD_STACK_SIZE 0)
|
|
|
+
|
|
|
+ set(BUILD_SHARED_LIBS OFF)
|
|
|
+
|
|
|
+ add_definitions(-DMG_EXTERNAL_FUNCTION_mg_cry_internal_impl)
|
|
|
+ add_definitions(-DMG_EXTERNAL_FUNCTION_log_access)
|
|
|
+
|
|
|
+ add_definitions(-DNO_ALTERNATIVE_QUEUE)
|
|
|
+ add_definitions(-DZEPHYR_VERSION=${KERNEL_VERSION_STRING})
|
|
|
+
|
|
|
+ zephyr_interface_library_named(CIVETWEB)
|
|
|
+
|
|
|
+ target_include_directories(CIVETWEB INTERFACE src)
|
|
|
+ target_include_directories(CIVETWEB INTERFACE include)
|
|
|
+ target_include_directories(CIVETWEB INTERFACE ${CMAKE_SOURCE_DIR}/src)
|
|
|
+
|
|
|
+ zephyr_include_directories(include)
|
|
|
+
|
|
|
+ zephyr_library()
|
|
|
+ zephyr_library_sources(
|
|
|
+ src/civetweb.c
|
|
|
+ )
|
|
|
+
|
|
|
+ zephyr_library_link_libraries(CIVETWEB)
|
|
|
+ target_link_libraries(CIVETWEB INTERFACE zephyr_interface)
|
|
|
+endif()
|
|
|
+
|
|
|
+
|
|
|
# Set up the definitions
|
|
|
if (${CMAKE_BUILD_TYPE} MATCHES "[Dd]ebug")
|
|
|
add_definitions(-DDEBUG)
|
|
@@ -435,6 +485,9 @@ endif()
|
|
|
if (CIVETWEB_SERVE_NO_FILES)
|
|
|
add_definitions(-DNO_FILES)
|
|
|
endif()
|
|
|
+if (CIVETWEB_SERVE_NO_FILESYSTEMS)
|
|
|
+ add_definitions(-DNO_FILESYSTEMS)
|
|
|
+endif()
|
|
|
if (CIVETWEB_DISABLE_CGI)
|
|
|
add_definitions(-DNO_CGI)
|
|
|
endif()
|
|
@@ -476,6 +529,10 @@ add_c_compiler_flag(-m64)
|
|
|
endif()
|
|
|
# TODO: add support for -march
|
|
|
|
|
|
+if (ZEPHYR)
|
|
|
+ return()
|
|
|
+endif()
|
|
|
+
|
|
|
# Build the targets
|
|
|
add_subdirectory(src)
|
|
|
|