1616
1717if (NOT CMAKE_PROJECT_NAME )
1818 cmake_minimum_required (VERSION 3.10 )
19- project (api_test_app CXX )
19+ project (api-test-app CXX )
2020
2121 # Read SYSROOT_PATH from environment if not set as CMake variable
2222 if (NOT SYSROOT_PATH AND DEFINED ENV{SYSROOT_PATH})
@@ -30,7 +30,7 @@ if (NOT CMAKE_PROJECT_NAME)
3030
3131 # Add paths for finding installed packages
3232 if (SYSROOT_PATH)
33- list (APPEND CMAKE_PREFIX_PATH
33+ list (APPEND CMAKE_PREFIX_PATH
3434 "${SYSROOT_PATH} /usr/lib/cmake"
3535 "${SYSROOT_PATH} /usr/share/cmake"
3636 )
@@ -40,117 +40,52 @@ if (NOT CMAKE_PROJECT_NAME)
4040 "${SYSROOT_PATH} /tools/cmake"
4141 )
4242 endif ()
43-
44- # Add standard system paths for finding packages
45- list (APPEND CMAKE_PREFIX_PATH
46- "/usr/local"
47- "/usr"
48- )
43+
4944endif ()
5045
51- set (API_TEST_APP api_test_app )
46+ set (API_TEST_APP api-test-app )
5247
5348message ("Setup ${API_TEST_APP} " )
5449
5550add_compile_options (-Wall -Wextra -Wpedantic )
5651
57- # Generate header file with embedded JSON content
58- file (READ "../../docs/openrpc/the-spec/firebolt-open-rpc.json" JSON_CONTENT )
59- configure_file (
60- cpp/firebolt-open-rpc.json.in
61- "${CMAKE_BINARY_DIR} /generated/firebolt-open-rpc_json.h"
62- @ONLY
63- )
64-
6552file (GLOB SOURCES CONFIGURE_DEPENDS cpp/*.cpp )
6653
6754add_executable (${API_TEST_APP}
6855 main.cpp
56+ utils.cpp
6957 ${SOURCES}
7058)
7159
60+ find_package (FireboltTransport CONFIG REQUIRED )
61+
7262if (ENABLE_DEMO_APP)
73- # Building as part of the main project - dependencies already available
74- if (TARGET nlohmann_json_schema_validator::validator)
75- set (NLOHMANN_VALIDATOR_TARGET nlohmann_json_schema_validator::validator)
76- else ()
77- set (NLOHMANN_VALIDATOR_TARGET nlohmann_json_schema_validator)
78- endif ()
79- if (TARGET CURL::libcurl)
80- set (CURL_TARGET CURL::libcurl)
81- else ()
82- set (CURL_TARGET curl)
83- endif ()
84- if (TARGET Threads::Threads)
85- set (THREADS_TARGET Threads::Threads)
86- else ()
87- set (THREADS_TARGET pthread)
88- endif ()
8963 target_link_libraries (${API_TEST_APP}
9064 PRIVATE
9165 FireboltClient
92- nlohmann_json::nlohmann_json
93- ${NLOHMANN_VALIDATOR_TARGET}
94- ${CURL_TARGET}
95- ${THREADS_TARGET}
9666 )
97- set (SOURCE_ROOT ${CMAKE_SOURCE_DIR} )
98- target_link_directories (${API_TEST_APP} PRIVATE $ENV{SYSROOT_PATH} /usr/lib )
9967else ()
100- # Building standalone - find all installed dependencies
101- find_package (FireboltTransport CONFIG REQUIRED )
10268 find_package (FireboltClient CONFIG REQUIRED )
103- find_package (nlohmann_json REQUIRED )
104- find_package (nlohmann_json_schema_validator CONFIG REQUIRED )
105- find_package (CURL REQUIRED )
106- find_package (Threads REQUIRED )
107- if (TARGET nlohmann_json_schema_validator::validator)
108- set (NLOHMANN_VALIDATOR_TARGET nlohmann_json_schema_validator::validator)
109- else ()
110- set (NLOHMANN_VALIDATOR_TARGET nlohmann_json_schema_validator)
111- endif ()
112- if (TARGET CURL::libcurl)
113- set (CURL_TARGET CURL::libcurl)
114- else ()
115- set (CURL_TARGET curl)
116- endif ()
117- if (TARGET Threads::Threads)
118- set (THREADS_TARGET Threads::Threads)
119- else ()
120- set (THREADS_TARGET pthread)
121- endif ()
12269 target_link_libraries (${API_TEST_APP}
12370 PRIVATE
12471 FireboltTransport::FireboltTransport
12572 FireboltClient::FireboltClient
126- nlohmann_json::nlohmann_json
127- ${NLOHMANN_VALIDATOR_TARGET}
128- ${CURL_TARGET}
129- ${THREADS_TARGET}
13073 )
131- set (SOURCE_ROOT ${CMAKE_SOURCE_DIR} /../..)
132- endif ()
74+ endif ()
13375
13476target_include_directories (${API_TEST_APP}
13577 PRIVATE
136-
137- $<BUILD_INTERFACE :${SOURCE_ROOT} /include />
138- $<BUILD_INTERFACE :${CMAKE_BINARY_DIR} /src />
139- $<BUILD_INTERFACE :${SOURCE_ROOT} /test />
140- $<BUILD_INTERFACE :${SOURCE_ROOT} /src />
141- $<BUILD_INTERFACE :${CMAKE_BINARY_DIR} /generated >
78+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /../../src >
79+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} >
80+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} /cpp >
14281)
14382
144- add_compile_definitions (UT_OPEN_RPC_FILE= "firebolt-open-rpc.json" )
145-
14683set_target_properties (${API_TEST_APP} PROPERTIES
14784 CXX_STANDARD 17
14885 CXX_STANDARD_REQUIRED YES
149- BUILD_RPATH "${CMAKE_BINARY_DIR} /src"
150- INSTALL_RPATH "$ORIGIN/../src"
15186)
15287
15388install (
15489 TARGETS ${API_TEST_APP}
15590 DESTINATION bin
156- )
91+ )
0 commit comments