Browse Source

WIP gh-1846 Added support for CLIENTTOOLS_ONLY.

Added CLIENTTOOLS_ONLY configuration option (Defaulted OFF.)
Added HPCC_ADD_SUBDIRECTORY macro and set cmake files to use it.
Added if statement to change master project name.

TODO:
Refine the install scripts further to support a cleaner install for packages.

Signed-off-by: Philip Schwartz <philip.schwartz@lexisnexis.com>
Philip Schwartz 13 years ago
parent
commit
beab225101

+ 21 - 17
CMakeLists.txt

@@ -48,7 +48,11 @@
 #
 #########################################################
 
-project (hpccsystems-platform)
+if (CLIENTTOOLS_ONLY)
+    project(hpccsystems-clienttools)
+else()
+    project (hpccsystems-platform)
+endif()
 cmake_minimum_required (VERSION 2.6)
 
 include(CTest)
@@ -103,24 +107,24 @@ include(${HPCC_SOURCE_DIR}/cmake_modules/commonSetup.cmake)
 
 if ( NOT MAKE_DOCS_ONLY )
     if ( CMAKE_SYSTEM MATCHES Linux )
-        add_subdirectory (initfiles)
+        HPCC_ADD_SUBDIRECTORY (initfiles)
     endif ()
-    add_subdirectory (tools)
-    add_subdirectory (common)
-    add_subdirectory (dali)
-    add_subdirectory (deploy)
-    add_subdirectory (deployment)
-    add_subdirectory (ecl)
-    add_subdirectory (ecllibrary)
-    add_subdirectory (esp)
-    add_subdirectory (plugins)
-    add_subdirectory (roxie)
-    add_subdirectory (rtl)
-    add_subdirectory (services)
-    add_subdirectory (system)
-    add_subdirectory (thorlcr)
+    HPCC_ADD_SUBDIRECTORY (tools)
+    HPCC_ADD_SUBDIRECTORY (common)
+    HPCC_ADD_SUBDIRECTORY (dali)
+    HPCC_ADD_SUBDIRECTORY (deploy ${CLIENTTOOLS_ONLY})
+    HPCC_ADD_SUBDIRECTORY (deployment)
+    HPCC_ADD_SUBDIRECTORY (ecl)
+    HPCC_ADD_SUBDIRECTORY (ecllibrary ${CLIENTTOOLS_ONLY})
+    HPCC_ADD_SUBDIRECTORY (esp)
+    HPCC_ADD_SUBDIRECTORY (plugins ${CLIENTTOOLS_ONLY})
+    HPCC_ADD_SUBDIRECTORY (roxie ${CLIENTTOOLS_ONLY})
+    HPCC_ADD_SUBDIRECTORY (rtl)
+    HPCC_ADD_SUBDIRECTORY (services ${CLIENTTOOLS_ONLY})
+    HPCC_ADD_SUBDIRECTORY (system)
+    HPCC_ADD_SUBDIRECTORY (thorlcr ${CLIENTTOOLS_ONLY})
 endif()
-add_subdirectory (docs)
+HPCC_ADD_SUBDIRECTORY (docs ${CLIENTTOOLS_ONLY})
 
 ###
 ## CPack install and packaging setup.

+ 26 - 2
cmake_modules/commonSetup.cmake

@@ -40,6 +40,7 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
 
   cmake_policy ( SET CMP0011 NEW )
 
+  option(CLIENTTOOLS_ONLY "Enable the building of Client Tools only." OFF)
 
   option(USE_BINUTILS "Enable use of binutils to embed workunit info into shared objects" ON)
   option(USE_CPPUNIT "Enable unit tests (requires cppunit)" OFF)
@@ -74,8 +75,12 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
   if ( USE_XALAN )
       set(USE_XERCES ON)
   endif()
-  
-  if ( MAKE_DOCS_ONLY )
+
+  if ( MAKE_DOCS AND CLIENTTOOLS_ONLY )
+      set( MAKE_DOCS OFF )
+  endif()
+
+  if ( MAKE_DOCS_ONLY AND NOT CLIENTTOOLS_ONLY )
       set( MAKE_DOCS ON )
   endif()
   
@@ -162,6 +167,25 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
     add_library(${target} ${ARGN})
   endmacro(HPCC_ADD_LIBRARY target)
 
