Skip to content

Commit

Permalink
do not misuse tags for tool command
Browse files Browse the repository at this point in the history
  • Loading branch information
ggeorgiev committed May 18, 2016
1 parent d3a1ac8 commit d729241
Show file tree
Hide file tree
Showing 10 changed files with 94 additions and 31 deletions.
2 changes: 1 addition & 1 deletion .travis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ cp build/release/dbs dbs || exit 1
./dbs src/main.dbs coverage dbs dbs-test || exit 1
build/profile/dbs-test --gtest_filter=-*.PERFORMANCE_* || exit 1

./dbs src/main.dbs build-script dbs | grep -v \^\# > build/build.sh
./dbs src/main.dbs generate dbs | grep -v \^\# > build/build.sh
cmp build.sh build/build.sh || exit 1
31 changes: 19 additions & 12 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -73,27 +73,33 @@ clang++ -I src/ -O3 -c src/doim/generic/object.cpp \
-isystem boost/include/ -isystem fmt/include/ -isystem src/system/ \
-o build/release/src/doim/generic/object.cpp.o -std=c++14 &
if [ ! -e build/release/src/doim/sys/ ]; then mkdir build/release/src/doim/sys/; fi
echo Compile src/doim/sys/argument.cpp
clang++ -I src/ -O3 -c src/doim/sys/argument.cpp \
echo Compile src/doim/sys/sys_argument.cpp
clang++ -I src/ -O3 -c src/doim/sys/sys_argument.cpp \
-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/ \
-isystem boost/include/ -isystem fmt/include/ -isystem src/system/ \
-o build/release/src/doim/sys/argument.cpp.o -std=c++14 &
echo Compile src/doim/sys/command.cpp
clang++ -I src/ -O3 -c src/doim/sys/command.cpp \
-o build/release/src/doim/sys/sys_argument.cpp.o -std=c++14 &
echo Compile src/doim/sys/sys_command.cpp
clang++ -I src/ -O3 -c src/doim/sys/sys_command.cpp \
-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/ \
-isystem boost/include/ -isystem fmt/include/ -isystem src/system/ \
-o build/release/src/doim/sys/command.cpp.o -std=c++14 &
echo Compile src/doim/sys/executable.cpp
clang++ -I src/ -O3 -c src/doim/sys/executable.cpp \
-o build/release/src/doim/sys/sys_command.cpp.o -std=c++14 &
echo Compile src/doim/sys/sys_executable.cpp
clang++ -I src/ -O3 -c src/doim/sys/sys_executable.cpp \
-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/ \
-isystem boost/include/ -isystem fmt/include/ -isystem src/system/ \
-o build/release/src/doim/sys/executable.cpp.o -std=c++14 &
-o build/release/src/doim/sys/sys_executable.cpp.o -std=c++14 &
if [ ! -e build/release/src/doim/tag/ ]; then mkdir build/release/src/doim/tag/; fi
echo Compile src/doim/tag/tag.cpp
clang++ -I src/ -O3 -c src/doim/tag/tag.cpp \
-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/ \
-isystem boost/include/ -isystem fmt/include/ -isystem src/system/ \
-o build/release/src/doim/tag/tag.cpp.o -std=c++14 &
if [ ! -e build/release/src/doim/tool/ ]; then mkdir build/release/src/doim/tool/; fi
echo Compile src/doim/tool/tool_command.cpp
clang++ -I src/ -O3 -c src/doim/tool/tool_command.cpp \
-isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/ \
-isystem boost/include/ -isystem fmt/include/ -isystem src/system/ \
-o build/release/src/doim/tool/tool_command.cpp.o -std=c++14 &
if [ ! -e build/release/src/dom/ ]; then mkdir build/release/src/dom/; fi
if [ ! -e build/release/src/dom/cxx/ ]; then mkdir build/release/src/dom/cxx/; fi
echo Compile src/dom/cxx/cxx_library.cpp
Expand Down Expand Up @@ -279,10 +285,11 @@ clang++ -L boost/lib/ -L fmt/lib/ -L rocksdb/lib/ -L src/system/ \
build/release/src/doim/fs/fs_directory.cpp.o \
build/release/src/doim/fs/fs_file.cpp.o \
build/release/src/doim/generic/object.cpp.o \
build/release/src/doim/sys/argument.cpp.o \
build/release/src/doim/sys/command.cpp.o \
build/release/src/doim/sys/executable.cpp.o \
build/release/src/doim/sys/sys_argument.cpp.o \
build/release/src/doim/sys/sys_command.cpp.o \
build/release/src/doim/sys/sys_executable.cpp.o \
build/release/src/doim/tag/tag.cpp.o \
build/release/src/doim/tool/tool_command.cpp.o \
build/release/src/dom/cxx/cxx_library.cpp.o \
build/release/src/dom/cxx/cxx_program.cpp.o \
build/release/src/dom/manager.cpp.o \
Expand Down
2 changes: 1 addition & 1 deletion self-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ build/debug/dbs-test --gtest_filter=-*.PERFORMANCE_* || exit 1
cmp --silent dbs build/debug/dbs || cp dbs dbs.`date +%Y-%m-%dT%H-%M-%S`
cp build/debug/dbs dbs

