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 ("${COMPILE_IMPROVE_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_SSL_KEY=\"${GOAHEAD_CONFIG_FILE_PATH}/self.key\" ME_GOAHEAD_SSL_CERTIFICATE=\"${GOAHEAD_CONFIG_FILE_PATH}/self.crt\" ${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 echo "Copy goahead lib to output path." 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 ${PLATFORM_PATH}/cmake-shell/ COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt ${PLATFORM_PATH}/cmake-shell/ 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/ ) add_custom_target( goahead_compile COMMAND test ! -f ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a || rm ${EXTERNAL_LIBS_OUTPUT_PATH}/libgo.a COMMAND test ! -f ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a || rm ${EXTERNAL_LIBS_OUTPUT_PATH}/libmbedtls.a COMMAND test ! -f ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a || rm ${EXTERNAL_LIBS_OUTPUT_PATH}/libgoahead-mbedtls.a COMMAND make CC=${CMAKE_C_COMPILER} ARCH=${SET_ARCH} PROFILE=${LIB_TYPE} ME_GOAHEAD_UPLOAD_DIR=\"${GOAHEAD_UPLOAD_TMP_PATH}\" ME_GOAHEAD_SSL_KEY=\"${GOAHEAD_CONFIG_FILE_PATH}/self.key\" ME_GOAHEAD_SSL_CERTIFICATE=\"${GOAHEAD_CONFIG_FILE_PATH}/self.crt\" ${ME_GOAHEAD_LIMIT_POST} -f ../modify/goahead-linux-static-fancy.mk COMMAND echo "Copy goahead lib to output path." 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 ${PLATFORM_PATH}/cmake-shell/ COMMAND cp ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt ${PLATFORM_PATH}/cmake-shell/ WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead ) define_file_name(${TARGET_NAME}) file(GLOB_RECURSE INSTALL_HEADER_FILES include/*.h) install(FILES ${INSTALL_HEADER_FILES} DESTINATION include) install(FILES ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.crt DESTINATION config) install(FILES ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/build/${GOAHEAD_INCLUDE_PATH}/bin/self.key DESTINATION config) install(FILES ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/route.txt DESTINATION config) install(FILES ${EXTERNAL_SOURCE_PATH}/goahead-5.2.0/GoAhead/test/auth.txt DESTINATION config)