Jelajahi Sumber

Merge pull request #9591 from xwang2713/HPCC-16796-configurator-coredump-3

HPCC-16796 Fix configurator coredump

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 8 tahun lalu
induk
melakukan
93621dab10

+ 26 - 20
CMakeLists.txt

@@ -159,29 +159,35 @@ if ( PLUGIN )
     HPCC_ADD_SUBDIRECTORY (plugins/mysql "MYSQLEMBED")
     HPCC_ADD_SUBDIRECTORY (plugins/exampleplugin "EXAMPLEPLUGIN")
     HPCC_ADD_SUBDIRECTORY (plugins/couchbase "COUCHBASEEMBED")
-elseif ( NOT MAKE_DOCS_ONLY )
-    HPCC_ADD_SUBDIRECTORY (initfiles)
-    HPCC_ADD_SUBDIRECTORY (tools)
-    HPCC_ADD_SUBDIRECTORY (common)
-    HPCC_ADD_SUBDIRECTORY (dali)
-    HPCC_ADD_SUBDIRECTORY (deploy)
-    HPCC_ADD_SUBDIRECTORY (deployment)
-    HPCC_ADD_SUBDIRECTORY (ecl)
-    HPCC_ADD_SUBDIRECTORY (ecllibrary)
-    HPCC_ADD_SUBDIRECTORY (esp)
-    HPCC_ADD_SUBDIRECTORY (plugins)
-    HPCC_ADD_SUBDIRECTORY (roxie)
-    HPCC_ADD_SUBDIRECTORY (rtl)
-    HPCC_ADD_SUBDIRECTORY (services "PLATFORM")
+elseif ( NOT MAKE_DOCS_ONLY OR MAKE_CONFIGURATOR )
     HPCC_ADD_SUBDIRECTORY (system)
-    HPCC_ADD_SUBDIRECTORY (thorlcr "PLATFORM")
-    HPCC_ADD_SUBDIRECTORY (testing)
+
+    if ( NOT MAKE_DOCS_ONLY )
+        HPCC_ADD_SUBDIRECTORY (initfiles)
+        HPCC_ADD_SUBDIRECTORY (tools)
+        HPCC_ADD_SUBDIRECTORY (common)
+        HPCC_ADD_SUBDIRECTORY (dali)
+        HPCC_ADD_SUBDIRECTORY (deploy)
+        HPCC_ADD_SUBDIRECTORY (deployment)
+        HPCC_ADD_SUBDIRECTORY (ecl)
+        HPCC_ADD_SUBDIRECTORY (ecllibrary)
+        HPCC_ADD_SUBDIRECTORY (esp)
+        HPCC_ADD_SUBDIRECTORY (plugins)
+        HPCC_ADD_SUBDIRECTORY (roxie)
+        HPCC_ADD_SUBDIRECTORY (rtl)
+        HPCC_ADD_SUBDIRECTORY (services "PLATFORM")
+        HPCC_ADD_SUBDIRECTORY (thorlcr "PLATFORM")
+        HPCC_ADD_SUBDIRECTORY (testing)
+
+        if ( NOT WIN32 )
+            HPCC_ADD_SUBDIRECTORY (clienttools "CLIENTTOOLS_ONLY")
+        endif()
+
+    endif ( NOT MAKE_DOCS_ONLY )
+
     if ( MAKE_CONFIGURATOR )
         MESSAGE(STATUS "Configurator app build ON")
-        HPCC_ADD_SUBDIRECTORY (configuration "PLATFORM")
-    endif()
-    if ( NOT WIN32 )
-        HPCC_ADD_SUBDIRECTORY (clienttools "CLIENTTOOLS_ONLY")
+        HPCC_ADD_SUBDIRECTORY (configuration)
     endif()
 endif()
 

+ 4 - 1
cmake_modules/commonSetup.cmake