+  # This macro allows for disabling a directory based on the value of a variable passed to the macro.
+  #
+  # ex. HPCC_ADD_SUBDIRECORY(roxie ${CLIENTTOOLS_ONLY})
+  #
+  # This call will disable the roxie dir if -DCLIENTTOOLS_ONLY=ON is set at config time.
+  #
+  macro(HPCC_ADD_SUBDIRECTORY subdir)
+    set(adddir 0)
+    foreach( f ${ARGN} )
+      if( f )
+        set(adddir 1)
+      endif()
+    endforeach() 
+
+    if ( NOT adddir )
+      add_subdirectory(${subdir})
+    endif()
+  endmacro(HPCC_ADD_SUBDIRECTORY)
+
   set ( SCM_GENERATED_DIR ${CMAKE_BINARY_DIR}/generated )
   include_directories (${SCM_GENERATED_DIR})
 

+ 13 - 13
common/CMakeLists.txt

@@ -16,16 +16,16 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
-add_subdirectory (commonext)
-add_subdirectory (deftype)
-add_subdirectory (dllserver)
-add_subdirectory (environment)
-add_subdirectory (fileview2)
-add_subdirectory (monitoring)
-add_subdirectory (remote)
-add_subdirectory (roxiecommlib)
-add_subdirectory (roxiehelper)
-add_subdirectory (roxiemanager)
-add_subdirectory (thorhelper)
-add_subdirectory (workunit)
-add_subdirectory (wuwebview)
+HPCC_ADD_SUBDIRECTORY (commonext)
+HPCC_ADD_SUBDIRECTORY (deftype)
+HPCC_ADD_SUBDIRECTORY (dllserver)
+HPCC_ADD_SUBDIRECTORY (environment)
+HPCC_ADD_SUBDIRECTORY (fileview2)
+HPCC_ADD_SUBDIRECTORY (monitoring ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (remote)
+HPCC_ADD_SUBDIRECTORY (roxiecommlib)
+HPCC_ADD_SUBDIRECTORY (roxiehelper ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (roxiemanager ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (thorhelper)
+HPCC_ADD_SUBDIRECTORY (workunit)
+HPCC_ADD_SUBDIRECTORY (wuwebview ${CLIENTTOOLS_ONLY})

+ 7 - 6
common/fileview2/CMakeLists.txt

@@ -106,13 +106,14 @@ set (    SRCS
 
 ADD_DEFINITIONS ( -D_CONSOLE )
 
-add_executable ( fvserver ${SRCS} )
-set_target_properties(fvserver PROPERTIES 
-    COMPILE_FLAGS -D_CONSOLE
+if( NOT CLIENTTOOLS_ONLY )
+    add_executable ( fvserver ${SRCS} )
+    set_target_properties(fvserver PROPERTIES 
+        COMPILE_FLAGS -D_CONSOLE
     )
-#install ( TARGETS fvserver DESTINATION ${OSSDIR}/bin ) #not used at present
+    #install ( TARGETS fvserver DESTINATION ${OSSDIR}/bin ) #not used at present
 
-target_link_libraries ( fvserver
+    target_link_libraries ( fvserver
          jlib 
          mp 
          hrpc 
@@ -128,6 +129,6 @@ target_link_libraries ( fvserver
          hql 
          fileview2 
     )
-
+endif()
 
 

+ 1 - 1
common/remote/CMakeLists.txt

@@ -25,7 +25,7 @@
 
 project( remote ) 
 
-add_subdirectory(hooks)
+HPCC_ADD_SUBDIRECTORY(hooks ${CLIENTTOOLS_ONLY})
 
 set (    SRCS 
          rmtfile.cpp 

+ 17 - 17
dali/CMakeLists.txt

@@ -16,22 +16,22 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
-add_subdirectory (base)
-add_subdirectory (dafilesrv)
-add_subdirectory (dalidiag)
-add_subdirectory (dalistop)
-add_subdirectory (datest)
+HPCC_ADD_SUBDIRECTORY (base)
+HPCC_ADD_SUBDIRECTORY (dafilesrv)
+HPCC_ADD_SUBDIRECTORY (dalidiag ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (dalistop ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (datest ${CLIENTTOOLS_ONLY})
 if (USE_CPPUNIT)
-    add_subdirectory (daunittest)
+    HPCC_ADD_SUBDIRECTORY (daunittest ${CLIENTTOOLS_ONLY})
 endif()
-add_subdirectory (dfu)
-add_subdirectory (dfuplus)
-add_subdirectory (dfuxref)
-add_subdirectory (dfuXRefLib)
-add_subdirectory (ft)
-add_subdirectory (regress)
-add_subdirectory (daliadmin)
-add_subdirectory (server)
-add_subdirectory (treeview)
-add_subdirectory (updtdalienv)
-add_subdirectory (sasha)
+HPCC_ADD_SUBDIRECTORY (dfu)
+HPCC_ADD_SUBDIRECTORY (dfuplus)
+HPCC_ADD_SUBDIRECTORY (dfuxref ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (dfuXRefLib)
+HPCC_ADD_SUBDIRECTORY (ft)
+HPCC_ADD_SUBDIRECTORY (regress ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (daliadmin ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (server ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (treeview ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (updtdalienv ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (sasha ${CLIENTTOOLS_ONLY})

+ 3 - 1
dali/dafilesrv/CMakeLists.txt

@@ -18,4 +18,6 @@
 
 
 include (dafilesrv.cmake)
-include (dafscontrol.cmake)
+if ( NOT CLIENTTOOLS_ONLY)
+    include (dafscontrol.cmake)
+endif()

+ 4 - 1
dali/dfu/CMakeLists.txt

@@ -27,6 +27,9 @@
 
 project (AllProjects)
 
-include ( dfuserver.cmake)
+if ( NOT CLIENTTOOLS_ONLY )
+    include ( dfuserver.cmake)
+endif()
+
 include ( dfuwu.cmake)
 

+ 3 - 1
dali/ft/CMakeLists.txt

@@ -19,7 +19,9 @@
 
 project (all)
 
-include (ftslave.cmake)
+if ( NOT CLIENTTOOLS_ONLY )
+    include (ftslave.cmake)
+endif()
 include (dalift.cmake)
 
 

+ 4 - 4
deployment/CMakeLists.txt

@@ -16,7 +16,7 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
-add_subdirectory (configgen)
-add_subdirectory (deploy)
-add_subdirectory (deployutils)
-add_subdirectory (envgen)
+HPCC_ADD_SUBDIRECTORY (configgen)
+HPCC_ADD_SUBDIRECTORY (deploy)
+HPCC_ADD_SUBDIRECTORY (deployutils ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (envgen ${CLIENTTOOLS_ONLY})

+ 14 - 14
ecl/CMakeLists.txt

@@ -16,17 +16,17 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
-add_subdirectory (agentexec)
-add_subdirectory (eclagent)
-add_subdirectory (eclcc)
-add_subdirectory (eclccserver)
-add_subdirectory (eclcmd)
-add_subdirectory (eclscheduler)
-add_subdirectory (eclplus)
-add_subdirectory (ecl-package)
-add_subdirectory (hql)
-add_subdirectory (hqlcpp)
-add_subdirectory (hthor)
-add_subdirectory (scheduleadmin)
-add_subdirectory (schedulectrl)
-add_subdirectory (wutest)
+HPCC_ADD_SUBDIRECTORY (agentexec ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (eclagent ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (eclcc)
+HPCC_ADD_SUBDIRECTORY (eclccserver ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (eclcmd)
+HPCC_ADD_SUBDIRECTORY (eclscheduler ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (eclplus)
+HPCC_ADD_SUBDIRECTORY (ecl-package)
+HPCC_ADD_SUBDIRECTORY (hql)
+HPCC_ADD_SUBDIRECTORY (hqlcpp)
+HPCC_ADD_SUBDIRECTORY (hthor ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (scheduleadmin ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (schedulectrl ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (wutest ${CLIENTTOOLS_ONLY})

+ 12 - 12
esp/CMakeLists.txt

@@ -16,15 +16,15 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
-add_subdirectory (bindings)
-add_subdirectory (clients)
-add_subdirectory (eclwatch)
-add_subdirectory (files)
-add_subdirectory (platform)
-add_subdirectory (protocols)
-add_subdirectory (scm)
-add_subdirectory (services)
-add_subdirectory (smc)
-add_subdirectory (test)
-add_subdirectory (tools)
-add_subdirectory (xslt)
+HPCC_ADD_SUBDIRECTORY (bindings ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (clients ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (eclwatch ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (files ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (platform ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (protocols)
+HPCC_ADD_SUBDIRECTORY (scm)
+HPCC_ADD_SUBDIRECTORY (services)
+HPCC_ADD_SUBDIRECTORY (smc)
+HPCC_ADD_SUBDIRECTORY (test ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (tools ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (xslt ${CLIENTTOOLS_ONLY})

+ 15 - 15
esp/services/CMakeLists.txt

@@ -16,20 +16,20 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
-add_subdirectory (ecldirect)
+HPCC_ADD_SUBDIRECTORY (ecldirect ${CLIENTTOOLS_ONLY})
 IF (USE_OPENLDAP)
-    add_subdirectory (ws_access)
+    HPCC_ADD_SUBDIRECTORY (ws_access ${CLIENTTOOLS_ONLY})
 ENDIF(USE_OPENLDAP)
-add_subdirectory (ws_account)
-add_subdirectory (ws_config)
-add_subdirectory (ws_dfu)
-add_subdirectory (ws_ecl)
-add_subdirectory (ws_fileio)
-add_subdirectory (ws_fs)
-add_subdirectory (ws_machine)
-add_subdirectory (ws_roxiequery)
-add_subdirectory (ws_smc)
-add_subdirectory (ws_topology)
-add_subdirectory (ws_workunits)
-add_subdirectory (WsDeploy)
-add_subdirectory (ws_packageprocess)
+HPCC_ADD_SUBDIRECTORY (ws_account ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (ws_config ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (ws_dfu )
+HPCC_ADD_SUBDIRECTORY (ws_ecl ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (ws_fileio ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (ws_fs)
+HPCC_ADD_SUBDIRECTORY (ws_machine ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (ws_roxiequery ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (ws_smc ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (ws_topology ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (ws_workunits ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (WsDeploy ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (ws_packageprocess ${CLIENTTOOLS_ONLY})

+ 4 - 4
rtl/CMakeLists.txt

@@ -16,7 +16,7 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
-add_subdirectory (eclrtl)
-add_subdirectory (ecltpl)
-add_subdirectory (include)
-add_subdirectory (nbcd)
+HPCC_ADD_SUBDIRECTORY (eclrtl)
+HPCC_ADD_SUBDIRECTORY (ecltpl ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (include ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (nbcd)

+ 9 - 9
system/CMakeLists.txt

@@ -16,12 +16,12 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
-add_subdirectory (hrpc)
-add_subdirectory (include)
-add_subdirectory (jhtree)
-add_subdirectory (jlib)
-add_subdirectory (lzma)
-add_subdirectory (mp)
-add_subdirectory (security)
-add_subdirectory (xmllib)
-add_subdirectory (xmllibtest)
+HPCC_ADD_SUBDIRECTORY (hrpc)
+HPCC_ADD_SUBDIRECTORY (include ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (jhtree)
+HPCC_ADD_SUBDIRECTORY (jlib)
+HPCC_ADD_SUBDIRECTORY (lzma)
+HPCC_ADD_SUBDIRECTORY (mp)
+HPCC_ADD_SUBDIRECTORY (security)
+HPCC_ADD_SUBDIRECTORY (xmllib)
+HPCC_ADD_SUBDIRECTORY (xmllibtest ${CLIENTTOOLS_ONLY})

+ 1 - 1
system/mp/CMakeLists.txt

@@ -47,4 +47,4 @@ target_link_libraries ( mp
          jlib
     )
 
-add_subdirectory(test)
+HPCC_ADD_SUBDIRECTORY(test ${CLIENTTOOLS_ONLY})

+ 4 - 4
system/security/CMakeLists.txt

@@ -17,10 +17,10 @@
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
 IF (USE_OPENLDAP)
-add_subdirectory (LdapSecurity)
+HPCC_ADD_SUBDIRECTORY (LdapSecurity)
 ENDIF(USE_OPENLDAP)
-add_subdirectory (securesocket)
-add_subdirectory (test)
+HPCC_ADD_SUBDIRECTORY (securesocket)
+HPCC_ADD_SUBDIRECTORY (test ${CLIENTTOOLS_ONLY})
 if (USE_ZLIB)
-  add_subdirectory (zcrypt)
+  HPCC_ADD_SUBDIRECTORY (zcrypt ${CLIENTTOOLS_ONLY})
 endif()

+ 17 - 17
tools/CMakeLists.txt

@@ -16,24 +16,24 @@
 #    You should have received a copy of the GNU Affero General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ################################################################################
-add_subdirectory (esdl)
-add_subdirectory (hidl)
-add_subdirectory (backupnode)
-add_subdirectory (combine)
-add_subdirectory (dumpkey)
-add_subdirectory (keydiff)
-add_subdirectory (pstart)
-add_subdirectory (pskill)
-add_subdirectory (testsocket)
-add_subdirectory (swapnode)
-add_subdirectory (vkey)
-add_subdirectory (xmlsize)
-add_subdirectory (wuget)
-add_subdirectory (copyexp)
-add_subdirectory (genht)
+HPCC_ADD_SUBDIRECTORY (esdl)
+HPCC_ADD_SUBDIRECTORY (hidl)
+HPCC_ADD_SUBDIRECTORY (backupnode ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (combine ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (dumpkey ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (keydiff ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (pstart ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (pskill ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (testsocket ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (swapnode ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (vkey ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (xmlsize ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (wuget)
+HPCC_ADD_SUBDIRECTORY (copyexp ${CLIENTTOOLS_ONLY})
+HPCC_ADD_SUBDIRECTORY (genht ${CLIENTTOOLS_ONLY})
 
 # start-stop-daemon is linux only.
 if ( CMAKE_SYSTEM MATCHES Linux )
     message ("-- Building start-stop-daemon")
-    add_subdirectory (start-stop-daemon)
-endif()
+    HPCC_ADD_SUBDIRECTORY (start-stop-daemon)
+endif()