From 0065ff43281a650d7b5a78be310283e361421a39 Mon Sep 17 00:00:00 2001 From: Michael Fabian 'Xaymar' Dirks Date: Fri, 18 Jan 2019 15:55:51 +0100 Subject: [PATCH] compiler: CMake-ify --- compiler/CMakeLists.txt | 98 +++++++++++++++++++++++++ compiler/{assem.h => assem.hpp} | 2 +- compiler/{codegen.h => codegen.hpp} | 2 +- compiler/{compiler.h => compiler.hpp} | 0 compiler/decl.cpp | 6 +- compiler/{decl.h => decl.hpp} | 0 compiler/declnode.cpp | 4 +- compiler/{declnode.h => declnode.hpp} | 4 +- compiler/environ.cpp | 4 +- compiler/{environ.h => environ.hpp} | 6 +- compiler/{ex.h => ex.hpp} | 0 compiler/exprnode.cpp | 4 +- compiler/{exprnode.h => exprnode.hpp} | 4 +- compiler/{label.h => label.hpp} | 0 compiler/node.cpp | 4 +- compiler/{node.h => node.hpp} | 8 +- compiler/nodes.h | 10 --- compiler/nodes.hpp | 10 +++ compiler/parser.cpp | 4 +- compiler/{parser.h => parser.hpp} | 4 +- compiler/prognode.cpp | 4 +- compiler/{prognode.h => prognode.hpp} | 4 +- compiler/std.cpp | 2 +- compiler/{std.h => std.hpp} | 4 +- compiler/stmtnode.cpp | 4 +- compiler/{stmtnode.h => stmtnode.hpp} | 6 +- compiler/{stringmap.h => stringmap.hpp} | 0 compiler/toker.cpp | 6 +- compiler/{toker.h => toker.hpp} | 0 compiler/type.cpp | 4 +- compiler/{type.h => type.hpp} | 2 +- compiler/{var.h => var.hpp} | 0 compiler/varnode.cpp | 4 +- compiler/{varnode.h => varnode.hpp} | 4 +- 34 files changed, 158 insertions(+), 60 deletions(-) create mode 100644 compiler/CMakeLists.txt rename compiler/{assem.h => assem.hpp} (83%) rename compiler/{codegen.h => codegen.hpp} (98%) rename compiler/{compiler.h => compiler.hpp} (100%) rename compiler/{decl.h => decl.hpp} (100%) rename compiler/{declnode.h => declnode.hpp} (98%) rename compiler/{environ.h => environ.hpp} (91%) rename compiler/{ex.h => ex.hpp} (100%) rename compiler/{exprnode.h => exprnode.hpp} (99%) rename compiler/{label.h => label.hpp} (100%) rename compiler/{node.h => node.hpp} (94%) delete mode 100644 compiler/nodes.h create mode 100644 compiler/nodes.hpp rename compiler/{parser.h => parser.hpp} (97%) rename compiler/{prognode.h => prognode.hpp} (94%) rename compiler/{std.h => std.hpp} (79%) rename compiler/{stmtnode.h => stmtnode.hpp} (98%) rename compiler/{stringmap.h => stringmap.hpp} (100%) rename compiler/{toker.h => toker.hpp} (100%) rename compiler/{type.h => type.hpp} (99%) rename compiler/{var.h => var.hpp} (100%) rename compiler/{varnode.h => varnode.hpp} (97%) diff --git a/compiler/CMakeLists.txt b/compiler/CMakeLists.txt new file mode 100644 index 0000000..bd4c386 --- /dev/null +++ b/compiler/CMakeLists.txt @@ -0,0 +1,98 @@ +project(compiler) + +add_library(${PROJECT_NAME} MODULE + "assem.hpp" + "codegen.hpp" + "compiler.cpp" + "compiler.hpp" + "decl.cpp" + "decl.hpp" + "declnode.cpp" + "declnode.hpp" + "environ.cpp" + "environ.hpp" + "ex.hpp" + "exprnode.cpp" + "exprnode.hpp" + "label.hpp" + "node.cpp" + "node.hpp" + "nodes.hpp" + "parser.cpp" + "parser.hpp" + "prognode.cpp" + "prognode.hpp" + "std.cpp" + "std.hpp" + "stmtnode.cpp" + "stmtnode.hpp" + "stringmap.hpp" + "toker.cpp" + "toker.hpp" + "type.cpp" + "type.hpp" + "var.hpp" + "varnode.cpp" + "varnode.hpp" +) + +target_link_libraries(${PROJECT_NAME} + PRIVATE + config + stdutil +) + +target_include_directories(${PROJECT_NAME} + PUBLIC + ${PROJECT_SOURCE_DIR} +) + +if (WIN32) + target_compile_definitions(${PROJECT_NAME} + PRIVATE + _CRT_SECURE_NO_WARNINGS + # windows.h + WIN32_LEAN_AND_MEAN + NOGPICAPMASKS + NOVIRTUALKEYCODES + NOWINMESSAGES + NOWINSTYLES + NOSYSMETRICS + NOMENUS + NOICONS + NOKEYSTATES + NOSYSCOMMANDS + NORASTEROPS + NOSHOWWINDOW + NOATOM + NOCLIPBOARD + NOCOLOR + NOCTLMGR + NODRAWTEXT + NOGDI + NOKERNEL + NOUSER + NONLS + NOMB + NOMEMMGR + NOMETAFILE + NOMINMAX + NOMSG + NOOPENFILE + NOSCROLL + NOSERVICE + NOSOUND + NOTEXTMETRIC + NOWH + NOWINOFFSETS + NOCOMM + NOKANJI + NOHELP + NOPROFILER + NODEFERWINDOWPOS + NOMCX + NOIME + NOMDI + NOINOUT + ) +endif() diff --git a/compiler/assem.h b/compiler/assem.hpp similarity index 83% rename from compiler/assem.h rename to compiler/assem.hpp index 0e377c8..2a6bbfa 100644 --- a/compiler/assem.h +++ b/compiler/assem.hpp @@ -2,7 +2,7 @@ #ifndef ASSEM_H #define ASSEM_H -#include "..\LinkerLib\linker.h" +#include "..\LinkerLib\linker.hpp" class Assem{ public: diff --git a/compiler/codegen.h b/compiler/codegen.hpp similarity index 98% rename from compiler/codegen.h rename to compiler/codegen.hpp index 674254c..e20cfc1 100644 --- a/compiler/codegen.h +++ b/compiler/codegen.hpp @@ -2,7 +2,7 @@ #ifndef CODEGEN_H #define CODEGEN_H -#include "std.h" +#include "std.hpp" enum{ IR_JUMP,IR_JUMPT,IR_JUMPF,IR_JUMPGE, diff --git a/compiler/compiler.h b/compiler/compiler.hpp similarity index 100% rename from compiler/compiler.h rename to compiler/compiler.hpp diff --git a/compiler/decl.cpp b/compiler/decl.cpp index 5f0e544..0d99c6a 100644 --- a/compiler/decl.cpp +++ b/compiler/decl.cpp @@ -1,7 +1,7 @@ -#include "std.h" -#include "decl.h" -#include "type.h" +#include "std.hpp" +#include "decl.hpp" +#include "type.hpp" Decl::~Decl(){ } diff --git a/compiler/decl.h b/compiler/decl.hpp similarity index 100% rename from compiler/decl.h rename to compiler/decl.hpp diff --git a/compiler/declnode.cpp b/compiler/declnode.cpp index d7c42b8..1952134 100644 --- a/compiler/declnode.cpp +++ b/compiler/declnode.cpp @@ -1,6 +1,6 @@ -#include "std.h" -#include "nodes.h" +#include "std.hpp" +#include "nodes.hpp" ////////////////////////////// // Sequence of declarations // diff --git a/compiler/declnode.h b/compiler/declnode.hpp similarity index 98% rename from compiler/declnode.h rename to compiler/declnode.hpp index e0b3592..3fcaef7 100644 --- a/compiler/declnode.h +++ b/compiler/declnode.hpp @@ -24,8 +24,8 @@ struct DeclSeqNode : public Node{ int size(){ return decls.size(); } }; -#include "exprnode.h" -#include "stmtnode.h" +#include "exprnode.hpp" +#include "stmtnode.hpp" //'kind' shouldn't really be in Parser... //should probably be LocalDeclNode,GlobalDeclNode,ParamDeclNode diff --git a/compiler/environ.cpp b/compiler/environ.cpp index d8bf64a..cc5f74c 100644 --- a/compiler/environ.cpp +++ b/compiler/environ.cpp @@ -1,6 +1,6 @@ -#include "std.h" -#include "environ.h" +#include "std.hpp" +#include "environ.hpp" Environ::Environ( const string &f,Type *r,int l,Environ *gs ) :funcLabel(f),returnType(r),level(l),globals(gs){ diff --git a/compiler/environ.h b/compiler/environ.hpp similarity index 91% rename from compiler/environ.h rename to compiler/environ.hpp index 4ab3d5d..d4100b6 100644 --- a/compiler/environ.h +++ b/compiler/environ.hpp @@ -8,9 +8,9 @@ #ifndef ENVIRON_H #define ENVIRON_H -#include "type.h" -#include "decl.h" -#include "label.h" +#include "type.hpp" +#include "decl.hpp" +#include "label.hpp" class Environ{ public: diff --git a/compiler/ex.h b/compiler/ex.hpp similarity index 100% rename from compiler/ex.h rename to compiler/ex.hpp diff --git a/compiler/exprnode.cpp b/compiler/exprnode.cpp index c29d759..1839d61 100644 --- a/compiler/exprnode.cpp +++ b/compiler/exprnode.cpp @@ -1,6 +1,6 @@ -#include "std.h" -#include "nodes.h" +#include "std.hpp" +#include "nodes.hpp" #include #include diff --git a/compiler/exprnode.h b/compiler/exprnode.hpp similarity index 99% rename from compiler/exprnode.h rename to compiler/exprnode.hpp index 91b3b29..fb6cc01 100644 --- a/compiler/exprnode.h +++ b/compiler/exprnode.hpp @@ -2,7 +2,7 @@ #ifndef EXPRNODE_H #define EXPRNODE_H -#include "node.h" +#include "node.hpp" struct ConstNode; //is constant int,float or string @@ -30,7 +30,7 @@ struct ExprSeqNode : public Node { void castTo(Type *t, Environ *e); }; -#include "varnode.h" +#include "varnode.hpp" struct CastNode : public ExprNode { ExprNode *expr; diff --git a/compiler/label.h b/compiler/label.hpp similarity index 100% rename from compiler/label.h rename to compiler/label.hpp diff --git a/compiler/node.cpp b/compiler/node.cpp index bd56388..694476c 100644 --- a/compiler/node.cpp +++ b/compiler/node.cpp @@ -1,6 +1,6 @@ -#include "std.h" -#include "nodes.h" +#include "std.hpp" +#include "nodes.hpp" set Node::usedfuncs; diff --git a/compiler/node.h b/compiler/node.hpp similarity index 94% rename from compiler/node.h rename to compiler/node.hpp index 8411937..28737dd 100644 --- a/compiler/node.h +++ b/compiler/node.hpp @@ -2,10 +2,10 @@ #ifndef NODE_H #define NODE_H -#include "ex.h" -#include "toker.h" -#include "environ.h" -#include "codegen.h" +#include "ex.hpp" +#include "toker.hpp" +#include "environ.hpp" +#include "codegen.hpp" struct VarNode; struct ConstNode; diff --git a/compiler/nodes.h b/compiler/nodes.h deleted file mode 100644 index c2d75c5..0000000 --- a/compiler/nodes.h +++ /dev/null @@ -1,10 +0,0 @@ - -#ifndef NODES_H -#define NODES_H - -#include "exprnode.h" -#include "stmtnode.h" -#include "declnode.h" -#include "prognode.h" - -#endif diff --git a/compiler/nodes.hpp b/compiler/nodes.hpp new file mode 100644 index 0000000..3e61ff0 --- /dev/null +++ b/compiler/nodes.hpp @@ -0,0 +1,10 @@ + +#ifndef NODES_H +#define NODES_H + +#include "exprnode.hpp" +#include "stmtnode.hpp" +#include "declnode.hpp" +#include "prognode.hpp" + +#endif diff --git a/compiler/parser.cpp b/compiler/parser.cpp index 0179a8e..841a986 100644 --- a/compiler/parser.cpp +++ b/compiler/parser.cpp @@ -1,7 +1,7 @@ -#include "std.h" +#include "std.hpp" #include -#include "parser.h" +#include "parser.hpp" #ifdef DEMO static const int TEXTLIMIT=16384; diff --git a/compiler/parser.h b/compiler/parser.hpp similarity index 97% rename from compiler/parser.h rename to compiler/parser.hpp index e326851..bb83ce6 100644 --- a/compiler/parser.h +++ b/compiler/parser.hpp @@ -8,8 +8,8 @@ #ifndef PARSER_H #define PARSER_H -#include "toker.h" -#include "nodes.h" +#include "toker.hpp" +#include "nodes.hpp" class Parser{ public: diff --git a/compiler/prognode.cpp b/compiler/prognode.cpp index 36fb45f..0250b42 100644 --- a/compiler/prognode.cpp +++ b/compiler/prognode.cpp @@ -1,6 +1,6 @@ -#include "std.h" -#include "nodes.h" +#include "std.hpp" +#include "nodes.hpp" ////////////////// // The program! // diff --git a/compiler/prognode.h b/compiler/prognode.hpp similarity index 94% rename from compiler/prognode.h rename to compiler/prognode.hpp index af1c10b..eea62db 100644 --- a/compiler/prognode.h +++ b/compiler/prognode.hpp @@ -2,8 +2,8 @@ #ifndef PROGNODE_H #define PROGNODE_H -#include "node.h" -#include "codegen.h" +#include "node.hpp" +#include "codegen.hpp" struct UserFunc{ string ident,proc,lib; diff --git a/compiler/std.cpp b/compiler/std.cpp index 7bc955d..d5f561b 100644 --- a/compiler/std.cpp +++ b/compiler/std.cpp @@ -1,2 +1,2 @@ -#include "std.h" +#include "std.hpp" diff --git a/compiler/std.h b/compiler/std.hpp similarity index 79% rename from compiler/std.h rename to compiler/std.hpp index 41ed8ba..65541f5 100644 --- a/compiler/std.h +++ b/compiler/std.hpp @@ -2,8 +2,8 @@ #ifndef STD_COMPILER_H #define STD_COMPILER_H -#include "../config/config.h" -#include "../stdutil/stdutil.h" +#include "config.hpp" +#include "stdutil.hpp" #include #include diff --git a/compiler/stmtnode.cpp b/compiler/stmtnode.cpp index 4d601df..824cd81 100644 --- a/compiler/stmtnode.cpp +++ b/compiler/stmtnode.cpp @@ -1,6 +1,6 @@ -#include "std.h" -#include "nodes.h" +#include "std.hpp" +#include "nodes.hpp" static string fileLabel; static map fileMap; diff --git a/compiler/stmtnode.h b/compiler/stmtnode.hpp similarity index 98% rename from compiler/stmtnode.h rename to compiler/stmtnode.hpp index 543d84a..5c40af9 100644 --- a/compiler/stmtnode.h +++ b/compiler/stmtnode.hpp @@ -2,7 +2,7 @@ #ifndef STMTNODE_H #define STMTNODE_H -#include "node.h" +#include "node.hpp" struct StmtNode : public Node{ int pos; //offset in source stream @@ -26,8 +26,8 @@ struct StmtSeqNode : public Node{ static void reset( const string &file,const string &lab ); }; -#include "exprnode.h" -#include "declnode.h" +#include "exprnode.hpp" +#include "declnode.hpp" struct IncludeNode : public StmtNode{ string file,label; diff --git a/compiler/stringmap.h b/compiler/stringmap.hpp similarity index 100% rename from compiler/stringmap.h rename to compiler/stringmap.hpp diff --git a/compiler/toker.cpp b/compiler/toker.cpp index 34ed4b9..73b39df 100644 --- a/compiler/toker.cpp +++ b/compiler/toker.cpp @@ -1,8 +1,8 @@ -#include "std.h" +#include "std.hpp" #include -#include "toker.h" -#include "ex.h" +#include "toker.hpp" +#include "ex.hpp" int Toker::chars_toked; diff --git a/compiler/toker.h b/compiler/toker.hpp similarity index 100% rename from compiler/toker.h rename to compiler/toker.hpp diff --git a/compiler/type.cpp b/compiler/type.cpp index 3d808a2..d5032fc 100644 --- a/compiler/type.cpp +++ b/compiler/type.cpp @@ -1,6 +1,6 @@ -#include "std.h" -#include "type.h" +#include "std.hpp" +#include "type.hpp" static struct v_type : public Type{ bool canCastTo( Type *t ){ diff --git a/compiler/type.h b/compiler/type.hpp similarity index 99% rename from compiler/type.h rename to compiler/type.hpp index 09d5190..b69fd75 100644 --- a/compiler/type.h +++ b/compiler/type.hpp @@ -2,7 +2,7 @@ #ifndef TYPE_H #define TYPE_H -#include "decl.h" +#include "decl.hpp" struct FuncType; struct ArrayType; diff --git a/compiler/var.h b/compiler/var.hpp similarity index 100% rename from compiler/var.h rename to compiler/var.hpp diff --git a/compiler/varnode.cpp b/compiler/varnode.cpp index eef68e4..beb001b 100644 --- a/compiler/varnode.cpp +++ b/compiler/varnode.cpp @@ -1,6 +1,6 @@ -#include "std.h" -#include "nodes.h" +#include "std.hpp" +#include "nodes.hpp" ////////////////////////////////// // Common get/set for variables // diff --git a/compiler/varnode.h b/compiler/varnode.hpp similarity index 97% rename from compiler/varnode.h rename to compiler/varnode.hpp index 31e53e5..de8eac8 100644 --- a/compiler/varnode.h +++ b/compiler/varnode.hpp @@ -2,7 +2,7 @@ #ifndef VARNODE_H #define VARNODE_H -#include "varnode.h" +#include "varnode.hpp" struct VarNode : public Node{ Type *sem_type; @@ -17,7 +17,7 @@ struct VarNode : public Node{ virtual TNode *translate( Codegen *g )=0; }; -#include "decl.h" +#include "decl.hpp" struct DeclVarNode : public VarNode{ Decl *sem_decl;