92 lines
3.6 KiB
CMake
92 lines
3.6 KiB
CMake
include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
|
|
include(${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/goahead.cmake)
|
|
set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH})
|
|
set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH})
|
|
|
|
include_directories(
|
|
./src
|
|
./include
|
|
${UTILS_SOURCE_PATH}/StatusCode/include
|
|
${UTILS_SOURCE_PATH}/Log/include
|
|
${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/inc
|
|
# ${UTILS_SOURCE_PATH}/LinuxApi/include
|
|
)
|
|
# link_directories(
|
|
# ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs
|
|
# )
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
if (NOT DEFINED GOAHEAD_DOCUMENTS_PATH)
|
|
set(GOAHEAD_DOCUMENTS_PATH "web")
|
|
endif()
|
|
if (NOT DEFINED GOAHEAD_CONFIG_FILE_PATH)
|
|
set(GOAHEAD_CONFIG_FILE_PATH "${PLATFORM_PATH}/cmake-shell/")
|
|
add_definitions(-DGOAHEAD_CONFIG_FILE_PATH=\"./\")
|
|
else()
|
|
add_definitions(-DGOAHEAD_CONFIG_FILE_PATH=\"${GOAHEAD_CONFIG_FILE_PATH}\")
|
|
endif()
|
|
add_definitions(-DGOAHEAD_DOCUMENTS_PATH=\"${GOAHEAD_DOCUMENTS_PATH}\")
|
|
|
|
aux_source_directory(./src SRC_FILES)
|
|
|
|
set(TARGET_NAME WebServer)
|
|
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
|
|
target_link_libraries(${TARGET_NAME} StatusCode Log -Wl,--start-group libgo.a libmbedtls.a libgoahead-mbedtls.a -Wl,--end-group)
|
|
|
|
if ("${CLANG_TIDY_SUPPORT}" MATCHES "true")
|
|
add_custom_target(
|
|
WebServer_code_check
|
|
COMMAND ${CLANG_TIDY_EXE}
|
|
-checks='${CLANG_TIDY_CHECKS}'
|
|
--header-filter=.*
|
|
--system-headers=false
|
|
${SRC_FILES}
|
|
${CLANG_TIDY_CONFIG}
|
|
-p ${PLATFORM_PATH}/cmake-shell
|
|
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/WebServer
|
|
)
|
|
file(GLOB_RECURSE HEADER_FILES *.h)
|
|
add_custom_target(
|
|
WebServer_code_format
|
|
COMMAND ${CLANG_FORMAT_EXE}
|
|
-style=file
|
|
-i ${SRC_FILES} ${HEADER_FILES}
|
|
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/WebServer
|
|
)
|
|
add_custom_command(
|
|
TARGET ${TARGET_NAME}
|
|
PRE_BUILD
|
|
COMMAND make WebServer_code_check
|
|
COMMAND make WebServer_code_format
|
|
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
|
)
|
|
endif()
|
|
|
|
# build goahead before make libgo.a
|
|
add_custom_command(
|
|
OUTPUT ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile
|
|
COMMAND echo "tar zxvf goahead-5.2.0.tar.gz"
|
|
COMMAND tar zxvf goahead-5.2.0.tar.gz
|
|
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/
|
|
)
|
|
add_custom_command(
|
|
OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
|
DEPENDS ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/Makefile
|
|
COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE}
|
|
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgo.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
|
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libmbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a
|
|
COMMAND mv ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/libgoahead-mbedtls.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a
|
|
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.crt ${PLATFORM_PATH}/cmake-shell/
|
|
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.key ${PLATFORM_PATH}/cmake-shell/
|
|
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/route.txt ${GOAHEAD_CONFIG_FILE_PATH}
|
|
COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt ${GOAHEAD_CONFIG_FILE_PATH}
|
|
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead
|
|
)
|
|
add_custom_target(
|
|
libgo.a
|
|
DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a
|
|
)
|
|
|
|
define_file_name(${TARGET_NAME}) |