./dbs src/main.dbs build-script dbs | grep -v \^\# > build/build.sh
./dbs src/main.dbs generate dbs | grep -v \^\# > build/build.sh

cmp --silent build.sh build/build.sh || cp build.sh build.sh.`date +%Y-%m-%dT%H-%M-%S`
cp build/build.sh build.sh
Expand Down
2 changes: 2 additions & 0 deletions src/doim/doim.dbs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ cxx_library doim
doim/sys/sys_command.h
doim/sys/sys_executable.h
doim/tag/tag.h
doim/tool/tool_command.h
doim/generic/location.hpp
doim/generic/object.h
doim/element.hpp
Expand Down Expand Up @@ -54,6 +55,7 @@ cxx_library doim
sys/sys_command.cpp
sys/sys_executable.cpp
tag/tag.cpp
tool/tool_command.cpp
;
;

Expand Down
5 changes: 0 additions & 5 deletions src/doim/tag/tag.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,6 @@

namespace doim
{
TagSPtr gBuildTag = Tag::global("build", gBuildTag);
TagSPtr gBuildScriptTag = Tag::global("build-script", gBuildScriptTag);
TagSPtr gCoverageTag = Tag::global("coverage", gCoverageTag);
TagSPtr gIwyuTag = Tag::global("iwyu", gIwyuTag);

TagSPtr gTaskTag = Tag::global("task", gTaskTag);

TagSPtr gCrcTag = Tag::global("crc", gCrcTag);
Expand Down
5 changes: 0 additions & 5 deletions src/doim/tag/tag.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,6 @@ class Tag : public Element<Tag, string>
}
};

extern TagSPtr gBuildTag;
extern TagSPtr gBuildScriptTag;
extern TagSPtr gCoverageTag;
extern TagSPtr gIwyuTag;

extern TagSPtr gTaskTag;

extern TagSPtr gCrcTag;
Expand Down
14 changes: 14 additions & 0 deletions src/doim/tool/tool_command.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Copyright © 2016 George Georgiev. All rights reserved.
//

#include "doim/tool/tool_command.h"

namespace doim
{
ToolCommandSPtr gBuildToolCommand = ToolCommand::global("build", gBuildToolCommand);
ToolCommandSPtr gGenerateToolCommand =
ToolCommand::global("generate", gGenerateToolCommand);
ToolCommandSPtr gCoverageToolCommand =
ToolCommand::global("coverage", gCoverageToolCommand);
ToolCommandSPtr gIwyuToolCommand = ToolCommand::global("iwyu", gIwyuToolCommand);
}
35 changes: 35 additions & 0 deletions src/doim/tool/tool_command.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Copyright © 2016 George Georgiev. All rights reserved.
//

#pragma once

#include "doim/element.hpp"
#include "doim/set.hpp"
#include <memory>
#include <str>
#include <tuple>

namespace doim
{
class ToolCommand;
typedef shared_ptr<ToolCommand> ToolCommandSPtr;

class ToolCommand : public Element<ToolCommand, string>
{
public:
ToolCommand(const string& name)
: Element(name)
{
}

const string& name() const
{
return std::get<0>(mArgs);
}
};

extern ToolCommandSPtr gBuildToolCommand;
extern ToolCommandSPtr gGenerateToolCommand;
extern ToolCommandSPtr gCoverageToolCommand;
extern ToolCommandSPtr gIwyuToolCommand;
}
13 changes: 6 additions & 7 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@
#include "doim/fs/fs_directory.h"
#include "doim/fs/fs_file.h"
#include "doim/generic/object.h"

#include "doim/sys/sys_executable.h"
#include "doim/tag/tag.h"
#include "doim/tool/tool_command.h"
#include "db/database.h"
#include "err/err.h"
#include "err/err_assert.h"
Expand Down Expand Up @@ -106,7 +105,7 @@ int main(int argc, char* argv[])
const auto& engine =
std::make_shared<engine::CxxEngine>(clangFormatTool, compiler, iwyuTool);

const auto& verb = doim::Tag::make(arg[2])->find();
const auto& verb = doim::ToolCommand::make(arg[2])->find();

