64 lines
3.2 KiB
CMake
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)
|
|
|