From fb55ff97da67d7343f365de4ae955d5548962bfb Mon Sep 17 00:00:00 2001
From: "alexey.stratulat" <alexey.stratulat@demlabs.net>
Date: Thu, 14 Nov 2019 23:18:42 +0700
Subject: [PATCH] [*] Added checking to if connected submodules in the parent
 cmake file.

---
 CMakeLists.txt | 222 ++++++++++++++++++++++++++++++++++---------------
 1 file changed, 154 insertions(+), 68 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 739291c3..2147abd2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,51 +4,167 @@ cmake_minimum_required(VERSION 2.8)
 set(CMAKE_VERBOSE_MAKEFILE ON)
 set(CMAKE_COLOR_MAKEFILE   ON)
 set(CMAKE_C_STANDARD 11)
-set(SUBMODULES_NO_BUILD ON)
 add_definitions("-fpic")
 
-#if(NOT (${SUBMODULES_NO_BUILD} MATCHES ON))
-#    if (NOT (TARGET dap_core))
-        add_subdirectory(libdap)
-#        target_compile_options(
-#            dap_core PRIVATE 
-#            "-fpic"
-#        )
-#    endif()
-#    if (NOT (TARGET dap_crypto))
-#        add_subdirectory(libdap-crypto)
-#        target_compile_options(
-#            dap_crypto PRIVATE
-#            "-fpic"
- #       )
- #   endif()
-#endif()
-#add_definitions("-DDAP_APP_NAME=\"TestPRJ\" -DSYSTEM_CONFIGS_DIR=\"${CMAKE_CURRENT_BINARY_DIR}\"")
 add_definitions ("-DNODE_NETNAME=\"cellframe\"")
 if(UNIX)
     add_definitions("-DDAP_OS_UNIX")
 endif()
 