if (verb == nullptr)
{
Expand All @@ -126,21 +125,21 @@ int main(int argc, char* argv[])
if (program == nullptr)
continue;

if (verb == doim::gBuildTag)
if (verb == doim::gBuildToolCommand)
{
tasks.push_back(
engine->build(engine::CxxEngine::EBuildFor::kDebug, cwd, program));
}
else if (verb == doim::gCoverageTag)
else if (verb == doim::gCoverageToolCommand)
{
tasks.push_back(
engine->build(engine::CxxEngine::EBuildFor::kProfile, cwd, program));
}
else if (verb == doim::gIwyuTag)
else if (verb == doim::gIwyuToolCommand)
{
tasks.push_back(engine->iwyu(cwd, program));
}
else if (verb == doim::gBuildScriptTag)
else if (verb == doim::gGenerateToolCommand)
{
std::cout << engine->buildScript(engine::CxxEngine::EBuildFor::kRelease,
cwd,
Expand Down
16 changes: 16 additions & 0 deletions xcode/dbs-build.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@
5E56926F1C726458000A233C /* cxx_file.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E56926D1C726458000A233C /* cxx_file.h */; };
5E5692711C727076000A233C /* element.hpp in Headers */ = {isa = PBXBuildFile; fileRef = 5E5692701C727076000A233C /* element.hpp */; };
5E83145F1CDC5A7F00344DB5 /* framework.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E83145E1CDC5A7F00344DB5 /* framework.h */; };
5E874FAA1CEC175F00C7C123 /* tool_command.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5E874FA81CEC175F00C7C123 /* tool_command.cpp */; };
5E874FAB1CEC175F00C7C123 /* tool_command.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E874FA91CEC175F00C7C123 /* tool_command.h */; };
5EABCAB71CE054E000E79FFD /* fs_binary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EABCAB51CE054E000E79FFD /* fs_binary.cpp */; };
5EABCAB81CE054E000E79FFD /* fs_binary.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EABCAB61CE054E000E79FFD /* fs_binary.h */; };
5EABCABB1CE057FD00E79FFD /* sys_executable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5EABCAB91CE057FD00E79FFD /* sys_executable.cpp */; };
Expand Down Expand Up @@ -336,6 +338,8 @@
5E5692701C727076000A233C /* element.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = element.hpp; sourceTree = "<group>"; };
5E6DCC6F1CEADF5B00001C9C /* .travis.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = .travis.sh; path = ../.travis.sh; sourceTree = "<group>"; };
5E83145E1CDC5A7F00344DB5 /* framework.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = framework.h; sourceTree = "<group>"; };
5E874FA81CEC175F00C7C123 /* tool_command.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tool_command.cpp; sourceTree = "<group>"; };
5E874FA91CEC175F00C7C123 /* tool_command.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tool_command.h; sourceTree = "<group>"; };
5EABCAB51CE054E000E79FFD /* fs_binary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = fs_binary.cpp; sourceTree = "<group>"; };
5EABCAB61CE054E000E79FFD /* fs_binary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fs_binary.h; sourceTree = "<group>"; };
5EABCAB91CE057FD00E79FFD /* sys_executable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sys_executable.cpp; sourceTree = "<group>"; };
Expand Down Expand Up @@ -473,6 +477,7 @@
5E10B3341C70F272009C73E4 /* generic */,
5E10B33E1C70F272009C73E4 /* sys */,
5E290B261CB9EC3900F10210 /* tag */,
5E874FA31CEC173D00C7C123 /* tool */,
5E10B3301C70F272009C73E4 /* doim.dbs */,
5E42053E1C79097C0090FA05 /* element_manager.hpp */,
5E5692701C727076000A233C /* element.hpp */,
Expand Down Expand Up @@ -970,6 +975,15 @@
name = scripts;
sourceTree = "<group>";
};
5E874FA31CEC173D00C7C123 /* tool */ = {
isa = PBXGroup;
children = (
5E874FA81CEC175F00C7C123 /* tool_command.cpp */,
5E874FA91CEC175F00C7C123 /* tool_command.h */,
);
path = tool;
sourceTree = "<group>";
};
5EC659AD1CCD9EB600E99E04 /* dp */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1067,6 +1081,7 @@
5E4113CE1CCD56B300489DA7 /* cxx_program.h in Headers */,
5E10B3D71C70F272009C73E4 /* err_assert.h in Headers */,
5E10B3C51C70F272009C73E4 /* cxx_files_mixin.hpp in Headers */,
5E874FAB1CEC175F00C7C123 /* tool_command.h in Headers */,
5E10B3CD1C70F272009C73E4 /* manager.h in Headers */,
5E290B311CB9F4FC00F10210 /* verbose.h in Headers */,
5E10B3C71C70F272009C73E4 /* cxx_private_headers_mixin.hpp in Headers */,
Expand Down Expand Up @@ -1256,6 +1271,7 @@
5E4205361C78DF5A0090FA05 /* sys_command.cpp in Sources */,
5E10B4011C70F272009C73E4 /* execute_command_task.cpp in Sources */,
5E10B3BF1C70F272009C73E4 /* manager-utest.cpp in Sources */,
5E874FAA1CEC175F00C7C123 /* tool_command.cpp in Sources */,
5E10B3E41C70F272009C73E4 /* log.cpp in Sources */,
5E10B3CA1C70F272009C73E4 /* cxx_library-utest.cpp in Sources */,
);
Expand Down

0 comments on commit d729241

Please sign in to comment.