CMakeLists.txt 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587
  1. ####################################################################################################################
  2. ####################################################################################################################
  3. ####################################################################################################################
  4. # General
  5. ####################################################################################################################
  6. ####################################################################################################################
  7. ####################################################################################################################
  8. ##########################################################
  9. # Basic
  10. ##########################################################
  11. cmake_minimum_required(VERSION 3.30)
  12. project(ls-std VERSION 2026.1.0.0)
  13. set(MODULE_NAME_BOXING ls-std-boxing)
  14. set(MODULE_NAME_CORE ls-std-core)
  15. set(MODULE_NAME_ENCODING ls-std-encoding)
  16. set(MODULE_NAME_EVENT ls-std-event)
  17. set(MODULE_NAME_IO ls-std-io)
  18. set(MODULE_NAME_TIME ls-std-time)
  19. set(GOOGLE_TEST_MODULE googletest-1.15.2)
  20. set(CLI_NAME_BASE64 cli-base64)
  21. ##########################################################
  22. # Options
  23. ##########################################################
  24. option(LS_STD_BUILD_WITH_TESTS "Build project with tests..." OFF)
  25. option(LS_STD_BUILD_WITH_SUPPORTED_COMPILER "Build project with supported compiler only..." ON)
  26. option(LS_STD_BUILD_STATIC "Build ls-std static library..." ON)
  27. option(LS_STD_BUILD_SHARED "Build ls-std shared library..." OFF)
  28. option(LS_STD_BUILD_WITH_JNI "Build ls-std shared library with JNI..." OFF)
  29. set(TARGET_COUNTER 0)
  30. if (${LS_STD_BUILD_STATIC})
  31. math(EXPR TARGET_COUNTER "${TARGET_COUNTER} + 1")
  32. set(GOAL "static library")
  33. endif ()
  34. if (${LS_STD_BUILD_SHARED})
  35. math(EXPR TARGET_COUNTER "${TARGET_COUNTER} + 1")
  36. set(GOAL "shared library")
  37. endif ()
  38. message("${PROJECT_NAME}: [Goal] ${GOAL}")
  39. if (TARGET_COUNTER GREATER 1)
  40. message("${PROJECT_NAME}: [Error] only one goal supported at the same time!")
  41. return()
  42. endif ()
  43. if (TARGET_COUNTER EQUAL 0)
  44. message("${PROJECT_NAME}: [Error] no goal selected!")
  45. return()
  46. endif ()
  47. ##########################################################
  48. # JNI flag check
  49. ##########################################################
  50. if (${LS_STD_BUILD_WITH_JNI})
  51. if (${LS_STD_BUILD_SHARED})
  52. message("${PROJECT_NAME}: build with JNI support...")
  53. else ()
  54. message("${PROJECT_NAME}: [Error] JNI support requires shared build goal!")
  55. return()
  56. endif ()
  57. endif ()
  58. ##########################################################
  59. # Compiler Settings
  60. ##########################################################
  61. message("${PROJECT_NAME}: Setting compiler flags...")
  62. set(CMAKE_CXX_STANDARD 17)
  63. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  64. set(CMAKE_CXX_EXTENSIONS OFF)
  65. ##########################################################
  66. # Compiler Support
  67. ##########################################################
  68. if (${LS_STD_BUILD_WITH_SUPPORTED_COMPILER})
  69. message("${PROJECT_NAME}: build with compiler support...")
  70. # define supported compilers
  71. if (${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC OR
  72. ${CMAKE_CXX_COMPILER_ID} STREQUAL Clang OR
  73. ${CMAKE_CXX_COMPILER_ID} STREQUAL AppleClang)
  74. message("${PROJECT_NAME}: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION} is supported...")
  75. else ()
  76. message("${PROJECT_NAME}: [Error] ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION} is not supported... terminated!")
  77. return()
  78. endif ()
  79. endif ()
  80. ######################################################
  81. # Find Packages
  82. ######################################################
  83. if (${LS_STD_BUILD_WITH_JNI})
  84. if (DEFINED ENV{JAVA_HOME})
  85. message("JAVA_HOME found in '$ENV{JAVA_HOME}' location...")
  86. else ()
  87. message("[Error] JAVA_HOME not found!")
  88. return()
  89. endif ()
  90. message("${PROJECT_NAME}: finding JNI package in '$ENV{JAVA_HOME}'...")
  91. find_package(JNI REQUIRED)
  92. endif ()
  93. ######################################################
  94. # Include Directories
  95. ######################################################
  96. message("${PROJECT_NAME}: Adding include directories...")
  97. if (${LS_STD_BUILD_WITH_JNI})
  98. include_directories(${JAVA_INCLUDE_PATH})
  99. include_directories(${JAVA_INCLUDE_PATH2})
  100. include_directories(${JAVA_AWT_INCLUDE_PATH})
  101. endif ()
  102. if (${LS_STD_BUILD_WITH_TESTS})
  103. include_directories(${CMAKE_CURRENT_SOURCE_DIR}/test)
  104. include_directories(${CMAKE_CURRENT_LIST_DIR}/test/lib/${GOOGLE_TEST_MODULE}/googletest/include)
  105. include_directories(${CMAKE_CURRENT_LIST_DIR}/test/lib/${GOOGLE_TEST_MODULE}/googlemock/include)
  106. endif ()
  107. include_directories(${CMAKE_CURRENT_LIST_DIR}/include)
  108. ######################################################
  109. # Add Other CMake Dependencies
  110. ######################################################
  111. message("${PROJECT_NAME}: Adding additional cmake dependencies...")
  112. if (${LS_STD_BUILD_WITH_TESTS})
  113. add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/test/lib/${GOOGLE_TEST_MODULE})
  114. endif ()
  115. ####################################################################################################################
  116. ####################################################################################################################
  117. ####################################################################################################################
  118. # Source Files Modularization
  119. ####################################################################################################################
  120. ####################################################################################################################
  121. ####################################################################################################################
  122. include(cmake/SourceFiles.cmake)
  123. set(SOURCE_FILES_BOXING)
  124. collect_boxing_module_source_files(SOURCE_FILES_BOXING)
  125. set(SOURCE_FILES_CORE)
  126. collect_core_module_source_files(SOURCE_FILES_CORE)
  127. set(SOURCE_FILES_CORE_JNI)
  128. collect_core_jni_module_source_files(SOURCE_FILES_CORE_JNI)
  129. set(SOURCE_FILES_ENCODING)
  130. collect_encoding_module_source_files(SOURCE_FILES_ENCODING)
  131. set(SOURCE_FILES_EVENT)
  132. collect_event_module_source_files(SOURCE_FILES_EVENT)
  133. set(SOURCE_FILES_IO)
  134. collect_io_module_source_files(SOURCE_FILES_IO)
  135. set(SOURCE_FILES_TIME)
  136. collect_time_module_source_files(SOURCE_FILES_TIME)
  137. set(SOURCE_FILES_LINUX_TIME)
  138. set(SOURCE_FILES_WINDOWS_TIME)
  139. if (UNIX OR APPLE)
  140. message("${MODULE_NAME_TIME}: Add UNIX files for time module...")
  141. set(SOURCE_FILES_LINUX_TIME
  142. ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/time/system-time/PosixClock.cpp)
  143. else (WIN32)
  144. message("${MODULE_NAME_TIME}: Add Windows files for time module...")
  145. set(SOURCE_FILES_WINDOWS_TIME
  146. ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/time/system-time/WindowsClock.cpp)
  147. endif ()
  148. set(SOURCE_FILES_TIME_JNI)
  149. collect_time_jni_module_source_files(SOURCE_FILES_TIME_JNI)
  150. ####################################################################################################################
  151. ####################################################################################################################
  152. ####################################################################################################################
  153. # Unit Test Files Modularization
  154. ####################################################################################################################
  155. ####################################################################################################################
  156. ####################################################################################################################
  157. if (${LS_STD_BUILD_WITH_TESTS})
  158. include(cmake/TestFiles.cmake)
  159. set(UNIT_TEST_FILES_BOXING)
  160. collect_boxing_module_test_files(UNIT_TEST_FILES_BOXING)
  161. set(UNIT_TEST_FILES_CORE)
  162. collect_core_module_test_files(UNIT_TEST_FILES_CORE)
  163. set(UNIT_TEST_FILES_CORE_JNI)
  164. collect_core_jni_module_test_files(UNIT_TEST_FILES_CORE_JNI)
  165. set(UNIT_TEST_FILES_ENCODING)
  166. collect_encoding_module_test_files(UNIT_TEST_FILES_ENCODING)
  167. set(UNIT_TEST_FILES_EVENT)
  168. collect_event_module_test_files(UNIT_TEST_FILES_EVENT)
  169. set(UNIT_TEST_FILES_IO)
  170. collect_io_module_test_files(UNIT_TEST_FILES_IO)
  171. set(UNIT_TEST_FILES_SERIALIZATION)
  172. collect_serialization_module_test_files(UNIT_TEST_FILES_SERIALIZATION)
  173. set(UNIT_TEST_FILES_TIME)
  174. collect_time_module_test_files(UNIT_TEST_FILES_TIME)
  175. endif ()
  176. ####################################################################################################################
  177. ####################################################################################################################
  178. ####################################################################################################################
  179. # Unit Test Suite Builds
  180. ####################################################################################################################
  181. ####################################################################################################################
  182. ####################################################################################################################
  183. ##########################################################
  184. # Unit Build Tests (boxing)
  185. ##########################################################
  186. if (${LS_STD_BUILD_WITH_TESTS})
  187. message("${MODULE_NAME_BOXING}: Building unit tests...")
  188. add_executable(${MODULE_NAME_BOXING}-unit-test ${UNIT_TEST_FILES_BOXING})
  189. endif ()
  190. ##########################################################
  191. # Unit Build Tests (core)
  192. ##########################################################
  193. if (${LS_STD_BUILD_WITH_TESTS})
  194. if (${LS_STD_BUILD_WITH_JNI})
  195. message("${MODULE_NAME_CORE}: Building unit tests with JNI support...")
  196. add_executable(${MODULE_NAME_CORE}-unit-test ${UNIT_TEST_FILES_CORE} ${UNIT_TEST_FILES_CORE_JNI})
  197. else ()
  198. message("${MODULE_NAME_CORE}: Building unit tests...")
  199. add_executable(${MODULE_NAME_CORE}-unit-test ${UNIT_TEST_FILES_CORE})
  200. endif ()
  201. endif ()
  202. ##########################################################
  203. # Unit Build Tests (encoding)
  204. ##########################################################
  205. if (${LS_STD_BUILD_WITH_TESTS})
  206. message("${MODULE_NAME_ENCODING}: Building unit tests...")
  207. add_executable(${MODULE_NAME_ENCODING}-unit-test ${UNIT_TEST_FILES_ENCODING})
  208. endif ()
  209. ##########################################################
  210. # Unit Build Tests (event)
  211. ##########################################################
  212. if (${LS_STD_BUILD_WITH_TESTS})
  213. message("${MODULE_NAME_EVENT}: Building unit tests...")
  214. add_executable(${MODULE_NAME_EVENT}-unit-test ${UNIT_TEST_FILES_EVENT})
  215. endif ()
  216. ##########################################################
  217. # Unit Build Tests (io)
  218. ##########################################################
  219. if (${LS_STD_BUILD_WITH_TESTS})
  220. message("${MODULE_NAME_IO}: Building unit tests...")
  221. add_executable(${MODULE_NAME_IO}-unit-test
  222. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestException.cpp
  223. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestHelper.cpp
  224. ${UNIT_TEST_FILES_IO})
  225. endif ()
  226. ##########################################################
  227. # Unit Build Tests (time)
  228. ##########################################################
  229. if (${LS_STD_BUILD_WITH_TESTS})
  230. message("${MODULE_NAME_TIME}: Building unit tests...")
  231. add_executable(${MODULE_NAME_TIME}-unit-test ${UNIT_TEST_FILES_TIME})
  232. endif ()
  233. ##########################################################
  234. # Unit Build Tests (all)
  235. ##########################################################
  236. if (${LS_STD_BUILD_WITH_TESTS})
  237. if (${LS_STD_BUILD_WITH_JNI})
  238. message("${PROJECT_NAME}: Building unit tests with JNI support...")
  239. add_executable(${PROJECT_NAME}-unit-test
  240. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestException.cpp
  241. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestHelper.cpp
  242. ${UNIT_TEST_FILES_BOXING}
  243. ${UNIT_TEST_FILES_CORE}
  244. ${UNIT_TEST_FILES_CORE_JNI}
  245. ${UNIT_TEST_FILES_ENCODING}
  246. ${UNIT_TEST_FILES_EVENT}
  247. ${UNIT_TEST_FILES_IO}
  248. ${UNIT_TEST_FILES_SERIALIZATION}
  249. ${UNIT_TEST_FILES_TIME})
  250. else ()
  251. message("${PROJECT_NAME}: Building unit tests...")
  252. add_executable(${PROJECT_NAME}-unit-test
  253. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestException.cpp
  254. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestHelper.cpp
  255. ${UNIT_TEST_FILES_BOXING}
  256. ${UNIT_TEST_FILES_CORE}
  257. ${UNIT_TEST_FILES_ENCODING}
  258. ${UNIT_TEST_FILES_EVENT}
  259. ${UNIT_TEST_FILES_IO}
  260. ${UNIT_TEST_FILES_SERIALIZATION}
  261. ${UNIT_TEST_FILES_TIME})
  262. endif ()
  263. endif ()
  264. ####################################################################################################################
  265. ####################################################################################################################
  266. ####################################################################################################################
  267. # Integration Test Files Modularization
  268. ####################################################################################################################
  269. ####################################################################################################################
  270. ####################################################################################################################
  271. if (${LS_STD_BUILD_WITH_TESTS})
  272. set(INTEGRATION_TEST_FILES_IO
  273. ${CMAKE_CURRENT_SOURCE_DIR}/test/cases/io/section-pair/reader/SectionPairFileReaderIT.cpp)
  274. endif ()
  275. ####################################################################################################################
  276. ####################################################################################################################
  277. ####################################################################################################################
  278. # Integration Test Suite Builds
  279. ####################################################################################################################
  280. ####################################################################################################################
  281. ####################################################################################################################
  282. ##########################################################
  283. # Integration Build Tests (io)
  284. ##########################################################
  285. if (${LS_STD_BUILD_WITH_TESTS})
  286. message("${MODULE_NAME_IO}: Building integration tests...")
  287. add_executable(${MODULE_NAME_IO}-integration-test
  288. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestException.cpp
  289. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestHelper.cpp
  290. ${INTEGRATION_TEST_FILES_IO})
  291. endif ()
  292. ####################################################################################################################
  293. ####################################################################################################################
  294. ####################################################################################################################
  295. # Whole Test Suite Builds
  296. ####################################################################################################################
  297. ####################################################################################################################
  298. ####################################################################################################################
  299. if (${LS_STD_BUILD_WITH_TESTS})
  300. if (${LS_STD_BUILD_WITH_JNI})
  301. message("${PROJECT_NAME}: Building all tests...")
  302. add_executable(${PROJECT_NAME}-test
  303. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestException.cpp
  304. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestHelper.cpp
  305. ${UNIT_TEST_FILES_BOXING}
  306. ${UNIT_TEST_FILES_CORE}
  307. ${UNIT_TEST_FILES_CORE_JNI}
  308. ${UNIT_TEST_FILES_ENCODING}
  309. ${UNIT_TEST_FILES_EVENT}
  310. ${UNIT_TEST_FILES_IO}
  311. ${INTEGRATION_TEST_FILES_IO}
  312. ${UNIT_TEST_FILES_SERIALIZATION}
  313. ${UNIT_TEST_FILES_TIME})
  314. else ()
  315. message("${PROJECT_NAME}: Building all tests with JNI support...")
  316. add_executable(${PROJECT_NAME}-test
  317. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestException.cpp
  318. ${CMAKE_CURRENT_SOURCE_DIR}/test/classes/TestHelper.cpp
  319. ${UNIT_TEST_FILES_BOXING}
  320. ${UNIT_TEST_FILES_CORE}
  321. ${UNIT_TEST_FILES_ENCODING}
  322. ${UNIT_TEST_FILES_EVENT}
  323. ${UNIT_TEST_FILES_IO}
  324. ${INTEGRATION_TEST_FILES_IO}
  325. ${UNIT_TEST_FILES_SERIALIZATION}
  326. ${UNIT_TEST_FILES_TIME})
  327. endif ()
  328. endif ()
  329. ####################################################################################################################
  330. ####################################################################################################################
  331. ####################################################################################################################
  332. # Build Library Binaries
  333. ####################################################################################################################
  334. ####################################################################################################################
  335. ####################################################################################################################
  336. include(cmake/Build.cmake)
  337. build_boxing_module(LS_STD_BUILD_STATIC LS_STD_BUILD_SHARED MODULE_NAME_BOXING MODULE_NAME_CORE SOURCE_FILES_BOXING)
  338. build_core_module(LS_STD_BUILD_STATIC LS_STD_BUILD_SHARED LS_STD_BUILD_WITH_JNI MODULE_NAME_CORE SOURCE_FILES_CORE SOURCE_FILES_CORE_JNI)
  339. build_encoding_module(LS_STD_BUILD_STATIC LS_STD_BUILD_SHARED MODULE_NAME_ENCODING MODULE_NAME_CORE SOURCE_FILES_ENCODING)
  340. build_event_module(LS_STD_BUILD_STATIC LS_STD_BUILD_SHARED MODULE_NAME_EVENT MODULE_NAME_CORE SOURCE_FILES_EVENT)
  341. build_io_module(LS_STD_BUILD_STATIC LS_STD_BUILD_SHARED MODULE_NAME_IO MODULE_NAME_CORE SOURCE_FILES_IO)
  342. build_time_module(LS_STD_BUILD_STATIC LS_STD_BUILD_SHARED LS_STD_BUILD_WITH_JNI MODULE_NAME_TIME MODULE_NAME_CORE SOURCE_FILES_TIME SOURCE_FILES_LINUX_TIME SOURCE_FILES_WINDOWS_TIME SOURCE_FILES_TIME_JNI)
  343. # CLI base64
  344. add_executable(${CLI_NAME_BASE64}
  345. ${CMAKE_CURRENT_SOURCE_DIR}/source/ls-std/encoding/cli/cli-base64-main.cpp)
  346. ####################################################################################################################
  347. ####################################################################################################################
  348. ####################################################################################################################
  349. # Unit Test Suite: Linking
  350. ####################################################################################################################
  351. ####################################################################################################################
  352. ####################################################################################################################
  353. ##########################################################
  354. # Unit Linking (boxing)
  355. ##########################################################
  356. if (${LS_STD_BUILD_WITH_TESTS})
  357. message("${MODULE_NAME_BOXING}: Linking libraries for unit test application...")
  358. target_link_libraries(${MODULE_NAME_BOXING}-unit-test
  359. gtest
  360. gtest_main
  361. "${MODULE_NAME_BOXING}"
  362. "${MODULE_NAME_CORE}")
  363. endif ()
  364. ##########################################################
  365. # Unit Linking (core)
  366. ##########################################################
  367. if (${LS_STD_BUILD_WITH_TESTS})
  368. message("${MODULE_NAME_CORE}: Linking libraries for unit test application...")
  369. target_link_libraries(${MODULE_NAME_CORE}-unit-test
  370. gtest
  371. gmock
  372. gtest_main
  373. "${MODULE_NAME_CORE}")
  374. endif ()
  375. ##########################################################
  376. # Unit Linking (encoding)
  377. ##########################################################
  378. if (${LS_STD_BUILD_WITH_TESTS})
  379. message("${MODULE_NAME_ENCODING}: Linking libraries for unit test application...")
  380. target_link_libraries(${MODULE_NAME_ENCODING}-unit-test
  381. gtest
  382. gtest_main
  383. "${MODULE_NAME_ENCODING}"
  384. "${MODULE_NAME_CORE}")
  385. endif ()
  386. ##########################################################
  387. # Unit Linking (event)
  388. ##########################################################
  389. if (${LS_STD_BUILD_WITH_TESTS})
  390. message("${MODULE_NAME_EVENT}: Linking libraries for unit test application...")
  391. target_link_libraries(${MODULE_NAME_EVENT}-unit-test
  392. gtest
  393. gtest_main
  394. "${MODULE_NAME_EVENT}"
  395. "${MODULE_NAME_CORE}")
  396. endif ()
  397. ##########################################################
  398. # Unit Linking (io)
  399. ##########################################################
  400. if (${LS_STD_BUILD_WITH_TESTS})
  401. message("${MODULE_NAME_IO}: Linking libraries for unit test application...")
  402. target_link_libraries(${MODULE_NAME_IO}-unit-test
  403. gtest
  404. gmock
  405. gtest_main
  406. "${MODULE_NAME_IO}"
  407. "${MODULE_NAME_CORE}")
  408. endif ()
  409. ##########################################################
  410. # Unit Linking (time)
  411. ##########################################################
  412. if (${LS_STD_BUILD_WITH_TESTS})
  413. message("${MODULE_NAME_TIME}: Linking libraries for unit test application...")
  414. target_link_libraries(${MODULE_NAME_TIME}-unit-test
  415. gtest
  416. gmock
  417. gtest_main
  418. "${MODULE_NAME_TIME}"
  419. "${MODULE_NAME_CORE}")
  420. endif ()
  421. ##########################################################
  422. # Unit Linking (all)
  423. ##########################################################
  424. if (${LS_STD_BUILD_WITH_TESTS})
  425. message("${PROJECT_NAME}: Linking libraries for unit test application...")
  426. target_link_libraries(${PROJECT_NAME}-unit-test
  427. gtest
  428. gmock
  429. gtest_main
  430. "${MODULE_NAME_BOXING}"
  431. "${MODULE_NAME_ENCODING}"
  432. "${MODULE_NAME_EVENT}"
  433. "${MODULE_NAME_IO}"
  434. "${MODULE_NAME_TIME}"
  435. "${MODULE_NAME_CORE}")
  436. endif ()
  437. ####################################################################################################################
  438. ####################################################################################################################
  439. ####################################################################################################################
  440. # Integration Test Suite: Linking
  441. ####################################################################################################################
  442. ####################################################################################################################
  443. ####################################################################################################################
  444. ##########################################################
  445. # Integration Linking (io)
  446. ##########################################################
  447. if (${LS_STD_BUILD_WITH_TESTS})
  448. message("${MODULE_NAME_IO}: Linking libraries for integration test application...")
  449. target_link_libraries(${MODULE_NAME_IO}-integration-test
  450. gtest
  451. gtest_main
  452. "${MODULE_NAME_IO}"
  453. "${MODULE_NAME_CORE}")
  454. endif ()
  455. ####################################################################################################################
  456. ####################################################################################################################
  457. ####################################################################################################################
  458. # Whole Test Suite: Linking
  459. ####################################################################################################################
  460. ####################################################################################################################
  461. ####################################################################################################################
  462. if (${LS_STD_BUILD_WITH_TESTS})
  463. message("${PROJECT_NAME}: Linking libraries for whole test application...")
  464. target_link_libraries(${PROJECT_NAME}-test
  465. gtest
  466. gmock
  467. gtest_main
  468. "${MODULE_NAME_BOXING}"
  469. "${MODULE_NAME_ENCODING}"
  470. "${MODULE_NAME_EVENT}"
  471. "${MODULE_NAME_IO}"
  472. "${MODULE_NAME_TIME}"
  473. "${MODULE_NAME_CORE}")
  474. endif ()
  475. ####################################################################################################################
  476. ####################################################################################################################
  477. ####################################################################################################################
  478. # CLI - Base64: Linking
  479. ####################################################################################################################
  480. ####################################################################################################################
  481. ####################################################################################################################
  482. target_link_libraries(${CLI_NAME_BASE64}
  483. "${MODULE_NAME_ENCODING}"
  484. "${MODULE_NAME_CORE}")