cmake_minimum_required(VERSION 3.15)
project(MyPractices)
set(CMAKE_CXX_STANDARD 11)
set(PROJ_MAIN_PATH ${CMAKE_SOURCE_DIR})
#platform securec
set(PATH_SAFE_LIBS ${PROJ_MAIN_PATH}/platform/safelibs/libs)
set(PATH_SAFE_INC ${PROJ_MAIN_PATH}/platform/safelibs/include)
set(LIBS_LIST_SAFE
${PATH_SAFE_LIBS}/libdopra.a
${PATH_SAFE_LIBS}/libsecurec.a)
## googleTest
set(GOOGLETEST_VERSION 3.15)
set(PATH_GTEST_MAIN ${PROJ_MAIN_PATH}/googletest/googletest)
set(PATH_GTEST_MOCK ${PROJ_MAIN_PATH}/googletest/googlemock)
set(PATH_GTEST_INC_LIST
${PATH_GTEST_MAIN}/include
${PATH_GTEST_MAIN}/include/gtest
${PATH_GTEST_MOCK}/include
${PATH_GTEST_MOCK}/include/gmock)
set(SRC_INC_LIST
${PROJ_MAIN_PATH}/inc
${PROJ_MAIN_PATH}/src)
add_compile_options(-Wall)
# google test begin
include_directories(${PATH_GTEST_INC_LIST})
add_subdirectory(${PATH_GTEST_MOCK})
link_directories(${PATH_GTEST_MOCK})
set(GOOGLETESTLIB gtest gmock)
##gtest source files
set(GTEST_SRC_PATH_LIST ${PROJECT_SOURCE_DIR}/GTestLLT)
aux_source_directory(${GTEST_SRC_PATH_LIST} GTEST_SRC_LIST)
##google test end
##head files
include_directories(${SRC_INC_LIST})
include_directories(${PATH_SAFE_INC})
##souce files
aux_source_directory(${PROJECT_SOURCE_DIR} SRC_LIST_ROOT)
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_LIST_MAIN)
set(SRC_LIST_ALL
${GTEST_SRC_LIST}
${SRC_LIST_ROOT}
${SRC_LIST_MAIN})
link_libraries(${LIBS_LIST_SAFE})
add_executable(MyPractices ${SRC_LIST_ALL} )
target_link_libraries(MyPractices ${GOOGLETESTLIB})