hunting/test/CMakeLists.txt
2024-06-15 08:39:16 +08:00

64 lines
3.2 KiB
CMake

# cmake_minimum_required(VERSION 2.8.0)
# Compile gtest for test code.
if (EXISTS "${EXTERNAL_LIBS_OUTPUT_PATH}/libgtest.a")
message("googletest compile ok.")
else()
execute_process(COMMAND sh build_gtest.sh ${TARGET_PLATFORM} ${PLATFORM_PATH} ${PLATFORM_PATH} WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/gtest/)
execute_process(COMMAND mkdir ${PLATFORM_PATH}/output_files
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/gtest/)
execute_process(COMMAND mkdir ${PLATFORM_PATH}/output_files/libs
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/gtest/)
execute_process(COMMAND mkdir ${PLATFORM_PATH}/output_files/libs/external
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/gtest/)
execute_process(COMMAND mv ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/lib/libgtest.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgtest.a
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/gtest/)
execute_process(COMMAND mv ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/lib/libgmock.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgmock.a
WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/gtest/)
endif()
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX})
message("linux mock api will be set.")
set(TEST_LINUX_MOCK "-Wl,--wrap=fx_open" CACHE STRING INTERNAL FORCE)
set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=fx_fstat" CACHE STRING INTERNAL FORCE)
set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=fx_tcgetattr" CACHE STRING INTERNAL FORCE)
set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=fx_tcsetattr" CACHE STRING INTERNAL FORCE)
set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=fx_select" CACHE STRING INTERNAL FORCE)
set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=fx_write" CACHE STRING INTERNAL FORCE)
set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=fx_read" CACHE STRING INTERNAL FORCE)
set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=fx_access" CACHE STRING INTERNAL FORCE)
set(TEST_LINUX_MOCK "${TEST_LINUX_MOCK},--wrap=fx_fopen" CACHE STRING INTERNAL FORCE)
endif()
# Mock Linux api.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TEST_LINUX_MOCK}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TEST_LINUX_MOCK}")
# build gtest and gmock
# add_custom_command(
# OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgtest.a
# OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libgmock.a
# COMMAND echo "Build google test for test code."
# COMMAND sh build_gtest.sh ${TARGET_PLATFORM} ${PLATFORM_PATH} ${PLATFORM_PATH}
# COMMAND mv ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/lib/libgtest.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgtest.a
# COMMAND mv ${EXTERNAL_SOURCE_PATH}/gtest/googletest-release-1.11.0/googlemock/lib/libgmock.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libgmock.a
# WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/gtest/
# )
# # add_custom_target(
# # google_test
# # DEPENDS libgtest.a libgmock.a
# # )
# add_custom_target(
# libgtest.a
# DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libgtest.a
# )
# add_custom_target(
# libgmock.a
# DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libgmock.a
# )
add_subdirectory(all)
add_subdirectory(application)
add_subdirectory(middleware)
add_subdirectory(utils)
add_subdirectory(hal)