-add_subdirectory(libdap-python)
-add_subdirectory(libdap-crypto)
-add_subdirectory(libdap-chain)
-add_subdirectory(libdap-chain-crypto)
-add_subdirectory(libdap-chain-mempool)
-add_subdirectory(libdap-chain-net)
-add_subdirectory(libdap-server-core)
-add_subdirectory(libdap-chain-global-db)
-add_subdirectory(libdap-client)
-add_subdirectory(libdap-server)
-add_subdirectory(libdap-stream)
-add_subdirectory(libdap-stream-ch)
-add_subdirectory(libdap-server-udp)
-add_subdirectory(libdap-stream-ch-chain-net)
-add_subdirectory(libdap-stream-ch-chain)
-add_subdirectory(libdap-chain-wallet)
-add_subdirectory(libdap-chain-net-srv)
-add_subdirectory(libdap-server-http-db-auth)
-add_subdirectory(libdap-chain-gdb)
-add_subdirectory(libdap-crypto-python)
+if (NOT (${SUBMODULES_NO_BUILD} MATCHES ON))
+    set (SUBMODULES_NO_BUILD ON)
+    if (NOT (TARGET dap_core))
+        add_subdirectory(libdap)
+        target_compile_options(
+            dap_core PRIVATE 
+            "-fpic"
+        )
+    endif()
+    if (NOT (TARGET dap_crypto))
+        add_subdirectory(libdap-crypto)
+        target_compile_options(
+            dap_crypto PRIVATE
+            "-fpic"
+       )
+   endif()
+   if (NOT (TARGET dap_chain))
+       add_subdirectory(libdap-chain)
+       target_compile_options(
+            dap_chain PRIVATE
+            "-fpic"
+       )
+   endif()
+   if (NOT (TARGET dap_chain_crypto))
+       add_subdirectory(libdap-chain-crypto)
+       target_compile_options(
+            dap_chain_crypto PRIVATE
+            "-fpic"  
+       )
+   endif()
+   if (NOT (TARGET dap_chain_mempool))
+       add_subdirectory(libdap-chain-mempool)
+       target_compile_options(
+            dap_chain_mempool PRIVATE
+            "-fpic"  
+       )
+   endif()
+   if (NOT (TARGET dap_chain_net))
+       add_subdirectory(libdap-chain-net)
+       target_compile_options(
+            dap_chain_net PRIVATE
+            "-fpic"  
+       )
+   endif()
+   if (NOT (TARGET dap_server_core))
+       add_subdirectory(libdap-server-core)
+       target_compile_options(
+            dap_server_core PRIVATE
+            "-fpic"  
+       )
+   endif()
+   if (NOT (TARGET dap_chain_global_db))
+       add_subdirectory(libdap-chain-global-db)
+       target_compile_options(
+            dap_chain_global_db PRIVATE
+            "-fpic"  
+       )
+   endif()
+   if (NOT (TARGET dap_client))
+       add_subdirectory(libdap-client)
+       target_compile_options(
+            dap_client PRIVATE
+            "-fpic"  
+       )
+   endif()
+   if (NOT (TARGET libdap-server))
+       add_subdirectory(libdap-server)
+#       target_compile_options(
+#            libdap-server PRIVATE
+#            "-fpic"  
+#       )
+   endif()
+   if (NOT (TARGET dap_stream))
+       add_subdirectory(libdap-stream)
+       target_compile_options(
+            dap_stream PRIVATE
+            "-fpic"  
+       )
+   endif()
+   if (NOT (TARGET dap_stream_ch))
+       add_subdirectory(libdap-stream-ch)
+       target_compile_options(
+            dap_stream_ch PRIVATE
+             "-fpic"   
+       )
+   endif()
+   if (NOT (TARGET dap_stream_ch_chain))
+       add_subdirectory(libdap-stream-ch-chain)
+       target_compile_options(
+            dap_stream_ch_chain PRIVATE
+            "-fpic"   
+       )
+   endif()
+   if (NOT (TARGET dap_stream_ch_chain_net))
+       add_subdirectory(libdap-stream-ch-chain-net)
+       target_compile_options(
+            dap_stream_ch_chain_net PRIVATE
+            "-fpic"   
+       )
+   endif()
+   if (NOT (TARGET dap_udp_server))
+       add_subdirectory(libdap-server-udp)
+       target_compile_options(
+            dap_udp_server PRIVATE
+            "-fpic"   
+       ) 
+   endif()
+   if (NOT (TARGET dap_chain_wallet))
+       add_subdirectory(libdap-chain-wallet)
+       target_compile_options(
+            dap_chain_wallet PRIVATE
+            "-fpic"   
+       ) 
+   endif()
+   if (NOT (TARGET dap_chain_net_srv))
+       add_subdirectory(libdap-chain-net-srv)
+       target_compile_options(
+            dap_chain_net_srv PRIVATE
+            "-fpic"   
+       ) 
+   endif()
+   if (NOT (TARGET dap_server_http_db_auth))
+       add_subdirectory(libdap-server-http-db-auth)
+       target_compile_options(
+            dap_server_http_db_auth PRIVATE
+            "-fpic"   
+       ) 
+   endif()
+   if (NOT (TARGET dap_chain_gdb))
+       add_subdirectory(libdap-chain-gdb)
+       target_compile_options(
+            dap_chain_gdb PRIVATE
+            "-fpic"   
+       ) 
+   endif()
+   if (NOT (TARGET dap_python_module))
+       add_subdirectory(libdap-python)
+       target_compile_options(
+            dap_python_module PRIVATE
+            "-fpic"
+       )
+   endif()
+   if (NOT (TARGET dap_crypto_python_module))
+       add_subdirectory(libdap-crypto-python)
+       target_compile_options(
+            dap_crypto_python_module PRIVATE
+            "-fpic"
+       )
+   endif()
+#    if (NOT (TARGET dap_chain_net_srv_vpn))
+#        add_subdirectory(libdap-chain-net-srv-vpn)
+#    endif()
+endif()
+#add_definitions("-DDAP_APP_NAME=\"TestPRJ\" -DSYSTEM_CONFIGS_DIR=\"${CMAKE_CURRENT_BINARY_DIR}\"")
 
 file(GLOB CHAIN_PYTHON_SRCS src/*.c)
 file(GLOB CHAIN_PYTHON_HEADERS include/*.h)
@@ -61,37 +177,7 @@ add_library(${PROJECT_NAME} STATIC ${CHAIN_PYTHON_SRCS} ${CHAIN_PYTHON_HEADERS})
 
 target_link_libraries(${PROJECT_NAME})
 
-#target_compile_options(
-#    dap_core PRIVATE 
-#    "-fpic"
-#)
-#target_compile_options(
-#    dap_crypto PRIVATE 
-#    "-fpic"
-#)
-
-
 target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_chain dap_chain_crypto dap_server_core dap_chain_net dap_crypto_python_module dap_python_module)
-#target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_chain dap_chain_global_db dap_chain_crypto dap_chain_mempool
-#                         
-#                     ) #dap_chain_crypto dap_chain_mempool dap_chain_global_db )
-#target_link_libraries(${PROJECT_NAME} dap_core dap_crypto)
 
 target_include_directories(${PROJECT_NAME} PUBLIC include/ )
 
-#if(BUILD_DAP_CRYPTO_PYTHON_TESTS)
-#    add_subdirectory(test)
-#    file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test/test_b58.py 
-#                    DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/test/)
-#    file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test/test_b64.py
-#                    DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/test/)
-#    file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test/test_iaes256_cbc.py
-#                    DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/test/)
-#    file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test/test_iaes256_cbc.py
-#                    DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/test/)
-#    file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test/test_oaes.py
-#                    DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/test/)
-
-
-#endif()
-
-- 
GitLab