From 5aaad23309fb4abd10b2f044ea03258c12b2724d Mon Sep 17 00:00:00 2001 From: Heiko Strathmann Date: Fri, 3 Mar 2017 17:29:40 +0000 Subject: [PATCH] Move a few GPL files to separate shogun_gpl folder --- src/interfaces/modular/Minimizer.i | 2 +- src/interfaces/modular/Minimizer_includes.i | 2 +- src/interfaces/modular/Multiclass.i | 4 +++- src/interfaces/modular/Multiclass_includes.i | 4 +++- src/shogun/CMakeLists.txt | 6 ++++++ src/shogun/base/class_list.cpp.py | 9 ++++----- .../shogun}/multiclass/MulticlassLogisticRegression.cpp | 2 -- .../shogun}/multiclass/MulticlassLogisticRegression.h | 2 -- .../{ => gpl/shogun}/optimization/NLOPTMinimizer.cpp | 2 -- .../{ => gpl/shogun}/optimization/NLOPTMinimizer.h | 2 -- .../classifier/GaussianProcessClassification_unittest.cc | 2 ++ 11 files changed, 20 insertions(+), 17 deletions(-) rename src/shogun/{ => gpl/shogun}/multiclass/MulticlassLogisticRegression.cpp (98%) rename src/shogun/{ => gpl/shogun}/multiclass/MulticlassLogisticRegression.h (98%) rename src/shogun/{ => gpl/shogun}/optimization/NLOPTMinimizer.cpp (99%) rename src/shogun/{ => gpl/shogun}/optimization/NLOPTMinimizer.h (98%) diff --git a/src/interfaces/modular/Minimizer.i b/src/interfaces/modular/Minimizer.i index 75df057f943..9eddbabfd57 100644 --- a/src/interfaces/modular/Minimizer.i +++ b/src/interfaces/modular/Minimizer.i @@ -50,6 +50,6 @@ #ifdef USE_GPL_SHOGUN #ifdef HAVE_NLOPT %include -%include +%include #endif //HAVE_NLOPT #endif //USE_GPL_SHOGUN diff --git a/src/interfaces/modular/Minimizer_includes.i b/src/interfaces/modular/Minimizer_includes.i index 8e6b4ffdbb9..9ec5325edaf 100644 --- a/src/interfaces/modular/Minimizer_includes.i +++ b/src/interfaces/modular/Minimizer_includes.i @@ -6,7 +6,7 @@ #ifdef USE_GPL_SHOGUN #ifdef HAVE_NLOPT #include - #include + #include #endif //HAVE_NLOPT #endif //USE_GPL_SHOGUN %} diff --git a/src/interfaces/modular/Multiclass.i b/src/interfaces/modular/Multiclass.i index 8317a9178c8..63da555f18b 100644 --- a/src/interfaces/modular/Multiclass.i +++ b/src/interfaces/modular/Multiclass.i @@ -53,7 +53,9 @@ %rename(ECOCLLBDecoder) CECOCLLBDecoder; %rename(MulticlassTreeGuidedLogisticRegression) CMulticlassTreeGuidedLogisticRegression; +#ifdef USE_GPL_SHOGUN %rename(MulticlassLogisticRegression) CMulticlassLogisticRegression; +#endif //USE_GPL_SHOGUN %rename(MulticlassLibLinear) CMulticlassLibLinear; %rename(MulticlassOCAS) CMulticlassOCAS; %rename(MulticlassSVM) CMulticlassSVM; @@ -122,7 +124,7 @@ namespace shogun %include %include -%include +%include %include %include %include diff --git a/src/interfaces/modular/Multiclass_includes.i b/src/interfaces/modular/Multiclass_includes.i index 4057458cf77..fdbc88df429 100644 --- a/src/interfaces/modular/Multiclass_includes.i +++ b/src/interfaces/modular/Multiclass_includes.i @@ -47,7 +47,9 @@ #include #include - #include +#ifdef USE_GPL_SHOGUN + #include +#endif //USE_GPL_SHOGUN #include #include #include diff --git a/src/shogun/CMakeLists.txt b/src/shogun/CMakeLists.txt index d712d4160e5..1b49a203206 100644 --- a/src/shogun/CMakeLists.txt +++ b/src/shogun/CMakeLists.txt @@ -3,6 +3,12 @@ INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR}/src ) +IF(${USE_GPL_SHOGUN} AND EXISTS ${CMAKE_SOURCE_DIR}/src/shogun/gpl) + INCLUDE_DIRECTORIES( + ${CMAKE_SOURCE_DIR}/src/shogun/gpl + ) +ENDIF() + include(GenerateExportHeader) include(CMakeDependentOption) include(CheckIncludeFile) diff --git a/src/shogun/base/class_list.cpp.py b/src/shogun/base/class_list.cpp.py index 46f9887d1be..eb90dfa2feb 100644 --- a/src/shogun/base/class_list.cpp.py +++ b/src/shogun/base/class_list.cpp.py @@ -8,6 +8,8 @@ # Written (W) 2008-2009 Soeren Sonnenburg # Copyright (C) 2008-2009 Fraunhofer Institute FIRST and Max Planck Society +import os.path + class_str = 'class' types = ["BOOL", "CHAR", "INT8", "UINT8", "INT16", "UINT16", "INT32", "UINT32", "INT64", "UINT64", "FLOAT32", "FLOAT64", "FLOATMAX", "COMPLEX128"] @@ -81,12 +83,11 @@ def extract_class_name(lines, line_nr, line, blacklist): return c[1:] -def get_includes(classes, basedir="."): +def get_includes(classes, basedir=".", src_dir="shogun"): class_headers = [] for c, t in classes: class_headers.append(c+".h") - import os result = [] for root, dirs, files in os.walk(basedir): for f in files: @@ -96,7 +97,7 @@ def get_includes(classes, basedir="."): includes = [] result.sort() for o in result: - includes.append('#include ' % o.strip().lstrip('./')) + includes.append('#include <%s/%s>' % (src_dir, o.strip().lstrip('./'))) return includes @@ -289,7 +290,6 @@ def get_blacklist(): def get_base_src_dir(headers): - import os.path return os.path.commonprefix(headers) @@ -306,7 +306,6 @@ def get_base_src_dir(headers): HEADERS = sys.argv[2:] blacklist = get_blacklist() - base_src_dir = get_base_src_dir(HEADERS) classes = extract_classes(HEADERS, False, blacklist, False) template_classes = extract_classes(HEADERS, True, blacklist, False) diff --git a/src/shogun/multiclass/MulticlassLogisticRegression.cpp b/src/shogun/gpl/shogun/multiclass/MulticlassLogisticRegression.cpp similarity index 98% rename from src/shogun/multiclass/MulticlassLogisticRegression.cpp rename to src/shogun/gpl/shogun/multiclass/MulticlassLogisticRegression.cpp index f68878fbe12..c667950c93e 100644 --- a/src/shogun/multiclass/MulticlassLogisticRegression.cpp +++ b/src/shogun/gpl/shogun/multiclass/MulticlassLogisticRegression.cpp @@ -10,7 +10,6 @@ #include -#ifdef USE_GPL_SHOGUN #include #include #include @@ -101,4 +100,3 @@ bool CMulticlassLogisticRegression::train_machine(CFeatures* data) } return true; } -#endif //USE_GPL_SHOGUN diff --git a/src/shogun/multiclass/MulticlassLogisticRegression.h b/src/shogun/gpl/shogun/multiclass/MulticlassLogisticRegression.h similarity index 98% rename from src/shogun/multiclass/MulticlassLogisticRegression.h rename to src/shogun/gpl/shogun/multiclass/MulticlassLogisticRegression.h index 758888fd4dc..68ae32b803e 100644 --- a/src/shogun/multiclass/MulticlassLogisticRegression.h +++ b/src/shogun/gpl/shogun/multiclass/MulticlassLogisticRegression.h @@ -11,7 +11,6 @@ #ifndef MULTICLASSLOGISTICREGRESSION_H_ #define MULTICLASSLOGISTICREGRESSION_H_ #include -#ifdef USE_GPL_SHOGUN #include #include #include @@ -111,5 +110,4 @@ class CMulticlassLogisticRegression : public CLinearMulticlassMachine }; } -#endif //USE_GPL_SHOGUN #endif diff --git a/src/shogun/optimization/NLOPTMinimizer.cpp b/src/shogun/gpl/shogun/optimization/NLOPTMinimizer.cpp similarity index 99% rename from src/shogun/optimization/NLOPTMinimizer.cpp rename to src/shogun/gpl/shogun/optimization/NLOPTMinimizer.cpp index 746eaaec7c2..69ea67636c8 100644 --- a/src/shogun/optimization/NLOPTMinimizer.cpp +++ b/src/shogun/gpl/shogun/optimization/NLOPTMinimizer.cpp @@ -35,7 +35,6 @@ #include using namespace shogun; -#ifdef USE_GPL_SHOGUN CNLOPTMinimizer::CNLOPTMinimizer() :FirstOrderMinimizer() { @@ -284,4 +283,3 @@ void CNLOPTMinimizer::init_minimization() } #endif -#endif //USE_GPL_SHOGUN diff --git a/src/shogun/optimization/NLOPTMinimizer.h b/src/shogun/gpl/shogun/optimization/NLOPTMinimizer.h similarity index 98% rename from src/shogun/optimization/NLOPTMinimizer.h rename to src/shogun/gpl/shogun/optimization/NLOPTMinimizer.h index 63f7e166255..21c190ae38b 100644 --- a/src/shogun/optimization/NLOPTMinimizer.h +++ b/src/shogun/gpl/shogun/optimization/NLOPTMinimizer.h @@ -34,7 +34,6 @@ #define CNLOPTMINIMIZER_H #include -#ifdef USE_GPL_SHOGUN #ifdef HAVE_NLOPT #include #endif @@ -136,6 +135,5 @@ class CNLOPTMinimizer: public FirstOrderMinimizer }; } -#endif //USE_GPL_SHOGUN #endif /* CNLOPTMINIMIZER_H */ diff --git a/tests/unit/classifier/GaussianProcessClassification_unittest.cc b/tests/unit/classifier/GaussianProcessClassification_unittest.cc index 031b8d8ff55..4c9651ac803 100644 --- a/tests/unit/classifier/GaussianProcessClassification_unittest.cc +++ b/tests/unit/classifier/GaussianProcessClassification_unittest.cc @@ -63,7 +63,9 @@ #include #include +#ifdef USE_GPL_SHOGUN #include +#endif using namespace shogun;