@@ -95,6 +95,7 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
   option(USE_UNSIGNED_CHAR "Build system with default char type is unsigned" OFF)
   option(USE_MYSQL "Enable mysql support" ON)
   option(USE_OPTIONAL "Automatically disable requested features with missing dependencies" ON)
+  option(JLIB_ONLY  "Build JLIB for other projects such as Configurator, Ganglia Monitoring, etc" OFF)
   # Generates code that is more efficient, but will cause problems if target platforms do not support it.
   if (CMAKE_SIZEOF_VOID_P EQUAL 8)
     option(USE_INLINE_TSC "Inline calls to read TSC (time stamp counter)" ON)
@@ -680,7 +681,9 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
 
     if (DOCS_AUTO)
        if ("${CONFIGURATOR_DIRECTORY}" STREQUAL "")
-         set(CONFIGURATOR_DIRECTORY ${HPCC_SOURCE_DIR}/../configurator)
+         set(MAKE_CONFIGURATOR ON)
+         set(JLIB_ONLY ON)
+         set  (CONFIGURATOR_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
        endif()
     endif()
   ENDIF(MAKE_DOCS)

+ 98 - 94
cmake_modules/docMacros.cmake

@@ -1,102 +1,102 @@
 
 MACRO(RUN_XSLTPROC _xsl _file _out _in_dir _out_dir )
-	PARSE_ARGUMENTS(_XSLT "" "" ${ARGN})
-	SET(TARG "")
-	LIST(LENGTH _XSLT_DEFAULT_ARGS _XSLT_LEN)
-	if( _XSLT_LEN )
-		LIST(GET _XSLT_DEFAULT_ARGS 0 TARG)
-		set(DIRS ${_XSLT_DEFAULT_ARGS})
-		LIST(REMOVE_AT DIRS 0)
-		LIST(LENGTH DIRS length)
-		set(FILES "")
-		if ( length )
-			foreach( D ${DIRS} )
-				file(GLOB_RECURSE _DB_INCLUDES ${D}/*.xml)
-				set(FILES ${FILES} ${_DB_INCLUDES})
-			endforeach()
-		endif()
-	endif()
-	STRING(REGEX REPLACE "([0-9a-z_-]*).xml" "\\1" _file_base "${_file}")
-	SET(_xsl ${_xsl})
-	SET(_file ${_file})
-	SET(_out ${_out})
-	SET(_in_dir ${_in_dir})
-	SET(_out_dir ${_out_dir})
-	IF( TARG )
-		SET(_xslt_target ${ARGN})
-		SET(xinclude "-xinclude")
-	ELSE()
-		SET(_xslt_target)
-		SET(xinclude)
-	ENDIF()
-	CONFIGURE_FILE(${HPCC_SOURCE_DIR}/docs/BuildTools/xsltproc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${_out}.cmake @ONLY)
-	ADD_CUSTOM_COMMAND(
-		COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/${_out}.cmake
-		OUTPUT ${_out_dir}/${_out}
-		DEPENDS docbook-expand ${_xsl} ${_in_dir}/${_file} ${_xslt_target} ${FILES} ${DOC_IMAGE_LIST} ${XSLTPROC_DEPENDENCIES}
-		)
-	set_source_files_properties(${_out_dir}/${_out} PROPERTIES GENERATED TRUE)
-	ADD_CUSTOM_TARGET(${_out} DEPENDS ${_out_dir}/${_out} )
+        PARSE_ARGUMENTS(_XSLT "" "" ${ARGN})
+        SET(TARG "")
+        LIST(LENGTH _XSLT_DEFAULT_ARGS _XSLT_LEN)
+        if( _XSLT_LEN )
+                LIST(GET _XSLT_DEFAULT_ARGS 0 TARG)
+                set(DIRS ${_XSLT_DEFAULT_ARGS})
+                LIST(REMOVE_AT DIRS 0)
+                LIST(LENGTH DIRS length)
+                set(FILES "")
+                if ( length )
+                        foreach( D ${DIRS} )
+                                file(GLOB_RECURSE _DB_INCLUDES ${D}/*.xml)
+                                set(FILES ${FILES} ${_DB_INCLUDES})
+                        endforeach()
+                endif()
+        endif()
+        STRING(REGEX REPLACE "([0-9a-z_-]*).xml" "\\1" _file_base "${_file}")
+        SET(_xsl ${_xsl})
+        SET(_file ${_file})
+        SET(_out ${_out})
+        SET(_in_dir ${_in_dir})
+        SET(_out_dir ${_out_dir})
+        IF( TARG )
+                SET(_xslt_target ${ARGN})
+                SET(xinclude "-xinclude")
+        ELSE()
+                SET(_xslt_target)
+                SET(xinclude)
+        ENDIF()
+        CONFIGURE_FILE(${HPCC_SOURCE_DIR}/docs/BuildTools/xsltproc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${_out}.cmake @ONLY)
+        ADD_CUSTOM_COMMAND(
+                COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/${_out}.cmake
+                OUTPUT ${_out_dir}/${_out}
+                DEPENDS docbook-expand ${_xsl} ${_in_dir}/${_file} ${_xslt_target} ${FILES} ${DOC_IMAGE_LIST} ${XSLTPROC_DEPENDENCIES}
+                )
+        set_source_files_properties(${_out_dir}/${_out} PROPERTIES GENERATED TRUE)
+        ADD_CUSTOM_TARGET(${_out} DEPENDS ${_out_dir}/${_out} )
         SET(XSLTPROC_DEPENDENCIES)
 ENDMACRO(RUN_XSLTPROC)
 
 MACRO(RUN_FOP _file _out)
-	ADD_CUSTOM_COMMAND(
-		COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs
-		COMMAND ${FOP_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/${_file} -pdf ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs/${_out} 
-		OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs/${_out}
-		DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_file}
-		)
-	set_source_files_properties(${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs/${_out} PROPERTIES GENERATED TRUE)
-	ADD_CUSTOM_TARGET(${_out} DEPENDS ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs/${_out} )
+        ADD_CUSTOM_COMMAND(
+                COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs
+                COMMAND ${FOP_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/${_file} -pdf ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs/${_out}
+                OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs/${_out}
+                DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_file}
+                )
+        set_source_files_properties(${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs/${_out} PROPERTIES GENERATED TRUE)
+        ADD_CUSTOM_TARGET(${_out} DEPENDS ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/docs/${_out} )
 ENDMACRO(RUN_FOP)
 
 MACRO(CLEAN_REL_BOOK _file _version_dir _doc_dir _in_dir _out_dir)
-	STRING(REGEX REPLACE "([0-9a-z_-]*).xml" "\\1" _file_base "${_file}")
-	SET(_clean_target "clean_${_file}")
-	SET(VERSION_DIR ${_version_dir})
-	SET(ROOT "book")
-	CONFIGURE_FILE(${HPCC_SOURCE_DIR}/docs/BuildTools/relrem.xsl.in ${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl @ONLY)
-	RUN_XSLTPROC( ${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl ${_file} ${_file} ${_in_dir} ${_out_dir})
-	set_source_files_properties(${_out_dir}/${_file} PROPERTIES GENERATED TRUE)
-	ADD_CUSTOM_TARGET( ${_clean_target} DEPENDS ${_in_dir}/${_file} )
+        STRING(REGEX REPLACE "([0-9a-z_-]*).xml" "\\1" _file_base "${_file}")
+        SET(_clean_target "clean_${_file}")
+        SET(VERSION_DIR ${_version_dir})
+        SET(ROOT "book")
+        CONFIGURE_FILE(${HPCC_SOURCE_DIR}/docs/BuildTools/relrem.xsl.in ${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl @ONLY)
+        RUN_XSLTPROC( ${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl ${_file} ${_file} ${_in_dir} ${_out_dir})
+        set_source_files_properties(${_out_dir}/${_file} PROPERTIES GENERATED TRUE)
+        ADD_CUSTOM_TARGET( ${_clean_target} DEPENDS ${_in_dir}/${_file} )
 ENDMACRO(CLEAN_REL_BOOK)
 
 MACRO(CLEAN_REL_SET _file _version_dir _doc_dir _in_dir _out_dir)
-	STRING(REGEX REPLACE "([0-9a-z_-]*).xml" "\\1" _file_base "${_file}")
-	SET(_clean_target "clean_${_file}")
-	SET(VERSION_DIR ${_version_dir})
-	SET(ROOT "set")
-	CONFIGURE_FILE(${HPCC_SOURCE_DIR}/docs/BuildTools/relrem.xsl.in ${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl @ONLY)
-	RUN_XSLTPROC( ${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl ${_file} ${_file} ${_in_dir} ${_out_dir})
-	set_source_files_properties(${_out_dir}/${_file} PROPERTIES GENERATED TRUE)
-	ADD_CUSTOM_TARGET( ${_clean_target} DEPENDS ${_in_dir}/${_file} )
+        STRING(REGEX REPLACE "([0-9a-z_-]*).xml" "\\1" _file_base "${_file}")
+        SET(_clean_target "clean_${_file}")
+        SET(VERSION_DIR ${_version_dir})
+        SET(ROOT "set")
+        CONFIGURE_FILE(${HPCC_SOURCE_DIR}/docs/BuildTools/relrem.xsl.in ${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl @ONLY)
+        RUN_XSLTPROC( ${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl ${_file} ${_file} ${_in_dir} ${_out_dir})
+        set_source_files_properties(${_out_dir}/${_file} PROPERTIES GENERATED TRUE)
+        ADD_CUSTOM_TARGET( ${_clean_target} DEPENDS ${_in_dir}/${_file} )
 ENDMACRO(CLEAN_REL_SET)
 
 MACRO(DOCBOOK_TO_PDF _xsl _file _name)
 
-	PARSE_ARGUMENTS(_DB "" "" ${ARGN})
-	LIST(LENGTH _DB_DEFAULT_ARGS length)
-	IF(MAKE_DOCS)
-		STRING(REGEX REPLACE "([0-9a-z_-]*).xml" "\\1" _file_base "${_file}")
-		SET(_fo_file ${_file_base}.fo)
-		SET(_pdf_file ${_name}-${version}-${stagever}.pdf)
-		SET( _docs_target "doc_${_pdf_file}")  # File to Name of type.
-		CLEAN_REL_BOOK(${_file} ${VERSION_DIR} ${DOC_IMAGES} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
-		set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl  PROPERTIES GENERATED TRUE)
-		RUN_XSLTPROC(${_xsl} ${_file} ${_fo_file} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR} "clean_${_file}" ${_DB_DEFAULT_ARGS})
+        PARSE_ARGUMENTS(_DB "" "" ${ARGN})
+        LIST(LENGTH _DB_DEFAULT_ARGS length)
+        IF(MAKE_DOCS)
+                STRING(REGEX REPLACE "([0-9a-z_-]*).xml" "\\1" _file_base "${_file}")
+                SET(_fo_file ${_file_base}.fo)
+                SET(_pdf_file ${_name}-${version}-${stagever}.pdf)
+                SET( _docs_target "doc_${_pdf_file}")  # File to Name of type.
+                CLEAN_REL_BOOK(${_file} ${VERSION_DIR} ${DOC_IMAGES} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
+                set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${_file_base}.xsl  PROPERTIES GENERATED TRUE)
+                RUN_XSLTPROC(${_xsl} ${_file} ${_fo_file} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR} "clean_${_file}" ${_DB_DEFAULT_ARGS})
                 IF (DISABLE_PDF)
                    SET(DISABLE_PDF)
                    SET(_target_file ${_fo_file})
                 ELSE()
-		   RUN_FOP(${_fo_file} ${_pdf_file})
-		   set_source_files_properties(${_pdf_file} PROPERTIES GENERATED TRUE)
+                   RUN_FOP(${_fo_file} ${_pdf_file})
+                   set_source_files_properties(${_pdf_file} PROPERTIES GENERATED TRUE)
                    SET(_target_file ${_pdf_file})
                 ENDIF()
-		MESSAGE("-- Adding document: ${_target_file} -  target: ${_docs_target}")
-		ADD_CUSTOM_TARGET(${_docs_target} ALL DEPENDS ${_target_file} )
-		set_property(GLOBAL APPEND PROPERTY DOC_TARGETS "${_docs_target}")
-	ENDIF(MAKE_DOCS)
+                MESSAGE("-- Adding document: ${_target_file} -  target: ${_docs_target}")
+                ADD_CUSTOM_TARGET(${_docs_target} ALL DEPENDS ${_target_file} )
+                set_property(GLOBAL APPEND PROPERTY DOC_TARGETS "${_docs_target}")
+        ENDIF(MAKE_DOCS)
 ENDMACRO(DOCBOOK_TO_PDF targetname_suffix srcfile outfile targetdir deps_list)
 
 MACRO(DOCBOOK_TO_HTML _xsl_file _xml_file _out_dir)
@@ -130,33 +130,37 @@ MACRO(DOCBOOK_TO_HTML _xsl_file _xml_file _out_dir)
 ENDMACRO(DOCBOOK_TO_HTML)
 
 MACRO(FILE_LIST_GENERATOR outxml filename linkname description)
-	set(xmlout "	<file>\n")
-	set(xmlout "${xmlout}		<name>${linkname}</name>\n")
-	set(xmlout "${xmlout}		<description>${description}</description>\n")
-	set(xmlout "${xmlout}		<filename>${filename}</filename>\n")
-	set(xmlout "${xmlout}		<version>${DOC_VERSION}</version>\n")
-	set(xmlout "${xmlout}	</file>\n")
-	message("---- FILE_LIST_GENERATOR: Adding ${filename}")
-	set(${outxml} "${${outxml}}${xmlout}")
+        set(xmlout "        <file>\n")
+        set(xmlout "${xmlout}                <name>${linkname}</name>\n")
+        set(xmlout "${xmlout}                <description>${description}</description>\n")
+        set(xmlout "${xmlout}                <filename>${filename}</filename>\n")
+        set(xmlout "${xmlout}                <version>${DOC_VERSION}</version>\n")
+        set(xmlout "${xmlout}        </file>\n")
+        message("---- FILE_LIST_GENERATOR: Adding ${filename}")
+        set(${outxml} "${${outxml}}${xmlout}")
 ENDMACRO(FILE_LIST_GENERATOR)
 
 MACRO(XSD_TO_XML _xsd_files _in_dir _out_dir)
 
         set(_xml_files)
-	ADD_CUSTOM_COMMAND(
-		COMMAND mkdir -p ${_out_dir}
-		OUTPUT ${_out_dir}
+        ADD_CUSTOM_COMMAND(
+                COMMAND mkdir -p ${_out_dir}
+                OUTPUT ${_out_dir}
                 )
         foreach(_xsd_file ${_xsd_files})
             STRING(REGEX REPLACE "(.*).xsd" "\\1.xml" _xml_file "${_xsd_file}")
-	    ADD_CUSTOM_COMMAND(
-		COMMAND ./configurator -doc -use ${_xsd_file} -b ${_in_dir} -t ${_out_dir}
-		OUTPUT ${_out_dir}/${_xml_file}
+            ADD_CUSTOM_COMMAND(
+                COMMAND ./configurator --doc --use ${_xsd_file} -b ${_in_dir} -t ${_out_dir}
+                OUTPUT ${_out_dir}/${_xml_file}
                 WORKING_DIRECTORY ${CONFIGURATOR_DIRECTORY}
-		DEPENDS ${_out_dir} ${_in_dir}/${_xsd_file} ${_in_dir}/environment.xsd
-		)
+                DEPENDS ${_out_dir} ${_in_dir}/${_xsd_file} ${_in_dir}/environment.xsd
+                )
             list(APPEND _xml_files ${_out_dir}/${_xml_file})
         endforeach()
-	ADD_CUSTOM_TARGET("xsd_to_xml" ALL  DEPENDS ${_out_dir} ${_xml_files} )
+        if (MAKE_CONFIGURATOR)
+            ADD_CUSTOM_TARGET("xsd_to_xml" ALL  DEPENDS ${_out_dir} ${_xml_files} "configurator" )
+        else()
+            ADD_CUSTOM_TARGET("xsd_to_xml" ALL  DEPENDS ${_out_dir} ${_xml_files} )
+        endif()
         set_property(GLOBAL APPEND PROPERTY DOC_TARGETS "xsd_to_xml")
 ENDMACRO(XSD_TO_XML)

+ 4 - 0
configuration/configurator/BuildSet.cpp

@@ -16,6 +16,7 @@
 ############################################################################## */
 
 #include "jptree.hpp"
+#include "jfile.hpp"
 #include "XMLTags.h"
 #include "BuildSet.hpp"
 #include "SchemaCommon.hpp"
@@ -39,6 +40,9 @@ CBuildSetManager* CBuildSetManager::getInstance(const char* pBuildSetFile, const
         pBuildSetDirectory = s_pBuildSetManager->m_buildSetDir;
 
         s_pBuildSetManager->m_buildSetPath.setf("%s%s%s", pBuildSetDirectory, pBuildSetDirectory[strlen(pBuildSetDirectory)-1] == '/' ? "" : "/", pBuildSetFile);
+
+        if (!checkFileExists(s_pBuildSetManager->m_buildSetPath.str()))
+            return s_pBuildSetManager;
         if (s_pBuildSetManager->populateBuildSet() == false)
         {
             delete s_pBuildSetManager;

+ 1 - 0
configuration/configurator/schemas/SchemaAttributes.cpp

@@ -195,6 +195,7 @@ void CAttribute::populateEnvXPath(StringBuffer strXPath, unsigned int index)
 {
     assert(this->getName() != nullptr);
 
+    //These two lines cause installset.xsd segmentation fault in debug. Will come back to this later
     const char *pChar = strrchr(strXPath.str(),'[');
     assert(pChar != nullptr && strlen(pChar) >= 3);
 

+ 1 - 1
configuration/configurator/schemas/SchemaElement.cpp

@@ -269,7 +269,7 @@ void CElement::getDocumentation(::StringBuffer &strDoc) const
 
     assert(strlen(this->getName()) > 0);
 
-    if (pGrandParentNode->getNodeType() == XSD_SCHEMA)
+    if (strDoc.length() == 0)
     {
         ::StringBuffer strName(this->getName());
 

+ 9 - 5
system/CMakeLists.txt

@@ -13,11 +13,15 @@
 #    See the License for the specific language governing permissions and
 #    limitations under the License.
 ################################################################################
-HPCC_ADD_SUBDIRECTORY (hrpc)
+
 HPCC_ADD_SUBDIRECTORY (include)
 HPCC_ADD_SUBDIRECTORY (jhtree)
 HPCC_ADD_SUBDIRECTORY (jlib)
-HPCC_ADD_SUBDIRECTORY (mp)
-HPCC_ADD_SUBDIRECTORY (security)
-HPCC_ADD_SUBDIRECTORY (xmllib)
-HPCC_ADD_SUBDIRECTORY (xmllibtest "PLATFORM")
+
+if (NOT JLIB_ONLY)
+   HPCC_ADD_SUBDIRECTORY (hrpc)
+   HPCC_ADD_SUBDIRECTORY (mp)
+   HPCC_ADD_SUBDIRECTORY (security)
+   HPCC_ADD_SUBDIRECTORY (xmllib)
+   HPCC_ADD_SUBDIRECTORY (xmllibtest "PLATFORM")
+endif( )