Fix local server for multiple applications
[anna.git] / CMakeLists.txt
index 968a7c5..fcaf4ad 100644 (file)
@@ -12,7 +12,10 @@ enable_language(C CXX)
 # Project version
 set(VERSION_MAJOR 1)
 set(VERSION_MINOR 0)
-set(VERSION_PATCH 0)
+set(VERSION_PATCH 6)
+
+# Dynamic libraries not linked to build tree:
+set(CMAKE_SKIP_RPATH TRUE)
 
 # Build type:
 if(NOT CMAKE_BUILD_TYPE)
@@ -23,9 +26,9 @@ endif(NOT CMAKE_BUILD_TYPE)
 message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
 
 # Build output directory:
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY build/${CMAKE_BUILD_TYPE}/bin)
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY build/${CMAKE_BUILD_TYPE}/lib)
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY build/${CMAKE_BUILD_TYPE}/lib)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE}/lib)
 message(STATUS "CMAKE_RUNTIME_OUTPUT_DIRECTORY is ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
 message(STATUS "CMAKE_LIBRARY_OUTPUT_DIRECTORY is ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
 message(STATUS "CMAKE_ARCHIVE_OUTPUT_DIRECTORY is ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
@@ -67,7 +70,7 @@ message(STATUS "CMAKE_CXX_COMPILER_ID = ${CMAKE_CXX_COMPILER_ID}")
 if(CMAKE_CXX_COMPILER_ID MATCHES GNU)
     #execute_process(COMMAND g++ --version >/dev/null 2>/dev/null)
     set(CMAKE_CXX_COMPILER             "/usr/bin/g++")
-    set(CMAKE_CXX_FLAGS                "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-unknown-pragmas -Wno-sign-compare -Woverloaded-virtual -Wwrite-strings -Wno-unused")
+    set(CMAKE_CXX_FLAGS                "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wno-deprecated -Wwrite-strings -Wno-unknown-pragmas -Wno-sign-compare -Wno-maybe-uninitialized -Wno-unused -Wno-reorder")
     set(CMAKE_CXX_FLAGS_DEBUG          "-O0 -g3")
     set(CMAKE_CXX_FLAGS_MINSIZEREL     "-Os -DNDEBUG")
     set(CMAKE_CXX_FLAGS_RELEASE        "-O3")
@@ -77,7 +80,7 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES Clang)
     #execute_process(COMMAND clang++ --version >/dev/null 2>/dev/null)
     add_definitions(-DIS_CLANG)
     set(CMAKE_CXX_COMPILER             "/usr/bin/clang++")
-    set(CMAKE_CXX_FLAGS                "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-unknown-pragmas -Wno-sign-compare -Woverloaded-virtual -Wwrite-strings -Wno-unused -Wno-parentheses-equality")
+    set(CMAKE_CXX_FLAGS                "${CMAKE_CXX_FLAGS} -std=c++14 -Wall -Wno-deprecated -Wwrite-strings -Wno-unknown-pragmas -Wno-sign-compare -Wno-maybe-uninitialized -Wno-unused -Wno-reorder -Wno-parentheses-equality")
     set(CMAKE_CXX_FLAGS_DEBUG          "-O0 -g3")
     set(CMAKE_CXX_FLAGS_MINSIZEREL     "-Os -DNDEBUG")
     set(CMAKE_CXX_FLAGS_RELEASE        "-O3")
@@ -97,6 +100,15 @@ MACRO(SUBDIRLIST result curdir)
   FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
   SET(dirlist "")
   FOREACH(child ${children})
+
+    # EXCLUDE DATABASE RESOURCES (-DSKIP_DATABASE_BUILD)
+    if(SKIP_DATABASE_BUILD)
+       string(REGEX MATCH "dbms|dbos" DATABASE ${child})
+       IF(DATABASE)
+         CONTINUE()
+       ENDIF()
+    ENDIF()
+
     IF(IS_DIRECTORY ${curdir}/${child})
       LIST(APPEND dirlist ${child})
     ENDIF()
@@ -110,7 +122,7 @@ add_definitions(-DLDAP_DEPRECATED)
 # General includes:
 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
 include_directories(/usr/include/libxml2)
-include_directories(/usr/lib/oracle/12.1/client64/include)
+include_directories(/usr/include/oracle/19.6/client64)
 
 # <source>
 SUBDIRLIST(SUBDIRS ${CMAKE_CURRENT_SOURCE_DIR}/source)
@@ -133,7 +145,7 @@ FOREACH(procedure ${DYNAMIC_PROCEDURES})
   file(GLOB_RECURSE SRCS dynamic/launcher/${rel}/*.cpp)
   add_library(anna_launcher_procedure_${libpath}_shared SHARED ${SRCS})
 
-  set(target_dirname build/${CMAKE_BUILD_TYPE}/lib/dynamic/launcher/${rel})
+  set(target_dirname ${CMAKE_CURRENT_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE}/lib/dynamic/launcher/${rel})
 
   set(target_basename anna_launcher_procedure_${libpath}_shared)
   set_target_properties(${target_basename} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${target_dirname})