diff --git a/CMakeLists.txt b/CMakeLists.txt index a7897be92..03e76792b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,6 +112,7 @@ OPTION(EQEMU_BUILD_SERVER "Build the game server." ON) OPTION(EQEMU_BUILD_LOGIN "Build the login server." OFF) OPTION(EQEMU_BUILD_AZONE "Build azone utility." OFF) OPTION(EQEMU_BUILD_TESTS "Build utility tests." OFF) +OPTION(EQEMU_BUILD_PERL "Build Perl parser." OFF) #C++11 stuff IF(NOT MSVC) @@ -128,8 +129,10 @@ IF(EQEMU_ENABLE_RVALUE_MOVE) ENDIF(EQEMU_ENABLE_RVALUE_MOVE) #Various definitions -ADD_DEFINITIONS(-DEMBPERL) -ADD_DEFINITIONS(-DEMBPERL_PLUGIN) +IF(EQEMU_BUILD_PERL) + ADD_DEFINITIONS(-DEMBPERL) + ADD_DEFINITIONS(-DEMBPERL_PLUGIN) +ENDIF(EQEMU_BUILD_PERL) ADD_DEFINITIONS(-DEQDEBUG=${EQEMU_DEBUG_LEVEL}) ADD_DEFINITIONS(-DINVERSEXY) ADD_DEFINITIONS(-DFIELD_ITEMS) @@ -138,8 +141,11 @@ ADD_DEFINITIONS(-DMAP_DIR="./Maps") #Find everything we need FIND_PACKAGE(ZLIB REQUIRED) FIND_PACKAGE(MySQL REQUIRED) -FIND_PACKAGE(PerlLibs REQUIRED) -INCLUDE_DIRECTORIES("${ZLIB_INCLUDE_DIRS}" "${PERL_INCLUDE_PATH}" "${MySQL_INCLUDE_DIR}") +IF(EQEMU_BUILD_PERL) + FIND_PACKAGE(PerlLibs REQUIRED) + INCLUDE_DIRECTORIES("${PERL_INCLUDE_PATH}") +ENDIF(EQEMU_BUILD_PERL) +INCLUDE_DIRECTORIES("${ZLIB_INCLUDE_DIRS}" "${MySQL_INCLUDE_DIR}") IF(EQEMU_BUILD_SERVER OR EQEMU_BUILD_LOGIN OR EQEMU_BUILD_TESTS) ADD_SUBDIRECTORY(common) diff --git a/zone/net.cpp b/zone/net.cpp index ac3ab94f2..2ac9d1c61 100644 --- a/zone/net.cpp +++ b/zone/net.cpp @@ -284,9 +284,11 @@ int main(int argc, char** argv) { } parse = new QuestParserCollection(); - PerlXSParser *pxs = new PerlXSParser(); - Parser *ps = new Parser(); - parse->RegisterQuestInterface(pxs, "pl"); +#ifdef EMBPERL + PerlXSParser *pxs = new PerlXSParser(); + parse->RegisterQuestInterface(pxs, "pl"); +#endif + Parser *ps = new Parser(); //parse->RegisterQuestInterface(ps, "qst"); @@ -473,7 +475,9 @@ int main(int argc, char** argv) { entity_list.Clear(); safe_delete(parse); - safe_delete(pxs); +#ifdef EMBPERL + safe_delete(pxs); +#endif safe_delete(ps); safe_delete(mmf);