##############################################################################
#
#  $Id$
#
#  Copyright 2012 Andreas Stewering
#
#  This file is part of the canrestbus library.
#
#  The canrestbus library is free software: you can redistribute it and/or modify
#  it under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or (at your
#  option) any later version.
#
#  The canrestbus library is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
#  or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
#  License for more details.
#
#  You should have received a copy of the GNU Lesser General Public License
#  along with the canrestbus library. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################

SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -g -fstack-usage -fstack-check")

INCLUDE_DIRECTORIES(
    ${PROJECT_BINARY_DIR}
    ${PROJECT_SOURCE_DIR}
    ${PROJECT_INCLUDE_DIR}
    ${LIBPCRE_INCLUDE_DIRS}
    )

LINK_DIRECTORIES(${PROJECT_BINARY_DIR}/src)

ADD_EXECUTABLE(testudsserver main_udsserver.c seed.c)
TARGET_LINK_LIBRARIES(testudsserver ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testudsclient main_udsclient.c seed.c)
TARGET_LINK_LIBRARIES(testudsclient ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testxcpmaster main_xcpmaster.c)
TARGET_LINK_LIBRARIES(testxcpmaster ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testxcpa2l main_xcpa2l.c)
TARGET_LINK_LIBRARIES(testxcpa2l ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testccpa2l main_ccpa2l.c)
TARGET_LINK_LIBRARIES(testccpa2l ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testccpmaster main_ccpmaster.c)
TARGET_LINK_LIBRARIES(testccpmaster ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testccpapi main_ccpapi.c)
TARGET_LINK_LIBRARIES(testccpapi ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testa2l main_a2l.c)
TARGET_LINK_LIBRARIES(testa2l ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testxcpapi main_xcpapi.c)
TARGET_LINK_LIBRARIES(testxcpapi ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES} )

ADD_EXECUTABLE(testvbf main_vbf.c)
TARGET_LINK_LIBRARIES(testvbf ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testisotpsend main_isotpsend.c)
TARGET_LINK_LIBRARIES(testisotpsend ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testisotprecv main_isotprecv.c)
TARGET_LINK_LIBRARIES(testisotprecv ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testsocketcandsend main_socketcand_send.c)
TARGET_LINK_LIBRARIES(testsocketcandsend ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testsocketcandreceive main_socketcand_receive.c)
TARGET_LINK_LIBRARIES(testsocketcandreceive ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testlists main_lists.c)
TARGET_LINK_LIBRARIES(testlists ${PROJECT_NAME} rt m)

ADD_EXECUTABLE(testlinldf main_linldf.c)
TARGET_LINK_LIBRARIES(testlinldf ${PROJECT_NAME} rt m)

ADD_EXECUTABLE(testlinldf_parser main_linldf_parser.c)
TARGET_LINK_LIBRARIES(testlinldf_parser ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testlinsllinlistener main_lin_sllin_listener.c)
TARGET_LINK_LIBRARIES(testlinsllinlistener ${PROJECT_NAME} rt m ${LIBPCRE_LIBRARIES})

ADD_EXECUTABLE(testlinbitscanner main_lin_bit_scanner.c)
TARGET_LINK_LIBRARIES(testlinbitscanner ${PROJECT_NAME} rt m)

ADD_EXECUTABLE(testsignalencodedecode main_signal_encode_decode.c)
TARGET_LINK_LIBRARIES(testsignalencodedecode ${PROJECT_NAME} rt m)

ADD_EXECUTABLE(testsignalreset main_signal_reset.c)
TARGET_LINK_LIBRARIES(testsignalreset ${PROJECT_NAME})

ADD_EXECUTABLE(testsignalbits main_signal_test_bits.c)
TARGET_LINK_LIBRARIES(testsignalbits ${PROJECT_NAME})

ADD_EXECUTABLE(testdbcsimulate main_dbc_simulate.c)
TARGET_LINK_LIBRARIES(testdbcsimulate ${PROJECT_NAME})

ADD_EXECUTABLE(testcanfd main_canfd.c)
TARGET_LINK_LIBRARIES(testcanfd ${PROJECT_NAME})

ADD_EXECUTABLE(testudsclientendlesstest main_udsclient_endlesstest.c)
TARGET_LINK_LIBRARIES(testudsclientendlesstest ${PROJECT_NAME})


ADD_TEST(sendrecieve sendrecieve)
ADD_TEST(testudsserver testudsserver)
ADD_TEST(testudsclient testudsclient)
ADD_TEST(testxcpmaster testxcpmaster)
ADD_TEST(testxcpa2l testxcpa2l)
ADD_TEST(testa2l testa2l)
ADD_TEST(testxcpapi testxcpapi)
ADD_TEST(testvbf testvbf)
ADD_TEST(testisotpsend testisotpsend)
ADD_TEST(testisotprecv testisotrecv)
ADD_TEST(testsocketcandsend testsocketcandsend)
ADD_TEST(testsocketcandreceive testsocketcandreceive)
ADD_TEST(testudsdiagnostic testudsdiagnostic)
ADD_TEST(testlists testlists)
ADD_TEST(testlinldf testlinldf)
ADD_TEST(testlinldf_parser testlinldf_parser)
ADD_TEST(testlinsllinlistener testlinsllinlistener)
ADD_TEST(testlinbitscanner testlinbitscanner)
ADD_TEST(testsignalencodedecode testsignalencodedecode)
ADD_TEST(testsignalreset testsignalreset)
ADD_TEST(testsignalbits testsignalbits)
ADD_TEST(testdbcsimulate testdbcsimulate)
ADD_TEST(testcanfd testcanfd)
ADD_TEST(testudsclientendlesstest testudsclientendlesstest)

ADD_SUBDIRECTORY (xcpslave)
ADD_SUBDIRECTORY (ccpslave)
