105 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
 | 
						|
include(${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/goahead.cmake)
 | 
						|
include(${UTILS_SOURCE_PATH}/WebServer/build/webserver.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
 | 
						|
# )
 | 
						|
 | 
						|
if (NOT DEFINED GOAHEAD_UPLOAD_TMP_PATH)
 | 
						|
message(FATAL_ERROR "YYou should set the GOAHEAD_UPLOAD_TMP_PATH variable so that the GOAHEAD module can temporarily save uploaded files.
 | 
						|
For example: set(GOAHEAD_UPLOAD_TMP_PATH  \"./goahead\")
 | 
						|
See:${IPC_SDK_PATH}/build/cmake/toolchain/linux.toolchain.cmake")
 | 
						|
endif()
 | 
						|
add_definitions(-DGOAHEAD_UPLOAD_TMP_PATH=\"${GOAHEAD_UPLOAD_TMP_PATH}\")
 | 
						|
 | 
						|
if (NOT DEFINED GOAHEAD_UPLOAD_PATH)
 | 
						|
message(FATAL_ERROR "YYou should set the GOAHEAD_UPLOAD_PATH variable so that the GOAHEAD module can temporarily save uploaded files.
 | 
						|
For example: set(GOAHEAD_UPLOAD_PATH  \"./goahead\")
 | 
						|
See:${IPC_SDK_PATH}/build/cmake/toolchain/linux.toolchain.cmake")
 | 
						|
endif()
 | 
						|
add_definitions(-DGOAHEAD_UPLOAD_PATH=\"${GOAHEAD_UPLOAD_PATH}\")
 | 
						|
 | 
						|
if (DEFINED GOAHEAD_LIMIT_POST)
 | 
						|
    set(ME_GOAHEAD_LIMIT_POST "ME_GOAHEAD_LIMIT_POST=${GOAHEAD_LIMIT_POST}")
 | 
						|
else()
 | 
						|
    set(ME_GOAHEAD_LIMIT_POST "")
 | 
						|
endif()
 | 
						|
 | 
						|
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
 | 
						|
    COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/modify/http.c ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/src
 | 
						|
    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} ME_GOAHEAD_UPLOAD_DIR=\"${GOAHEAD_UPLOAD_TMP_PATH}\" ${ME_GOAHEAD_LIMIT_POST} -f ../modify/goahead-linux-static-fancy.mk
 | 
						|
    # COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} -f ../modify/goahead-linux-static-fancy.mk // TODO:
 | 
						|
    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
 | 
						|
    # COMMAND mkdir ${GOAHEAD_UPLOAD_TMP_PATH}
 | 
						|
    COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/modify/http.c ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/src
 | 
						|
    COMMAND touch ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/src/http.c
 | 
						|
    WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
 | 
						|
)
 | 
						|
 | 
						|
define_file_name(${TARGET_NAME}) |