From 7a4f2de28478426398e03c4db370e974c94baf3e Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Fri, 26 Nov 2021 21:56:07 +0100 Subject: [PATCH] start working on an allplacefinder library in 'lib' directory there'll be the library in 'placefinder' directory there'll be a cmd tool (placefinder) --- .gitignore | 4 ++ Makefile | 43 ++++++++++++++++++ lib/Makefile | 45 +++++++++++++++++++ lib/Makefile.dep | 3 ++ lib/finder.cpp | 55 +++++++++++++++++++++++ lib/finder.h | 55 +++++++++++++++++++++++ lib/params.h | 55 +++++++++++++++++++++++ placefinder/Makefile | 45 +++++++++++++++++++ placefinder/Makefile.dep | 3 ++ placefinder/main.cpp | 95 ++++++++++++++++++++++++++++++++++++++++ 10 files changed, 403 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 lib/Makefile create mode 100644 lib/Makefile.dep create mode 100644 lib/finder.cpp create mode 100644 lib/finder.h create mode 100644 lib/params.h create mode 100644 placefinder/Makefile create mode 100644 placefinder/Makefile.dep create mode 100644 placefinder/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8b4257c --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.cproject +.project +.settings +data diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c063d68 --- /dev/null +++ b/Makefile @@ -0,0 +1,43 @@ + + +CXX = g++10 +CXXFLAGS = -Wl,-rpath=/usr/local/lib/gcc10 -Wfatal-errors -fPIC -Wall -pedantic -O0 -g3 -pthread -std=c++20 -I../../pikotools/src -I../lib -I/usr/local/include +LDFLAGS = -L/usr/local/lib + +#-fsanitize=address + + +export CXX +export CXXFLAGS +export LDFLAGS +export AR + +all: lib placefinder pikotools + + +lib: FORCE pikotools + $(MAKE) -C lib + + +placefinder: FORCE pikotools + $(MAKE) -C placefinder + + +pikotools: FORCE + $(MAKE) -C ../pikotools + + +clean: FORCE + $(MAKE) -C lib clean + $(MAKE) -C placefinder clean + + +depend: FORCE + $(MAKE) -C lib depend + $(MAKE) -C placefinder depend + + + + +FORCE: + diff --git a/lib/Makefile b/lib/Makefile new file mode 100644 index 0000000..c52c55b --- /dev/null +++ b/lib/Makefile @@ -0,0 +1,45 @@ +sourcefiles:=$(shell find . -name "*.cpp") +objfiles:=$(patsubst %.cpp,%.o,$(sourcefiles)) + + + +ifndef CXX +CXX = g++ +endif + +ifndef CXXFLAGS +CXXFLAGS = -Wall -pedantic -O2 -std=c++20 +endif + +ifndef AR +AR = ar +endif + + + + +libname = allplacefinder.a + + +all: $(libname) + + +$(libname): $(objfiles) + $(AR) rcs $(libname) $(objfiles) + + +%.o: %.cpp + $(CXX) -c $(CXXFLAGS) -o $@ $< + + +clean: + rm -f $(objfiles) + rm -f $(libname) + + +depend: + makedepend -Y. -f- $(sourcefiles) > Makefile.dep + + +-include Makefile.dep + diff --git a/lib/Makefile.dep b/lib/Makefile.dep new file mode 100644 index 0000000..ad87197 --- /dev/null +++ b/lib/Makefile.dep @@ -0,0 +1,3 @@ +# DO NOT DELETE + +./finder.o: finder.h diff --git a/lib/finder.cpp b/lib/finder.cpp new file mode 100644 index 0000000..95ae866 --- /dev/null +++ b/lib/finder.cpp @@ -0,0 +1,55 @@ +/* + * This file is a part of AllPlaceFinder library + * and is distributed under the 2-Clause BSD licence. + * Author: Tomasz Sowa + */ + +/* + * Copyright (c) 2021, Tomasz Sowa + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "finder.h" + + +namespace allplacefinder +{ + + +Finder::Finder() +{ + +} + + + + + + + +} // namespace + + diff --git a/lib/finder.h b/lib/finder.h new file mode 100644 index 0000000..8897143 --- /dev/null +++ b/lib/finder.h @@ -0,0 +1,55 @@ +/* + * This file is a part of AllPlaceFinder library + * and is distributed under the 2-Clause BSD licence. + * Author: Tomasz Sowa + */ + +/* + * Copyright (c) 2021, Tomasz Sowa + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef headerfile_allplacefinder_lib_finder +#define headerfile_allplacefinder_lib_finder + + +namespace allplacefinder +{ + +class Finder +{ +public: + + Finder(); + + + + +}; + +} // namespace + +#endif diff --git a/lib/params.h b/lib/params.h new file mode 100644 index 0000000..35d2753 --- /dev/null +++ b/lib/params.h @@ -0,0 +1,55 @@ +/* + * This file is a part of AllPlaceFinder library + * and is distributed under the 2-Clause BSD licence. + * Author: Tomasz Sowa + */ + +/* + * Copyright (c) 2021, Tomasz Sowa + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef headerfile_allplacefinder_lib_params +#define headerfile_allplacefinder_lib_params + + +namespace allplacefinder +{ + +class Params +{ +public: + + + + + + +}; + +} // namespace + +#endif diff --git a/placefinder/Makefile b/placefinder/Makefile new file mode 100644 index 0000000..efbedd4 --- /dev/null +++ b/placefinder/Makefile @@ -0,0 +1,45 @@ +sourcefiles:=$(shell find . -name "*.cpp") +objfiles:=$(patsubst %.cpp,%.o,$(sourcefiles)) + + + +ifndef CXX +CXX = g++ +endif + +ifndef CXXFLAGS +CXXFLAGS = -Wall -pedantic -O2 -std=c++20 -I../lib +endif + +ifndef AR +AR = ar +endif + + + + +progname = placefinder + + +all: $(progname) + + +$(progname): $(objfiles) + $(CXX) -o $(progname) $(CXXFLAGS) $(LDFLAGS) $(objfiles) ../lib/allplacefinder.a ../../pikotools/src/pikotools.a + + +%.o: %.cpp + $(CXX) -c $(CXXFLAGS) -o $@ $< + + +clean: + rm -f $(objfiles) + rm -f $(progname) + + +depend: + makedepend -Y. -I../lib -f- $(sourcefiles) > Makefile.dep + + +-include Makefile.dep + diff --git a/placefinder/Makefile.dep b/placefinder/Makefile.dep new file mode 100644 index 0000000..3e914bc --- /dev/null +++ b/placefinder/Makefile.dep @@ -0,0 +1,3 @@ +# DO NOT DELETE + +./main.o: ../lib/finder.h ../lib/params.h diff --git a/placefinder/main.cpp b/placefinder/main.cpp new file mode 100644 index 0000000..f01699d --- /dev/null +++ b/placefinder/main.cpp @@ -0,0 +1,95 @@ +/* + * This file is a part of AllPlaceFinder library + * and is distributed under the 2-Clause BSD licence. + * Author: Tomasz Sowa + */ + +/* + * Copyright (c) 2021, Tomasz Sowa + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include +#include "mainoptions/mainoptionsparser.h" +#include "finder.h" +#include "params.h" + + +void print_syntax() +{ + std::cout << "placefinder options:" << std::endl; + std::cout << " -h print this help" << std::endl; + + +} + + +bool parse_parameters(const pt::Space & parameters, allplacefinder::Params & params) +{ + + return true; +} + + + +int main(int argc, const char ** argv) +{ +pt::Space options, arguments; +pt::MainOptionsParser options_parser; +allplacefinder::Params params; + + arguments.add(L"osmfile", 1); + arguments.add(L"lookupdir", 1); + + pt::MainOptionsParser::Status status = options_parser.parse(argc, argv, options, arguments); + + if( status != pt::MainOptionsParser::status_ok ) + { + print_syntax(); + return 1; + } + + if( options.has_key(L"h") ) + { + print_syntax(); + return 0; + } + + if( parse_parameters(options, params) ) + { + + + //allplacefinder::Finder finder; + + } + + + + //std::cout << options.serialize_to_json_str(true) << std::endl; + +return 0; +} +