diff --git a/Acceptor.cc b/Acceptor.cc new file mode 100644 index 0000000..3dc7a85 --- /dev/null +++ b/Acceptor.cc @@ -0,0 +1,72 @@ +#include +#include +#include +#include + +#include "Acceptor.h" +#include "Logger.h" +#include "InetAddress.h" + +static int createNonblocking() +{ + int sockfd = ::socket(AF_INET, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, IPPROTO_TCP); + if (sockfd < 0) + { + LOG_FATAL("%s:%s:%d listen socket create err:%d\n", __FILE__, __FUNCTION__, __LINE__, errno); + } + return sockfd; +} + +Acceptor::Acceptor(EventLoop *loop, const InetAddress &listenAddr, bool reuseport) + : loop_(loop) + , acceptSocket_(createNonblocking()) + , acceptChannel_(loop, acceptSocket_.fd()) + , listenning_(false) +{ + acceptSocket_.setReuseAddr(true); + acceptSocket_.setReusePort(true); + acceptSocket_.bindAddress(listenAddr); + + // TcpServer::start() => Acceptor.listen() 如果有新用户连接 要执行一个回调(accept => connfd => 打包成Channel => 唤醒subloop) + // baseloop监听到有事件发生 => acceptChannel_(listenfd) => 执行该回调函数 + acceptChannel_.setReadCallback(std::bind(&Acceptor::handleRead, this)); +} + +Acceptor::~Acceptor() +{ + acceptChannel_.disableAll(); // 把从Poller中感兴趣的事件删除掉 + acceptChannel_.remove(); // 调用EventLoop->removeChannel => Poller->removeChannel 把Poller的ChannelMap对应的部分删除 +} + +void Acceptor::listen() +{ + listenning_ = true; + acceptSocket_.listen(); // listen + acceptChannel_.enableReading(); // acceptChannel_注册至Poller !重要 +} + +// listenfd有事件发生了,就是有新用户连接了 +void Acceptor::handleRead() +{ + InetAddress peerAddr; + int connfd = acceptSocket_.accept(&peerAddr); + if (connfd >= 0) + { + if (NewConnectionCallback_) + { + NewConnectionCallback_(connfd, peerAddr); // 轮询找到subLoop 唤醒并分发当前的新客户端的Channel + } + else + { + ::close(connfd); + } + } + else + { + LOG_ERROR("%s:%s:%d accept err:%d\n", __FILE__, __FUNCTION__, __LINE__, errno); + if (errno == EMFILE) + { + LOG_ERROR("%s:%s:%d sockfd reached limit\n", __FILE__, __FUNCTION__, __LINE__); + } + } +} \ No newline at end of file diff --git a/Acceptor.h b/Acceptor.h new file mode 100644 index 0000000..c88d1cc --- /dev/null +++ b/Acceptor.h @@ -0,0 +1,32 @@ +#pragma once + +#include + +#include "noncopyable.h" +#include "Socket.h" +#include "Channel.h" + +class EventLoop; +class InetAddress; + +class Acceptor : noncopyable +{ +public: + using NewConnectionCallback = std::function; + + Acceptor(EventLoop *loop, const InetAddress &listenAddr, bool reuseport); + ~Acceptor(); + + void setNewConnectionCallback(const NewConnectionCallback &cb) { NewConnectionCallback_ = cb; } + + bool listenning() const { return listenning_; } + void listen(); +private: + void handleRead(); + + EventLoop *loop_; // Acceptor用的就是用户定义的那个baseLoop 也称作mainLoop + Socket acceptSocket_; + Channel acceptChannel_; + NewConnectionCallback NewConnectionCallback_; + bool listenning_; +}; \ No newline at end of file diff --git a/Buffer.cc b/Buffer.cc new file mode 100644 index 0000000..145f7e1 --- /dev/null +++ b/Buffer.cc @@ -0,0 +1,70 @@ +#include +#include +#include + +#include "Buffer.h" + +/** + * 从fd上读取数据 Poller工作在LT模式 + * Buffer缓冲区是有大小的! 但是从fd上读取数据的时候 却不知道tcp数据的最终大小 + * + * @description: 从socket读到缓冲区的方法是使用readv先读至buffer_, + * Buffer_空间如果不够会读入到栈上65536个字节大小的空间,然后以append的 + * 方式追加入buffer_。既考虑了避免系统调用带来开销,又不影响数据的接收。 + **/ +ssize_t Buffer::readFd(int fd, int *saveErrno) +{ + // 栈额外空间,用于从套接字往出读时,当buffer_暂时不够用时暂存数据,待buffer_重新分配足够空间后,在把数据交换给buffer_。 + char extrabuf[65536] = {0}; // 栈上内存空间 65536/1024 = 64KB + + /* + struct iovec { + ptr_t iov_base; // iov_base指向的缓冲区存放的是readv所接收的数据或是writev将要发送的数据 + size_t iov_len; // iov_len在各种情况下分别确定了接收的最大长度以及实际写入的长度 + }; + */ + + // 使用iovec分配两个连续的缓冲区 + struct iovec vec[2]; + const size_t writable = writableBytes(); // 这是Buffer底层缓冲区剩余的可写空间大小 不一定能完全存储从fd读出的数据 + + // 第一块缓冲区,指向可写空间 + vec[0].iov_base = begin() + writerIndex_; + vec[0].iov_len = writable; + // 第二块缓冲区,指向栈空间 + vec[1].iov_base = extrabuf; + vec[1].iov_len = sizeof extrabuf; + + // when there is enough space in this buffer, don't read into extrabuf. + // when extrabuf is used, we read 128k-1 bytes at most. + // 这里之所以说最多128k-1字节,是因为若writable为64k-1,那么需要两个缓冲区 第一个64k-1 第二个64k 所以做多128k-1 + // 如果第一个缓冲区>=64k 那就只采用一个缓冲区 而不使用栈空间extrabuf[65536]的内容 + const int iovcnt = (writable < sizeof extrabuf) ? 2 : 1; + const ssize_t n = ::readv(fd, vec, iovcnt); + + if (n < 0) + { + *saveErrno = errno; + } + else if (n <= writable) // Buffer的可写缓冲区已经够存储读出来的数据了 + { + writerIndex_ += n; + } + else // extrabuf里面也写入了n-writable长度的数据 + { + writerIndex_ = buffer_.size(); + append(extrabuf, n - writable); // 对buffer_扩容 并将extrabuf存储的另一部分数据追加至buffer_ + } +} + +// inputBuffer_.readFd表示将对端数据读到inputBuffer_中,移动writerIndex_指针 +// outputBuffer_.writeFd标示将数据写入到outputBuffer_中,从readerIndex_开始,可以写readableBytes()个字节 +ssize_t Buffer::writeFd(int fd, int *saveErrno) +{ + ssize_t n = ::write(fd, peek(), readableBytes()); + if (n < 0) + { + *saveErrno = errno; + } + return n; +} \ No newline at end of file diff --git a/Buffer.h b/Buffer.h new file mode 100644 index 0000000..3b3030d --- /dev/null +++ b/Buffer.h @@ -0,0 +1,106 @@ +#pragma once + +#include +#include +#include +#include + +// 网络库底层的缓冲区类型定义 +class Buffer +{ +public: + static const size_t kCheapPrepend = 8; + static const size_t kInitialSize = 1024; + + explicit Buffer(size_t initalSize = kInitialSize) + : buffer_(kCheapPrepend + initalSize) + , readerIndex_(kCheapPrepend) + , writerIndex_(kCheapPrepend) + { + } + + size_t readableBytes() const { return writerIndex_ - readerIndex_; } + size_t writableBytes() const { return buffer_.size() - writerIndex_; } + size_t prependableBytes() const { return readerIndex_; } + + // 返回缓冲区中可读数据的起始地址 + const char *peek() const { return begin() + readerIndex_; } + void retrieve(size_t len) + { + if (len < readableBytes()) + { + readerIndex_ += len; // 说明应用只读取了可读缓冲区数据的一部分,就是len长度 还剩下readerIndex+=len到writerIndex_的数据未读 + } + else // len == readableBytes() + { + retrieveAll(); + } + } + void retrieveAll() + { + readerIndex_ = kCheapPrepend; + writerIndex_ = kCheapPrepend; + } + + // 把onMessage函数上报的Buffer数据 转成string类型的数据返回 + std::string retrieveAllAsString() { return retrieveAsString(readableBytes()); } + std::string retrieveAsString(size_t len) + { + std::string result(peek(), len); + retrieve(len); // 上面一句把缓冲区中可读的数据已经读取出来 这里肯定要对缓冲区进行复位操作 + return result; + } + + // buffer_.size - writerIndex_ + void ensureWritableBytes(size_t len) + { + if (writableBytes() < len) + { + makeSpace(len); // 扩容 + } + } + + // 把[data, data+len]内存上的数据添加到writable缓冲区当中 + void append(const char *data, size_t len) + { + ensureWritableBytes(len); + std::copy(data, data+len, beginWrite()); + writerIndex_ += len; + } + char *beginWrite() { return begin() + writerIndex_; } + const char *beginWrite() const { return begin() + writerIndex_; } + + // 从fd上读取数据 + ssize_t readFd(int fd, int *saveErrno); + // 通过fd发送数据 + ssize_t writeFd(int fd, int *saveErrno); + +private: + // vector底层数组首元素的地址 也就是数组的起始地址 + char *begin() { return &*buffer_.begin(); } + const char *begin() const { return &*buffer_.begin(); } + + void makeSpace(size_t len) + { + /** + * | kCheapPrepend |xxx|reader | writer | // xxx标示reader中已读的部分 + * | kCheapPrepend | len | + **/ + if (writableBytes() + prependableBytes() < len + kCheapPrepend) // 也就是说 len > xxx + writer的部分 + { + buffer_.resize(writerIndex_ + len); + } + else // 这里说明 len <= xxx + writer 把reader搬到从xxx开始 使得xxx后面是一段连续空间 + { + size_t readable = readableBytes(); // readable = reader的长度 + std::copy(begin()+readerIndex_, begin()+writerIndex_, // 把这一部分数据拷贝到begin+kCheapPrepend起始处 + begin()+kCheapPrepend); + readerIndex_ = kCheapPrepend; + writerIndex_ = readerIndex_+readable; + } + } + + std::vector buffer_; + size_t readerIndex_; + size_t writerIndex_; +}; \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..9248ec7 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required(VERSION 2.5) +project(mymuduo) + +# mymuduo最终编译成so动态库 设置动态库的路径 放置项目根目录的lib文件夹下面 +set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) + +# 设置调试信息 以及启动C++11语言标准 +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11") + +# 定义参与编译的源代码文件 +aux_source_directory(. SRC_LIST) + +# 编译动态库 +add_library(mymuduo SHARED ${SRC_LIST}) \ No newline at end of file diff --git a/Callbacks.h b/Callbacks.h new file mode 100644 index 0000000..0306254 --- /dev/null +++ b/Callbacks.h @@ -0,0 +1,18 @@ +#pragma once + +#include +#include + +class Buffer; +class TcpConnection; +class Timestamp; + +using TcpConnectionPtr = std::shared_ptr; +using ConnectionCallback = std::function; +using CloseCallback = std::function; +using WriteCompleteCallback = std::function; +using HighWaterMarkCallback = std::function; + +using MessageCallback = std::function; \ No newline at end of file diff --git a/Channel.cc b/Channel.cc new file mode 100644 index 0000000..08ff156 --- /dev/null +++ b/Channel.cc @@ -0,0 +1,101 @@ +#include + +#include "Channel.h" +#include "EventLoop.h" +#include "Logger.h" + +const int Channel::kNoneEvent = 0; +const int Channel::kReadEvent = EPOLLIN | EPOLLPRI; +const int Channel::kWriteEvent = EPOLLOUT; + +// EventLoop: ChannelList Poller +Channel::Channel(EventLoop *loop, int fd) + : loop_(loop) + , fd_(fd) + , events_(0) + , revents_(0) + , index_(-1) + , tied_(false) +{ +} + +Channel::~Channel() {} + +// channel的tie方法什么时候调用过? TcpConnection => channel +/** + * TcpConnection中注册了Chnanel对应的回调函数,传入的回调函数均为TcpConnection + * 对象的成员方法,因此可以说明一点就是:Channel的结束一定早于TcpConnection对象! + * 此处用tie去解决TcoConnection和Channel的生命周期时长问题,从而保证了Channel对 + * 象能够在TcpConnection销毁前销毁。 + **/ +void Channel::tie(const std::shared_ptr &obj) +{ + tie_ = obj; + tied_ = true; +} + +/** + * 当改变channel所表示的fd的events事件后,update负责再poller里面更改fd相应的事件epoll_ctl + **/ +void Channel::update() +{ + // 通过channel所属的eventloop,调用poller的相应方法,注册fd的events事件 + loop_->updateChannel(this); +} + +// 在channel所属的EventLoop中把当前的channel删除掉 +void Channel::remove() +{ + loop_->removeChannel(this); +} + +void Channel::handleEvent(Timestamp receiveTime) +{ + if (tied_) + { + std::shared_ptr guard = tie_.lock(); + if (guard) + { + handleEventWithGuard(receiveTime); + } + // 如果提升失败了 就不做任何处理 说明Channel的TcpConnection对象已经不存在了 + } + else + { + handleEventWithGuard(receiveTime); + } +} + +void Channel::handleEventWithGuard(Timestamp receiveTime) +{ + LOG_INFO("channel handleEvent revents:%d\n", revents_); + // 关闭 + if ((revents_ & EPOLLHUP) && !(revents_ & EPOLLIN)) // 当TcpConnection对应Channel 通过shutdown 关闭写端 epoll触发EPOLLHUP + { + if (closeCallback_) + { + closeCallback_(); + } + } + // 错误 + if (revents_ & EPOLLERR) + { + errorCallback_(); + } + // 读 + if (revents_ & (EPOLLIN | EPOLLPRI)) + { + if (readCallback_) + { + readCallback_(receiveTime); + } + } + // 写 + if (revents_ & EPOLLOUT) + { + if (writeCallback_) + { + writeCallback_(); + } + } +} \ No newline at end of file diff --git a/Channel.h b/Channel.h new file mode 100644 index 0000000..a105e30 --- /dev/null +++ b/Channel.h @@ -0,0 +1,81 @@ +#pragma once + +#include +#include + +#include "noncopyable.h" +#include "Timestamp.h" + +class EventLoop; + +/** + * 理清楚 EventLoop、Channel、Poller之间的关系 Reactor模型上对应多路事件分发器 + * Channel理解为通道 封装了sockfd和其感兴趣的event 如EPOLLIN、EPOLLOUT事件 还绑定了poller返回的具体事件 + **/ +class Channel : noncopyable +{ +public: + using EventCallback = std::function; // muduo仍使用typedef + using ReadEventCallback = std::function; + + Channel(EventLoop *loop, int fd); + ~Channel(); + + // fd得到Poller通知以后 处理事件 + void handleEvent(Timestamp receiveTime); + + // 设置回调函数对象 + void setReadCallback(ReadEventCallback cb) { readCallback_ = std::move(cb); } + void setWriteCallback(EventCallback cb) { writeCallback_ = std::move(cb); } + void setCloseCallback(EventCallback cb) { closeCallback_ = std::move(cb); } + void setErrorCallback(EventCallback cb) { errorCallback_ = std::move(cb); } + + // 防止当channel被手动remove掉 channel还在执行回调操作 + void tie(const std::shared_ptr &); + + int fd() const { return fd_; } + int events() const { return events_; } + void set_revents(int revt) { revents_ = revt; } + + // 设置fd相应的事件状态 相当于epoll_ctl add delete + void enableReading() { events_ |= kReadEvent; update(); } + void disableReading() { events_ &= ~kReadEvent; update(); } + void enableWriting() { events_ |= kWriteEvent; update(); } + void disableWriting() { events_ &= ~kWriteEvent; update(); } + void disableAll() { events_ = kNoneEvent; update(); } + + // 返回fd当前的事件状态 + bool isNoneEvent() const { return events_ == kNoneEvent; } + bool isWriting() const { return events_ & kWriteEvent; } + bool isReading() const { return events_ & kReadEvent; } + + int index() { return index_; } + void set_index(int idx) { index_ = idx; } + + // one loop per thread + EventLoop *ownerLoop() { return loop_; } + void remove(); +private: + + void update(); + void handleEventWithGuard(Timestamp receiveTime); + + static const int kNoneEvent; + static const int kReadEvent; + static const int kWriteEvent; + + EventLoop *loop_; // 事件循环 + const int fd_; // fd,Poller监听的对象 + int events_; // 注册fd感兴趣的事件 + int revents_; // Poller返回的具体发生的事件 + int index_; + + std::weak_ptr tie_; + bool tied_; + + // 因为channel通道里可获知fd最终发生的具体的事件events,所以它负责调用具体事件的回调操作 + ReadEventCallback readCallback_; + EventCallback writeCallback_; + EventCallback closeCallback_; + EventCallback errorCallback_; +}; \ No newline at end of file diff --git a/CurrentThread.cc b/CurrentThread.cc new file mode 100644 index 0000000..e28ed74 --- /dev/null +++ b/CurrentThread.cc @@ -0,0 +1,14 @@ +#include "CurrentThread.h" + +namespace CurrentThread +{ + __thread int t_cachedTid = 0; + + void cacheTid() + { + if (t_cachedTid == 0) + { + t_cachedTid = static_cast(::syscall(SYS_gettid)); + } + } +} \ No newline at end of file diff --git a/CurrentThread.h b/CurrentThread.h new file mode 100644 index 0000000..5742447 --- /dev/null +++ b/CurrentThread.h @@ -0,0 +1,20 @@ +#pragma once + +#include +#include + +namespace CurrentThread +{ + extern __thread int t_cachedTid; // 保存tid缓存 因为系统调用非常耗时 拿到tid后将其保存 + + void cacheTid(); + + inline int tid() // 内联函数只在当前文件中起作用 + { + if (__builtin_expect(t_cachedTid == 0, 0)) // __builtin_expect 是一种底层优化 此语句意思是如果还未获取tid 进入if 通过cacheTid()系统调用获取tid + { + cacheTid(); + } + return t_cachedTid; + } +} \ No newline at end of file diff --git a/DefaultPoller.cc b/DefaultPoller.cc new file mode 100644 index 0000000..d15d38c --- /dev/null +++ b/DefaultPoller.cc @@ -0,0 +1,16 @@ +#include + +#include "Poller.h" +#include "EPollPoller.h" + +Poller *Poller::newDefaultPoller(EventLoop *loop) +{ + if (::getenv("MUDUO_USE_POLL")) + { + return nullptr; // 生成poll的实例 + } + else + { + return new EPollPoller(loop); // 生成epoll的实例 + } +} \ No newline at end of file diff --git a/EPollPoller.cc b/EPollPoller.cc new file mode 100644 index 0000000..29f9477 --- /dev/null +++ b/EPollPoller.cc @@ -0,0 +1,147 @@ +#include +#include +#include + +#include "EPollPoller.h" +#include "Logger.h" +#include "Channel.h" + +const int kNew = -1; // 某个channel还没添加至Poller // channel的成员index_初始化为-1 +const int kAdded = 1; // 某个channel已经添加至Poller +const int kDeleted = 2; // 某个channel已经从Poller删除 + +EPollPoller::EPollPoller(EventLoop *loop) + : Poller(loop) + , epollfd_(epoll_create1(EPOLL_CLOEXEC)) + , events_(kInitEventListSize) // vector(16) +{ + if (epollfd_ < 0) + { + LOG_FATAL("epoll_create error:%d \n", errno); + } +} + +EPollPoller::~EPollPoller() +{ + ::close(epollfd_); +} + + +Timestamp EPollPoller::poll(int timeoutMs, ChannelList *activeChannels) +{ + // 由于频繁调用poll 实际上应该用LOG_DEBUG输出日志更为合理 当遇到并发场景 关闭DEBUG日志提升效率 + LOG_INFO("func=%s => fd total count:%lu\n", __FUNCTION__, channels_.size()); + + int numEvents = ::epoll_wait(epollfd_, &*events_.begin(), static_cast(events_.size()), timeoutMs); + int saveErrno = errno; + Timestamp now(Timestamp::now()); + + if (numEvents > 0) + { + LOG_INFO("%d events happend\n", numEvents); // LOG_DEBUG最合理 + fillActiveChannels(numEvents, activeChannels); + if (numEvents == events_.size()) // 扩容操作 + { + events_.resize(events_.size() * 2); + } + } + else if (numEvents == 0) + { + LOG_DEBUG("%s timeout!\n", __FUNCTION__); + } + else + { + if (saveErrno != EINTR) + { + errno = saveErrno; + LOG_ERROR("EPollPoller::poll() error!"); + } + } + return now; +} + +// channel update remove => EventLoop updateChannel removeChannel => Poller updateChannel removeChannel +void EPollPoller::updateChannel(Channel *channel) +{ + const int index = channel->index(); + LOG_INFO("func=%s => fd=%d events=%d index=%d\n", __FUNCTION__, channel->fd(), channel->events(), index); + + if (index == kNew || index == kDeleted) + { + if (index == kNew) + { + int fd = channel->fd(); + channels_[fd] = channel; + } + else // index == kDeleted + { + } + channel->set_index(kAdded); + update(EPOLL_CTL_ADD, channel); + } + else // channel已经在Poller中注册过了 + { + int fd = channel->fd(); + if (channel->isNoneEvent()) + { + update(EPOLL_CTL_DEL, channel); + channel->set_index(kDeleted); + } + else + { + update(EPOLL_CTL_MOD, channel); + } + } +} + +// 从Poller中删除channel +void EPollPoller::removeChannel(Channel *channel) +{ + int fd = channel->fd(); + channels_.erase(fd); + + LOG_INFO("func=%s => fd=%d\n", __FUNCTION__, fd); + + int index = channel->index(); + if (index == kAdded) + { + update(EPOLL_CTL_DEL, channel); + } + channel->set_index(kNew); +} + +// 填写活跃的连接 +void EPollPoller::fillActiveChannels(int numEvents, ChannelList *activeChannels) const +{ + for (int i = 0; i < numEvents; ++i) + { + Channel *channel = static_cast(events_[i].data.ptr); + channel->set_revents(events_[i].events); + activeChannels->push_back(channel); // EventLoop就拿到了它的Poller给它返回的所有发生事件的channel列表了 + } +} + +// 更新channel通道 其实就是调用epoll_ctl add/mod/del +void EPollPoller::update(int operation, Channel *channel) +{ + epoll_event event; + ::memset(&event, 0, sizeof event); + + int fd = channel->fd(); + + event.events = channel->events(); + event.data.ptr = channel; + event.data.fd = fd; + + if (::epoll_ctl(epollfd_, operation, fd, &event) < 0) + { + if (operation == EPOLL_CTL_DEL) + { + LOG_ERROR("epoll_ctl del error:%d\n", errno); + } + else + { + LOG_FATAL("epoll_ctl add/mod error:%d\n", errno); + } + } +} \ No newline at end of file diff --git a/EPollPoller.h b/EPollPoller.h new file mode 100644 index 0000000..f0cbd9c --- /dev/null +++ b/EPollPoller.h @@ -0,0 +1,41 @@ +#pragma once + +#include +#include + +#include "Poller.h" +#include "Timestamp.h" + +/** + * epoll的使用: + * 1. epoll_create + * 2. epoll_ctl (add, mod, del) + * 3. epoll_wait + **/ + +class Channel; + +class EPollPoller : public Poller +{ +public: + EPollPoller(EventLoop *loop); + ~EPollPoller() override; + + // 重写基类Poller的抽象方法 + Timestamp poll(int timeoutMs, ChannelList *activeChannels) override; + void updateChannel(Channel *channel) override; + void removeChannel(Channel *channel) override; + +private: + static const int kInitEventListSize = 16; + + // 填写活跃的连接 + void fillActiveChannels(int numEvents, ChannelList *activeChannels) const; + // 更新channel通道 其实就是调用epoll_ctl + void update(int operation, Channel *channel); + + using EventList = std::vector; // C++中可以省略struct 直接写epoll_event + + int epollfd_; // epoll_create创建返回的fd保存在epollfd_中 + EventList events_; // 用于存放epoll_wait返回的所有发生的事件的文件描述符事件集 +}; \ No newline at end of file diff --git a/EventLoop.cc b/EventLoop.cc new file mode 100644 index 0000000..55fbcf4 --- /dev/null +++ b/EventLoop.cc @@ -0,0 +1,213 @@ +#include +#include +#include +#include +#include + +#include "EventLoop.h" +#include "Logger.h" +#include "Channel.h" +#include "Poller.h" + +// 防止一个线程创建多个EventLoop +__thread EventLoop *t_loopInThisThread = nullptr; + +// 定义默认的Poller IO复用接口的超时时间 +const int kPollTimeMs = 10000; // 10000毫秒 = 10秒钟 + + +/* 创建线程之后主线程和子线程谁先运行是不确定的。 + * 通过一个eventfd在线程之间传递数据的好处是多个线程无需上锁就可以实现同步。 + * eventfd支持的最低内核版本为Linux 2.6.27,在2.6.26及之前的版本也可以使用eventfd,但是flags必须设置为0。 + * 函数原型: + * #include + * int eventfd(unsigned int initval, int flags); + * 参数说明: + * initval,初始化计数器的值。 + * flags, EFD_NONBLOCK,设置socket为非阻塞。 + * EFD_CLOEXEC,执行fork的时候,在父进程中的描述符会自动关闭,子进程中的描述符保留。 + * 场景: + * eventfd可以用于同一个进程之中的线程之间的通信。 + * eventfd还可以用于同亲缘关系的进程之间的通信。 + * eventfd用于不同亲缘关系的进程之间通信的话需要把eventfd放在几个进程共享的共享内存中(没有测试过)。 + */ +// 创建wakeupfd 用来notify唤醒subReactor处理新来的channel +int createEventfd() +{ + int evtfd = ::eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC); + if (evtfd < 0) + { + LOG_FATAL("eventfd error:%d\n", errno); + } + return evtfd; +} + + +EventLoop::EventLoop() + : looping_(false) + , quit_(false) + , callingPendingFunctors_(false) + , threadId_(CurrentThread::tid()) + , poller_(Poller::newDefaultPoller(this)) + , wakeupFd_(createEventfd()) + , wakeupChannel_(new Channel(this, wakeupFd_)) +{ + LOG_DEBUG("EventLoop created %p in thread %d\n", this, threadId_); + if (t_loopInThisThread) + { + LOG_FATAL("Another EventLoop %p exists in this thread %d\n", t_loopInThisThread, threadId_); + } + else + { + t_loopInThisThread = this; + } + + // 设置wakeupfd的事件类型以及发生事件后的回调操作 + wakeupChannel_->setReadCallback(std::bind(&EventLoop::handleRead, this)); + // 每一个EventLoop都将监听wakeupChannel_的EPOLL读事件了 + wakeupChannel_->enableReading(); +} +EventLoop::~EventLoop() +{ + wakeupChannel_->disableAll(); // 给Channel移除所有感兴趣的事件 + wakeupChannel_->remove(); // 把Channel从EventLoop上删除掉 + ::close(wakeupFd_); + t_loopInThisThread = nullptr; +} + +// 开启事件循环 +void EventLoop::loop() +{ + looping_ = true; + quit_ = false; + + LOG_INFO("EventLoop %p start looping\n", this); + + while(!quit_) + { + activeChannels_.clear(); + pollRetureTime_ = poller_->poll(kPollTimeMs, &activeChannels_); + for(Channel *channel : activeChannels_) + { + // Poller监听哪些channel发生了事件 然后上报给EventLoop 通知channel处理相应的事件 + channel->handleEvent(pollRetureTime_); + } + // 执行当前EventLoop事件循环需要处理的回调操作 + /** + * 对于线程数>=2的情况: + * IO线程 mainLoop(mainReactor)主要工作:accept接收连接 => 将accept返回的fd打包为 => Channel + * 因为mainLoop只做连接操作 已连接用户的打包好的Channel得分发给subLoop(subReactor) + * + * mainLoop事先注册一个回调cb(该回调需要subLoop执行,但是subLoop还在poller_->poll处阻塞) mainLoop通过wakeup将subLoop唤醒 + **/ + doPendingFunctors(); + } + LOG_INFO("EventLoop %p stop looping.\n", this); +} + +// 退出事件循环 +/** + * 1. 如果loop在自己的线程中调用quit成功了,说明当前线程已经执行完毕了loop()函数的poller_->poll并退出 + * 2. 如果不是当前EventLoop所属线程中调用quit退出EventLoop,需要唤醒EventLoop所属线程的epoll_wait + * + * 比如在一个subloop(worker)中调用mainloop(IO)的quit时,需要唤醒mainloop(IO)的poller_->poll,让其执行完loop()函数 + * + * !!!!!!!!!!!!!!! 注意: 正常情况下 mainLoop负责请求连接 将回调写入subLoop中,通过生产者消费者模型即可实现线程安全的队列 + * !!!!!!!!!!!!!!! 但是 muduo 通过wakeup() 采用eventfd创建的wakeupFd_ notify 使得mainLoop和subLoop之间能够进行通信 + **/ +void EventLoop::quit() +{ + quit_ = true; + + if (!isInLoopThread()) + { + wakeup(); + } +} + +// 在当前loop中执行cb +void EventLoop::runInLoop(Functor cb) +{ + if (isInLoopThread()) // 当前EventLoop中执行回调 + { + cb(); + } + else // 在非当前EventLoop线程中执行cb,就需要唤醒EventLoop所在线程执行cb + { + queueInLoop(cb); + } +} + +// 把cb放入队列中 唤醒loop所在的线程 执行cb +void EventLoop::queueInLoop(Functor cb) +{ + { + std::unique_lock lock(mutex_); + pendingFunctors_.emplace_back(cb); + } + + // 唤醒相应的需要执行上面回调操作的loop的线程 + /** + * || callingPendingFunctors的意思是:当前loop正在执行回调中,但是loop的pendingFunctors_中又加入了新的回调 + * 需要通过wakeup写事件,让loop()下一次poller_->poll()不再阻塞(阻塞的话会影响我前一次新加入的回调的执行),然后转而继续执行回调 + **/ + if (!isInLoopThread() || callingPendingFunctors_) + { + wakeup(); // 唤醒loop所在线程 + } +} + +void EventLoop::handleRead() +{ + uint64_t one = 1; + ssize_t n = read(wakeupFd_, &one, sizeof one); + if (n != sizeof one) + { + LOG_ERROR("EventLoop::handleRead() reads %lu bytes instead of 8", n); + } +} + +// 用来唤醒loop所在线程 向wakeupFd_写一个数据 wakeupChannel就发生读事件 当前loop线程就会被唤醒 +void EventLoop::wakeup() +{ + uint64_t one = 1; + ssize_t n = write(wakeupFd_, &one, sizeof one); + if (n != sizeof one) + { + LOG_ERROR("EventLoop::wakeup() writes %lu bytes instead of 8\n", n); + } +} + +// EventLoop的方法 => Poller的方法 +void EventLoop::updateChannel(Channel *channel) +{ + poller_->updateChannel(channel); +} + +void EventLoop::removeChannel(Channel *channel) +{ + poller_->removeChannel(channel); +} + +bool EventLoop::hasChannel(Channel *channel) +{ + return poller_->hasChannel(channel); +} + +void EventLoop::doPendingFunctors() +{ + std::vector functors; + callingPendingFunctors_ = true; + + { + std::unique_lock lock(mutex_); + functors.swap(pendingFunctors_); + } + + for(const Functor &functor : functors) + { + functor(); // 执行当前loop需要执行的回调操作 + } + + callingPendingFunctors_ = false; +} diff --git a/EventLoop.h b/EventLoop.h new file mode 100644 index 0000000..e5f46cf --- /dev/null +++ b/EventLoop.h @@ -0,0 +1,69 @@ +#pragma once + +#include +#include +#include +#include +#include + +#include "noncopyable.h" +#include "Timestamp.h" +#include "CurrentThread.h" + +class Channel; +class Poller; + +// 事件循环类 主要包含了两个大模块 Channel Poller(epoll的抽象) +class EventLoop : noncopyable +{ +public: + using Functor = std::function; + + EventLoop(); + ~EventLoop(); + + // 开启事件循环 + void loop(); + // 退出事件循环 + void quit(); + + Timestamp pollReturnTime() const { pollRetureTime_; } + + // 在当前loop中执行 + void runInLoop(Functor cb); + // 把cb放入队列中 唤醒loop所在的线程 执行cb + void queueInLoop(Functor cb); + + // 用来唤醒loop所在的线程的 + void wakeup(); + + // EventLoop的方法 => Poller的方法 + void updateChannel(Channel *channel); + void removeChannel(Channel *channel); + bool hasChannel(Channel *channel); + + // 判断EventLoop对象是否在自己的线程里 + bool isInLoopThread() const { return threadId_ == CurrentThread::tid(); } // threadId_为EventLoop创建时的线程id CurrentThread::tid()为当前线程id +private: + void handleRead(); // 处理wake up + void doPendingFunctors(); // 执行回调 + + using ChannelList = std::vector; + + std::atomic_bool looping_; // 原子操作 底层通过CAS实现 + std::atomic_bool quit_; // 标识退出loop循环 + + const pid_t threadId_; // 记录当前EventLoop所在的线程id + + Timestamp pollRetureTime_; // Poller返回发生事件的Channels的时间点 + std::unique_ptr poller_; + + int wakeupFd_; // 主要作用:当mainLoop获取一个新用户的Channel,通过轮询算法选择一个subLoop 通过该成员唤醒subLoop处理Channel + std::unique_ptr wakeupChannel_; + + ChannelList activeChannels_; + + std::atomic_bool callingPendingFunctors_; // 标识当前loop是否有需要执行的回调操作 + std::vector pendingFunctors_; // 存储loop需要执行的所有回调操作 + std::mutex mutex_; // 互斥锁 用来保护上面vector容器的线程安全操作 +}; \ No newline at end of file diff --git a/EventLoopThread.cc b/EventLoopThread.cc new file mode 100644 index 0000000..b29cc63 --- /dev/null +++ b/EventLoopThread.cc @@ -0,0 +1,58 @@ +#include "EventLoopThread.h" +#include "EventLoop.h" + +EventLoopThread::EventLoopThread(const ThreadInitCallback &cb, + const std::string &name) + : loop_(nullptr) + , exiting_(false) + , thread_(std::bind(&EventLoopThread::threadFunc, this), name) + , mutex_() + , cond_() + , callback_(cb) +{ +} +EventLoopThread::~EventLoopThread() +{ + exiting_ = true; + if (loop_ != nullptr) + { + loop_->quit(); + thread_.join(); + } +} + +EventLoop *EventLoopThread::startLoop() +{ + thread_.start(); // 启用底层线程Thread类对象thread_中通过start()创建的线程 + + EventLoop *loop = nullptr; + { + std::unique_lock lock(mutex_); + while(loop_ == nullptr) + { + cond_.wait(lock); + } + loop = loop_; + } + return loop; +} + +// 下面这个方法 是在单独的新线程里运行的 +void EventLoopThread::threadFunc() +{ + EventLoop loop; // 创建一个独立的EventLoop对象 和上面的线程是一一对应的 级one loop per thread + + if (callback_) + { + callback_(&loop); + } + + { + std::unique_lock lock(mutex_); + loop_ = &loop; + cond_.notify_one(); + } + loop.loop(); // 执行EventLoop的loop() 开启了底层的Poller的poll() + std::unique_lock lock(mutex_); + loop_ = nullptr; +} \ No newline at end of file diff --git a/EventLoopThread.h b/EventLoopThread.h new file mode 100644 index 0000000..88d3eee --- /dev/null +++ b/EventLoopThread.h @@ -0,0 +1,33 @@ +#pragma once + +#include +#include +#include +#include + +#include "noncopyable.h" +#include "Thread.h" + +class EventLoop; + +class EventLoopThread : noncopyable +{ +public: + using ThreadInitCallback = std::function; + + EventLoopThread(const ThreadInitCallback &cb = ThreadInitCallback(), + const std::string &name = std::string()); + ~EventLoopThread(); + + EventLoop *startLoop(); + +private: + void threadFunc(); + + EventLoop *loop_; + bool exiting_; + Thread thread_; + std::mutex mutex_; // 互斥锁 + std::condition_variable cond_; // 条件变量 + ThreadInitCallback callback_; +}; \ No newline at end of file diff --git a/EventLoopThreadPool.cc b/EventLoopThreadPool.cc new file mode 100644 index 0000000..7f1b856 --- /dev/null +++ b/EventLoopThreadPool.cc @@ -0,0 +1,68 @@ +#include + +#include "EventLoopThreadPool.h" +#include "EventLoopThread.h" + +EventLoopThreadPool::EventLoopThreadPool(EventLoop *baseLoop, const std::string &nameArg) + : baseLoop_(baseLoop) + , name_(nameArg) + , started_(false) + , numThreads_(0) + , next_(0) +{ + +} +EventLoopThreadPool::~EventLoopThreadPool() +{ + // Don't delete loop, it's stack variable +} + +void EventLoopThreadPool::start(const ThreadInitCallback &cb) +{ + started_ = true; + + for(int i = 0; i < numThreads_; ++i) + { + char buf[name_.size() + 32]; + snprintf(buf, sizeof buf, "%s%d", name_.c_str(), i); + EventLoopThread *t = new EventLoopThread(cb, buf); + threads_.push_back(std::unique_ptr(t)); + loops_.push_back(t->startLoop()); // 底层创建线程 绑定一个新的EventLoop 并返回该loop的地址 + } + + // 整个服务端只有一个线程运行baseLoop + if(numThreads_ == 0 && cb) + { + cb(baseLoop_); + } +} + +// 如果工作在多线程中,baseLoop_(mainLoop)会默认以轮询的方式分配Channel给subLoop +EventLoop *EventLoopThreadPool::getNextLoop() +{ + EventLoop *loop = baseLoop_; // 如果只设置一个线程 也就是只有一个mainReactor 无subReactor 那么轮询只有一个线程 getNextLoop()每次都返回当前的baseLoop_ + + if(!loops_.empty()) // 通过轮询获取下一个处理事件的loop + { + loop = loops_[next_]; + ++next_; + if(next_ >= loops_.size()) + { + next_ = 0; + } + } + + return loop; +} + +std::vector EventLoopThreadPool::getAllLoops() +{ + if(loops_.empty()) + { + return std::vector(1, baseLoop_); + } + else + { + return loops_; + } +} \ No newline at end of file diff --git a/EventLoopThreadPool.h b/EventLoopThreadPool.h new file mode 100644 index 0000000..53a34c2 --- /dev/null +++ b/EventLoopThreadPool.h @@ -0,0 +1,41 @@ +#pragma once + +#include +#include +#include +#include + +#include "noncopyable.h" + +class EventLoop; +class EventLoopThread; + +class EventLoopThreadPool : noncopyable +{ +public: + using ThreadInitCallback = std::function; + + EventLoopThreadPool(EventLoop *baseLoop, const std::string &nameArg); + ~EventLoopThreadPool(); + + void setThreadNum(int numThreads) { numThreads_ = numThreads; } + + void start(const ThreadInitCallback &cb = ThreadInitCallback()); + + // 如果工作在多线程中,baseLoop_(mainLoop)会默认以轮询的方式分配Channel给subLoop + EventLoop *getNextLoop(); + + std::vector getAllLoops(); + + bool started() const { return started_; } + const std::string name() const { return name_; } + +private: + EventLoop *baseLoop_; // 用户使用muduo创建的loop 如果线程数为1 那直接使用用户创建的loop 否则创建多EventLoop + std::string name_; + bool started_; + int numThreads_; + int next_; // 轮询的下标 + std::vector> threads_; + std::vector loops_; +}; \ No newline at end of file diff --git a/InetAddress.cc b/InetAddress.cc new file mode 100644 index 0000000..61297f9 --- /dev/null +++ b/InetAddress.cc @@ -0,0 +1,43 @@ +#include +#include + +#include "InetAddress.h" + +InetAddress::InetAddress(uint16_t port, std::string ip) +{ + bzero(&addr_, sizeof addr_); + addr_.sin_family = AF_INET; + addr_.sin_port = htons(port); // 本地字节序转为网络字节序 + addr_.sin_addr.s_addr = inet_addr(ip.c_str()); +} + +std::string InetAddress::toIp() const +{ + // addr_ + char buf[64] = {0}; + ::inet_ntop(AF_INET, &addr_.sin_addr, buf, sizeof buf); + return buf; +} + +std::string InetAddress::toIpPort() const +{ + // ip:port + char buf[64] = {0}; + ::inet_ntop(AF_INET, &addr_.sin_addr, buf, sizeof buf); + size_t end = strlen(buf); + uint16_t port = ntohs(addr_.sin_port); + sprintf(buf + end, ":%u", port); + return buf; +} + +uint16_t InetAddress::toPort() const +{ + return ntohs(addr_.sin_port); +} + +// #include +// int main() +// { +// InetAddress addr(8080); +// std::cout << addr.toIpPort() << std::endl; +// } \ No newline at end of file diff --git a/InetAddress.h b/InetAddress.h new file mode 100644 index 0000000..3703d0a --- /dev/null +++ b/InetAddress.h @@ -0,0 +1,26 @@ +#pragma once + +#include +#include +#include + +// 封装socket地址类型 +class InetAddress +{ +public: + explicit InetAddress(uint16_t port = 0, std::string ip = "127.0.0.1"); + explicit InetAddress(const sockaddr_in &addr) + : addr_(addr) + { + } + + std::string toIp() const; + std::string toIpPort() const; + uint16_t toPort() const; + + const sockaddr_in *getSockAddr() const { return &addr_; } + void setSockAddr(const sockaddr_in &addr) { addr_ = addr; } + +private: + sockaddr_in addr_; +}; \ No newline at end of file diff --git a/Logger.cc b/Logger.cc new file mode 100644 index 0000000..abf2cea --- /dev/null +++ b/Logger.cc @@ -0,0 +1,42 @@ +#include + +#include "Logger.h" +#include "Timestamp.h" + +// 获取日志唯一的实例对象 单例 +Logger &Logger::instance() +{ + static Logger logger; + return logger; +} + +// 设置日志级别 +void Logger::setLogLevel(int level) +{ + logLevel_ = level; +} + +// 写日志 [级别信息] time : msg +void Logger::log(std::string msg) +{ + switch (logLevel_) + { + case INFO: + std::cout << "[INFO]"; + break; + case ERROR: + std::cout << "[ERRIR]"; + break; + case FATAL: + std::cout << "[FATAL]"; + break; + case DEBUG: + std::cout << "[DEBUG]"; + break; + default: + break; + } + + // 打印时间和msg + std::cout << Timestamp::now().toString() << " : " << msg << std::endl; +} \ No newline at end of file diff --git a/Logger.h b/Logger.h new file mode 100644 index 0000000..53f3416 --- /dev/null +++ b/Logger.h @@ -0,0 +1,76 @@ +#pragma once + +#include + +#include "noncopyable.h" + +// LOG_INFO("%s %d", arg1, arg2) +#define LOG_INFO(logmsgFormat, ...) \ + do \ + { \ + Logger &logger = Logger::instance(); \ + logger.setLogLevel(INFO); \ + char buf[1024] = {0}; \ + snprintf(buf, 1024, logmsgFormat, ##__VA_ARGS__); \ + logger.log(buf); \ + } while (0) + +#define LOG_ERROR(logmsgFormat, ...) \ + do \ + { \ + Logger &logger = Logger::instance(); \ + logger.setLogLevel(ERROR); \ + char buf[1024] = {0}; \ + snprintf(buf, 1024, logmsgFormat, ##__VA_ARGS__); \ + logger.log(buf); \ + } while (0) + +#define LOG_FATAL(logmsgFormat, ...) \ + do \ + { \ + Logger &logger = Logger::instance(); \ + logger.setLogLevel(FATAL); \ + char buf[1024] = {0}; \ + snprintf(buf, 1024, logmsgFormat, ##__VA_ARGS__); \ + logger.log(buf); \ + exit(-1); \ + } while (0) + +#ifdef MUDEBUG +#define LOG_DEBUG(logmsgFormat, ...) \ + do \ + { \ + Logger &logger = Logger::instance(); \ + logger.setLogLevel(DEBUG); \ + char buf[1024] = {0}; \ + snprintf(buf, 1024, logmsgFormat, ##__VA_ARGS__); \ + logger.log(buf); \ + } while (0) +#else +#define LOG_DEBUG(logmsgFormat, ...) +#endif + +// 定义日志的级别 INFO ERROR FATAL DEBUG +enum LogLevel +{ + INFO, // 普通信息 + ERROR, // 错误信息 + FATAL, // core dump信息 + DEBUG, // 调试信息 +}; + +// 输出一个日志类 + +class Logger : noncopyable +{ +public: + // 获取日志唯一的实例对象 单例 + static Logger &instance(); + // 设置日志级别 + void setLogLevel(int level); + // 写日志 + void log(std::string msg); + +private: + int logLevel_; +}; \ No newline at end of file diff --git a/Poller.cc b/Poller.cc new file mode 100644 index 0000000..e5e60ef --- /dev/null +++ b/Poller.cc @@ -0,0 +1,13 @@ +#include "Poller.h" +#include "Channel.h" + +Poller::Poller(EventLoop *loop) + : ownerLoop_(loop) +{ +} + +bool Poller::hasChannel(Channel *channel) const +{ + auto it = channels_.find(channel->fd()); + return it != channels_.end() && it->second == channel; +} \ No newline at end of file diff --git a/Poller.h b/Poller.h new file mode 100644 index 0000000..803ef61 --- /dev/null +++ b/Poller.h @@ -0,0 +1,39 @@ +#pragma once + +#include +#include + +#include "noncopyable.h" +#include "Timestamp.h" + +class Channel; +class EventLoop; + +// muduo库中多路事件分发器的核心IO复用模块 +class Poller +{ +public: + using ChannelList = std::vector; + + Poller(EventLoop *loop); + virtual ~Poller() = default; + + // 给所有IO复用保留统一的接口 + virtual Timestamp poll(int timeoutMs, ChannelList *activeChannels) = 0; + virtual void updateChannel(Channel *channel) = 0; + virtual void removeChannel(Channel *channel) = 0; + + // 判断参数channel是否在当前的Poller当中 + bool hasChannel(Channel *channel) const; + + // EventLoop可以通过该接口获取默认的IO复用的具体实现 + static Poller *newDefaultPoller(EventLoop *loop); + +protected: + // map的key:sockfd value:sockfd所属的channel通道类型 + using ChannelMap = std::unordered_map; + ChannelMap channels_; + +private: + EventLoop *ownerLoop_; // 定义Poller所属的事件循环EventLoop +}; \ No newline at end of file diff --git a/Socket.cc b/Socket.cc new file mode 100644 index 0000000..bfd859e --- /dev/null +++ b/Socket.cc @@ -0,0 +1,72 @@ +#include +#include +#include +#include +#include + +#include "Socket.h" +#include "Logger.h" +#include "InetAddress.h" + +Socket::~Socket() +{ + ::close(sockfd_); +} + +void Socket::bindAddress(const InetAddress &localaddr) +{ + if (0 != ::bind(sockfd_, (sockaddr *)localaddr.getSockAddr(), sizeof(sockaddr_in))) + { + LOG_FATAL("bind sockfd:%d fail\n", sockfd_); + } +} + +void Socket::listen() +{ + if (0 != ::listen(sockfd_, 1024)) + { + LOG_FATAL("listen sockfd:%d fail\n", sockfd_); + } +} + +int Socket::accept(InetAddress *peeraddr) +{ + sockaddr_in addr; + socklen_t len; + ::memset(&addr, 0, sizeof addr); + int connfd = ::accept(sockfd_, (sockaddr *)&addr, &len); + if (connfd >= 0) + { + peeraddr->setSockAddr(addr); + } + return connfd; +} + +void Socket::shutdownWrite() +{ + if (::shutdown(sockfd_, SHUT_WR) < 0) + { + LOG_ERROR("shutdownWrite error"); + } +} + +void Socket::setTcpNoDelay(bool on) +{ + int optval = on ? 1 : 0; + ::setsockopt(sockfd_, IPPROTO_TCP, TCP_NODELAY, &optval, sizeof optval); // TCP_NODELAY包含头文件 +} +void Socket::setReuseAddr(bool on) +{ + int optval = on ? 1 : 0; + ::setsockopt(sockfd_, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval); // TCP_NODELAY包含头文件 +} +void Socket::setReusePort(bool on) +{ + int optval = on ? 1 : 0; + ::setsockopt(sockfd_, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof optval); // TCP_NODELAY包含头文件 +} +void Socket::setKeepAlive(bool on) +{ + int optval = on ? 1 : 0; + ::setsockopt(sockfd_, SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof optval); // TCP_NODELAY包含头文件 +} \ No newline at end of file diff --git a/Socket.h b/Socket.h new file mode 100644 index 0000000..958e914 --- /dev/null +++ b/Socket.h @@ -0,0 +1,31 @@ +#pragma once + +#include "noncopyable.h" + +class InetAddress; + +// 封装socket fd +class Socket : noncopyable +{ +public: + explicit Socket(int sockfd) + : sockfd_(sockfd) + { + } + ~Socket(); + + int fd() const { return sockfd_; } + void bindAddress(const InetAddress &localaddr); + void listen(); + int accept(InetAddress *peeraddr); + + void shutdownWrite(); + + void setTcpNoDelay(bool on); + void setReuseAddr(bool on); + void setReusePort(bool on); + void setKeepAlive(bool on); + +private: + const int sockfd_; +}; diff --git a/TcpConnection.cc b/TcpConnection.cc new file mode 100644 index 0000000..18e8da9 --- /dev/null +++ b/TcpConnection.cc @@ -0,0 +1,260 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "TcpConnection.h" +#include "Logger.h" +#include "Socket.h" +#include "Channel.h" +#include "EventLoop.h" + +static EventLoop *CheckLoopNotNull(EventLoop *loop) +{ + if (loop == nullptr) + { + LOG_FATAL("%s:%s:%d mainLoop is null!\n", __FILE__, __FUNCTION__, __LINE__); + } + return loop; +} + +TcpConnection::TcpConnection(EventLoop *loop, + const std::string &nameArg, + int sockfd, + const InetAddress &localAddr, + const InetAddress &peerAddr) + : loop_(CheckLoopNotNull(loop)) + , name_(nameArg) + , state_(kConnecting) + , reading_(true) + , socket_(new Socket(sockfd)) + , channel_(new Channel(loop, sockfd)) + , localAddr_(localAddr) + , peerAddr_(peerAddr) + , highWaterMark_(64*1024*1024) // 64M +{ + // 下面给channel设置相应的回调函数 poller给channel通知感兴趣的事件发生了 channel会回调相应的回调函数 + channel_->setReadCallback( + std::bind(&TcpConnection::handleRead, this, std::placeholders::_1)); + channel_->setWriteCallback( + std::bind(&TcpConnection::handleWrite, this)); + channel_->setCloseCallback( + std::bind(&TcpConnection::handleClose, this)); + channel_->setErrorCallback( + std::bind(&TcpConnection::handleError, this)); + + LOG_INFO("TcpConnection::ctor[%s] at fd=%d\n", name_.c_str(), sockfd); + socket_->setKeepAlive(true); +} + +TcpConnection::~TcpConnection() +{ + LOG_INFO("TcpConnection::dtor[%s] at fd=%d state=%d\n", name_.c_str(), channel_->fd(), (int)state_); +} + +void TcpConnection::send(const std::string &buf) +{ + if (state_ == kConnected) + { + if (loop_->isInLoopThread()) // 这种是对于单个reactor的情况 用户调用conn->send时 loop_即为当前线程 + { + sendInLoop(buf.c_str(), buf.size()); + } + else + { + loop_->runInLoop(std::bind(&TcpConnection::sendInLoop, this, buf.c_str(), buf.size())); + } + } +} + +/** + * 发送数据 应用写的快 而内核发送数据慢 需要把待发送数据写入缓冲区,而且设置了水位回调 + **/ +void TcpConnection::sendInLoop(const void *data, size_t len) +{ + ssize_t nwrote = 0; + size_t remaining = len; + bool faultError = false; + + if (state_ == kDisconnected) // 之前调用过该connection的shutdown 不能再进行发送了 + { + LOG_ERROR("disconnected, give up writing"); + } + + // 表示channel_第一次开始写数据或者缓冲区没有待发送数据 + if (!channel_->isWriting() && outputBuffer_.readableBytes() == 0) + { + nwrote = ::write(channel_->fd(), data, len); + if (nwrote >= 0) + { + remaining = len - nwrote; + if (remaining == 0 && writeCompleteCallback_) + { + // 既然在这里数据全部发送完成,就不用再给channel设置epollout事件了 + loop_->queueInLoop(std::bind(writeCompleteCallback_, shared_from_this())); + } + } + else // nwrote < 0 + { + nwrote = 0; + if (errno != EWOULDBLOCK) // EWOULDBLOCK表示非阻塞情况下没有数据后的正常返回 等同于EAGAIN + { + LOG_ERROR("TcpConnection::sendInLoop"); + if (errno == EPIPE || errno == ECONNRESET) // SIGPIPE RESET + { + faultError = true; + } + } + } + } + /** + * 说明当前这一次write并没有把数据全部发送出去 剩余的数据需要保存到缓冲区当中 + * 然后给channel注册EPOLLOUT事件,Poller发现tcp的发送缓冲区有空间后会通知 + * 相应的sock->channel,调用channel对应注册的writeCallback_回调方法, + * channel的writeCallback_实际上就是TcpConnection设置的handleWrite回调, + * 把发送缓冲区outputBuffer_的内容全部发送完成 + **/ + if (!faultError && remaining > 0) + { + // 目前发送缓冲区剩余的待发送的数据的长度 + size_t oldLen = outputBuffer_.readableBytes(); + if (oldLen + remaining >= highWaterMark_ + && oldLen < highWaterMark_ + && highWaterMarkCallback_) + { + loop_->queueInLoop(std::bind(highWaterMarkCallback_, shared_from_this(), oldLen+remaining)); + } + outputBuffer_.append((char *)data + nwrote, remaining); + if (!channel_->isWriting()) + { + channel_->enableWriting(); // 这里一定要注册channel的写事件 否则poller不会给channel通知epollout + } + } +} + +void TcpConnection::shutdown() +{ + if (state_ == kConnected) + { + setState(kDisconnecting); + loop_->runInLoop(std::bind(&TcpConnection::shutdownInLoop, this)); + } +} + +void TcpConnection::shutdownInLoop() +{ + if (!channel_->isWriting()) // 说明当前outputBuffer_的数据全部向外发送完成 + { + socket_->shutdownWrite(); + } +} + +// 连接建立 +void TcpConnection::connectEstablished() +{ + setState(kConnected); + channel_->tie(shared_from_this()); + channel_->enableReading(); // 向poller注册channel的EPOLLIN读事件 + + // 新连接建立 执行回调 + connectionCallback_(shared_from_this()); +} +// 连接销毁 +void TcpConnection::connectDestroyed() +{ + if (state_ == kConnected) + { + setState(kDisconnected); + channel_->disableAll(); // 把channel的所有感兴趣的事件从poller中删除掉 + connectionCallback_(shared_from_this()); + } + channel_->remove(); // 把channel从poller中删除掉 +} + +// 读是相对服务器而言的 当对端客户端有数据到达 服务器端检测到EPOLLIN 就会触发该fd上的回调 handleRead取读走对端发来的数据 +void TcpConnection::handleRead(Timestamp receiveTime) +{ + int savedErrno = 0; + ssize_t n = inputBuffer_.readFd(channel_->fd(), &savedErrno); + if (n > 0) // 有数据到达 + { + // 已建立连接的用户有可读事件发生了 调用用户传入的回调操作onMessage shared_from_this就是获取了TcpConnection的智能指针 + messageCallback_(shared_from_this(), &inputBuffer_, receiveTime); + } + else if (n == 0) // 客户端断开 + { + handleClose(); + } + else // 出错了 + { + errno = savedErrno; + LOG_ERROR("TcpConnection::handleRead"); + handleError(); + } +} + +void TcpConnection::handleWrite() +{ + if (channel_->isWriting()) + { + int savedErrno = 0; + ssize_t n = outputBuffer_.writeFd(channel_->fd(), &savedErrno); + if (n > 0) + { + outputBuffer_.retrieve(n); + if (outputBuffer_.readableBytes() == 0) + { + channel_->disableWriting(); + if (writeCompleteCallback_) + { + // TcpConnection对象在其所在的subloop中 向pendingFunctors_中加入回调 + loop_->queueInLoop( + std::bind(writeCompleteCallback_, shared_from_this()) + ); + } + if (state_ == kDisconnecting) + { + shutdownInLoop(); // 在当前所属的loop中把TcpConnection删除掉 + } + } + } + else + { + LOG_ERROR("TcpConnection::handleWrite"); + } + } + else + { + LOG_ERROR("TcpConnection fd=%d is down, no more writing", channel_->fd()); + } +} + +void TcpConnection::handleClose() +{ + LOG_INFO("TcpConnection::handleClose fd=%d state=%d\n", channel_->fd(), (int)state_); + setState(kDisconnected); + channel_->disableAll(); + + TcpConnectionPtr connPtr(shared_from_this()); + connectionCallback_(connPtr); // 执行连接关闭的回调 + closeCallback_(connPtr); // 执行关闭连接的回调 执行的是TcpServer::removeConnection回调方法 // must be the last line +} + +void TcpConnection::handleError() +{ + int optval; + socklen_t optlen = sizeof optval; + int err = 0; + if (::getsockopt(channel_->fd(), SOL_SOCKET, SO_ERROR, &optval, &optlen) < 0) + { + err = errno; + } + else + { + err = optval; + } + LOG_ERROR("TcpConnection::handleError name:%s - SO_ERROR:%d\n", name_.c_str(), err); +} \ No newline at end of file diff --git a/TcpConnection.h b/TcpConnection.h new file mode 100644 index 0000000..a653e52 --- /dev/null +++ b/TcpConnection.h @@ -0,0 +1,101 @@ +#pragma once + +#include +#include +#include + +#include "noncopyable.h" +#include "InetAddress.h" +#include "Callbacks.h" +#include "Buffer.h" +#include "Timestamp.h" + +class Channel; +class EventLoop; +class Socket; + +/** + * TcpServer => Acceptor => 有一个新用户连接,通过accept函数拿到connfd + * => TcpConnection设置回调 => 设置到Channel => Poller => Channel回调 + **/ + +class TcpConnection : noncopyable, public std::enable_shared_from_this +{ +public: + TcpConnection(EventLoop *loop, + const std::string &nameArg, + int sockfd, + const InetAddress &localAddr, + const InetAddress &peerAddr); + ~TcpConnection(); + + EventLoop *getLoop() const { return loop_; } + const std::string &name() const { return name_; } + const InetAddress &localAddress() const { return localAddr_; } + const InetAddress &peerAddress() const { return peerAddr_; } + + bool connected() const { return state_ == kConnected; } + + // 发送数据 + void send(const std::string &buf); + // 关闭连接 + void shutdown(); + + void setConnectionCallback(const ConnectionCallback &cb) + { connectionCallback_ = cb; } + void setMessageCallback(const MessageCallback &cb) + { messageCallback_ = cb; } + void setWriteCompleteCallback(const WriteCompleteCallback &cb) + { writeCompleteCallback_ = cb; } + void setCloseCallback(const CloseCallback &cb) + { closeCallback_ = cb; } + void setHighWaterMarkCallback(const HighWaterMarkCallback &cb, size_t highWaterMark) + { highWaterMarkCallback_ = cb; highWaterMark_ = highWaterMark; } + + // 连接建立 + void connectEstablished(); + // 连接销毁 + void connectDestroyed(); + +private: + enum StateE + { + kDisconnected, // 已经断开连接 + kConnecting, // 正在连接 + kConnected, // 已连接 + kDisconnecting // 正在断开连接 + }; + void setState(StateE state) { state_ = state; } + + void handleRead(Timestamp receiveTime); + void handleWrite(); + void handleClose(); + void handleError(); + + void sendInLoop(const void *data, size_t len); + void shutdownInLoop(); + + EventLoop *loop_; // 这里绝对不是baseLoop 因为TcpConnection都是subLoop里面管理的 + const std::string name_; + std::atomic_int state_; + bool reading_; + + // Socket Channel 这里和Acceptor类似 Acceptor => mainloop TcpConnection => subloop + std::unique_ptr socket_; + std::unique_ptr channel_; + + const InetAddress localAddr_; + const InetAddress peerAddr_; + + // 这些回调TcpServer也有 用户通过写入TcpServer注册 TcpServer再将注册的回调传递给TcpConnection TcpConnection再将回调注册到Channel中 + ConnectionCallback connectionCallback_; // 有新连接时的回调 + MessageCallback messageCallback_; // 有读写消息时的回调 + WriteCompleteCallback writeCompleteCallback_; // 消息发送完成以后的回调 + HighWaterMarkCallback highWaterMarkCallback_; + CloseCallback closeCallback_; + size_t highWaterMark_; + + // 数据缓冲区 + Buffer inputBuffer_; // 接收数据的缓冲区 + Buffer outputBuffer_; // 发送数据的缓冲区 用户send向outputBuffer_发 +}; \ No newline at end of file diff --git a/TcpServer.cc b/TcpServer.cc new file mode 100644 index 0000000..9927614 --- /dev/null +++ b/TcpServer.cc @@ -0,0 +1,116 @@ +#include +#include + +#include "TcpServer.h" +#include "Logger.h" +#include "TcpConnection.h" + +static EventLoop *CheckLoopNotNull(EventLoop *loop) +{ + if (loop == nullptr) + { + LOG_FATAL("%s:%s:%d mainLoop is null!\n", __FILE__, __FUNCTION__, __LINE__); + } + return loop; +} + +TcpServer::TcpServer(EventLoop *loop, + const InetAddress &listenAddr, + const std::string &nameArg, + Option option) + : loop_(CheckLoopNotNull(loop)) + , ipPort_(listenAddr.toIpPort()) + , name_(nameArg) + , acceptor_(new Acceptor(loop, listenAddr, option == kReusePort)) + , threadPool_(new EventLoopThreadPool(loop, name_)) + , connectionCallback_() + , messageCallback_() + , nextConnId_(1) +{ + // 当有新用户连接时,Acceptor类中绑定的acceptChannel_会有读事件发生,执行handleRead()调用TcpServer::newConnection回调 + acceptor_->setNewConnectionCallback( + std::bind(&TcpServer::newConnection, this, std::placeholders::_1, std::placeholders::_2)); +} + +TcpServer::~TcpServer() +{ + for(auto &item : connections_) + { + TcpConnectionPtr conn(item.second); + item.second.reset(); // 把原始的智能指针复位 让栈空间的TcpConnectionPtr conn指向该对象 当conn出了其作用域 即可释放智能指针指向的对象 + conn->getLoop()->runInLoop( + std::bind(&TcpConnection::connectDestroyed, conn)); + } +} + +// 设置底层subloop的个数 +void TcpServer::setThreadNum(int numThreads) +{ + threadPool_->setThreadNum(numThreads); +} + +// 开启服务器监听 +void TcpServer::start() +{ + if (started_++ == 0) // 防止一个TcpServer对象被start多次 + { + threadPool_->start(threadInitCallback_); // 启动底层的loop线程池 + loop_->runInLoop(std::bind(&Acceptor::listen, acceptor_.get())); + } +} + +// 有一个新用户连接,acceptor会执行这个回调操作,负责将mainLoop接收到的请求连接(acceptChannel_会有读事件发生)通过回调轮询分发给subLoop去处理 +void TcpServer::newConnection(int sockfd, const InetAddress &peerAddr) +{ + // 轮询算法 选择一个subLoop 来管理connfd对应的channel + EventLoop *ioLoop = threadPool_->getNextLoop(); + char buf[64] = {0}; + snprintf(buf, sizeof buf, "-%s#%d", ipPort_.c_str(), nextConnId_); + ++nextConnId_; // 这里没有设置为原子类是因为其只在mainloop中执行 不涉及线程安全问题 + std::string connName = name_ + buf; + + LOG_INFO("TcpServer::newConnection [%s] - new connection [%s] from %s\n", + name_.c_str(), connName.c_str(), peerAddr.toIpPort().c_str()); + + // 通过sockfd获取其绑定的本机的ip地址和端口信息 + sockaddr_in local; + ::memset(&local, 0, sizeof local); + socklen_t addrlen = sizeof local; + if(::getsockname(sockfd, (sockaddr *)&local, &addrlen) < 0) + { + LOG_ERROR("sockets::getLocalAddr"); + } + + InetAddress localAddr(local); + TcpConnectionPtr conn(new TcpConnection(ioLoop, + connName, + sockfd, + localAddr, + peerAddr)); + connections_[connName] = conn; + // 下面的回调都是用户设置给TcpServer => TcpConnection的,至于Channel绑定的则是TcpConnection设置的四个,handleRead,handleWrite... 这下面的回调用于handlexxx函数中 + conn->setConnectionCallback(connectionCallback_); + conn->setMessageCallback(messageCallback_); + conn->setWriteCompleteCallback(writeCompleteCallback_); + + // 设置了如何关闭连接的回调 + conn->setCloseCallback( + std::bind(&TcpServer::removeConnection, this, std::placeholders::_1)); + + ioLoop->runInLoop(std::bind(&TcpConnection::connectEstablished, conn)); +} + +void TcpServer::removeConnection(const TcpConnectionPtr &conn) +{ + loop_->runInLoop(std::bind(&TcpServer::removeConnectionInLoop, this, conn)); +} +void TcpServer::removeConnectionInLoop(const TcpConnectionPtr &conn) +{ + LOG_INFO("TcpServer::removeConnectionInLoop [%s] - connection %s\n", + name_.c_str(), conn->name().c_str()); + + connections_.erase(conn->name()); + EventLoop *ioLoop = conn->getLoop(); + ioLoop->queueInLoop( + std::bind(&TcpConnection::connectDestroyed, conn)); +} \ No newline at end of file diff --git a/TcpServer.h b/TcpServer.h new file mode 100644 index 0000000..65dcaed --- /dev/null +++ b/TcpServer.h @@ -0,0 +1,75 @@ +#pragma once + +/** + * 用户使用muduo编写服务器程序 + **/ + +#include +#include +#include +#include +#include + +#include "EventLoop.h" +#include "Acceptor.h" +#include "InetAddress.h" +#include "noncopyable.h" +#include "EventLoopThreadPool.h" +#include "Callbacks.h" + +// 对外的服务器编程使用的类 +class TcpServer +{ +public: + using ThreadInitCallback = std::function; + + enum Option + { + kNoReusePort, + kReusePort, + }; + + TcpServer(EventLoop *loop, + const InetAddress &listenAddr, + const std::string &nameArg, + Option option = kNoReusePort); + ~TcpServer(); + + void setThreadInitCallback(const ThreadInitCallback &cb) { threadInitCallback_ = cb; } + void setConnectionCallback(const ConnectionCallback &cb) { connectionCallback_ = cb; } + void setMessageCallback(const MessageCallback &cb) { messageCallback_ = cb; } + void setWriteCompleteCallback(const WriteCompleteCallback &cb) { writeCompleteCallback_ = cb; } + + // 设置底层subloop的个数 + void setThreadNum(int numThreads); + + // 开启服务器监听 + void start(); + +private: + void newConnection(int sockfd, const InetAddress &peerAddr); + void removeConnection(const TcpConnectionPtr &conn); + void removeConnectionInLoop(const TcpConnectionPtr &conn); + + using ConnectionMap = std::unordered_map; + + EventLoop *loop_; // baseloop 用户自定义的loop + + const std::string ipPort_; + const std::string name_; + + std::unique_ptr acceptor_; // 运行在mainloop 任务就是监听新连接事件 + + std::shared_ptr threadPool_; // one loop per thread + + ConnectionCallback connectionCallback_; //有新连接时的回调 + MessageCallback messageCallback_; // 有读写事件发生时的回调 + WriteCompleteCallback writeCompleteCallback_; // 消息发送完成后的回调 + + ThreadInitCallback threadInitCallback_; // loop线程初始化的回调 + + std::atomic_int started_; + + int nextConnId_; + ConnectionMap connections_; // 保存所有的连接 +}; \ No newline at end of file diff --git a/Thread.cc b/Thread.cc new file mode 100644 index 0000000..c840135 --- /dev/null +++ b/Thread.cc @@ -0,0 +1,60 @@ +#include "Thread.h" +#include "CurrentThread.h" + +#include + +std::atomic_int Thread::numCreated_(0); + +Thread::Thread(ThreadFunc func, const std::string &name) + : started_(false) + , joined_(false) + , tid_(0) + , func_(std::move(func)) + , name_(name) +{ + setDefaultName(); +} + +Thread::~Thread() +{ + if (started_ && !joined_) + { + thread_->detach(); // thread类提供了设置分离线程的方法 线程运行后自动销毁(非阻塞) + } +} + +void Thread::start() // 一个Thread对象 记录的就是一个新线程的详细信息 +{ + started_ = true; + sem_t sem; + sem_init(&sem, false, 0); // false指的是 不设置进程间共享 + // 开启线程 + thread_ = std::shared_ptr(new std::thread([&]()->void { + // 获取线程的tid值 + tid_ = CurrentThread::tid(); + sem_post(&sem); + // 开启一个新线程 专门执行该线程函数 + func_(); + })); + + // 这里必须等待获取上面新创建的线程的tid值 + sem_wait(&sem); +} + +// C++ std::thread 中join()和detach()的区别:https://blog.nowcoder.net/n/8fcd9bb6e2e94d9596cf0a45c8e5858a +void Thread::join() +{ + joined_ = true; + thread_->join(); +} + +void Thread::setDefaultName() +{ + int num = ++numCreated_; + if (name_.empty()) + { + char buf[32] = {0}; + snprintf(buf, sizeof buf, "Thread%d", num); + name_ = buf; + } +} \ No newline at end of file diff --git a/Thread.h b/Thread.h new file mode 100644 index 0000000..ada23c5 --- /dev/null +++ b/Thread.h @@ -0,0 +1,39 @@ +#pragma once + +#include +#include +#include +#include +#include +#include + +#include "noncopyable.h" + +class Thread : noncopyable +{ +public: + using ThreadFunc = std::function; + + explicit Thread(ThreadFunc, const std::string &name = std::string()); + ~Thread(); + + void start(); + void join(); + + bool started() { return started_; } + pid_t tid() const { return tid_; } + const std::string &name() const { return name_; } + + static int numCreated() { return numCreated_; } + +private: + void setDefaultName(); + + bool started_; + bool joined_; + std::shared_ptr thread_; + pid_t tid_; // 在线程创建时再绑定 + ThreadFunc func_; // 线程回调函数 + std::string name_; + static std::atomic_int numCreated_; +}; \ No newline at end of file diff --git a/Timestamp.cc b/Timestamp.cc new file mode 100644 index 0000000..676a3cb --- /dev/null +++ b/Timestamp.cc @@ -0,0 +1,36 @@ +#include + +#include "Timestamp.h" + +Timestamp::Timestamp() : microSecondsSinceEpoch_(0) +{ +} + +Timestamp::Timestamp(int64_t microSecondsSinceEpoch) + : microSecondsSinceEpoch_(microSecondsSinceEpoch) +{ +} + +Timestamp Timestamp::now() +{ + return Timestamp(time(NULL)); +} +std::string Timestamp::toString() const +{ + char buf[128] = {0}; + tm *tm_time = localtime(µSecondsSinceEpoch_); + snprintf(buf, 128, "%4d/%02d/%02d %02d:%02d:%02d", + tm_time->tm_year + 1900, + tm_time->tm_mon + 1, + tm_time->tm_mday, + tm_time->tm_hour, + tm_time->tm_min, + tm_time->tm_sec); + return buf; +} + +// #include +// int main() { +// std::cout << Timestamp::now().toString() << std::endl; +// return 0; +// } \ No newline at end of file diff --git a/Timestamp.h b/Timestamp.h new file mode 100644 index 0000000..463f38b --- /dev/null +++ b/Timestamp.h @@ -0,0 +1,16 @@ +#pragma once + +#include +#include + +class Timestamp +{ +public: + Timestamp(); + explicit Timestamp(int64_t microSecondsSinceEpoch); + static Timestamp now(); + std::string toString() const; + +private: + int64_t microSecondsSinceEpoch_; +}; \ No newline at end of file diff --git a/build/CMakeCache.txt b/build/CMakeCache.txt new file mode 100644 index 0000000..d018f88 --- /dev/null +++ b/build/CMakeCache.txt @@ -0,0 +1,316 @@ +# This is the CMakeCache file. +# For build in directory: /root/mymuduo/build +# It was generated by CMake: /usr/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//For backwards compatibility, what version of CMake commands and +// syntax should this version of CMake try to support. +CMAKE_BACKWARDS_COMPATIBILITY:STRING=2.4 + +//No help, variable specified on the command line. +CMAKE_BUILD_TYPE:STRING=Debug + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//No help, variable specified on the command line. +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-g++-5 + +//Flags used by the compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//No help, variable specified on the command line. +CMAKE_C_COMPILER:FILEPATH=/usr/bin/x86_64-linux-gnu-gcc-5 + +//Flags used by the compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the compiler during debug builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the compiler during release builds for minimum +// size. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the compiler during release builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the compiler during release builds with debug info. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//No help, variable specified on the command line. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=mymuduo + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of dll's. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during debug builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during release minsize builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during release builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during Release with Debug Info builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Single output directory for building all executables. +EXECUTABLE_OUTPUT_PATH:PATH= + +//Single output directory for building all libraries. +LIBRARY_OUTPUT_PATH:PATH= + +//Value Computed by CMake +mymuduo_BINARY_DIR:STATIC=/root/mymuduo/build + +//Dependencies for target +mymuduo_LIB_DEPENDS:STATIC= + +//Value Computed by CMake +mymuduo_SOURCE_DIR:STATIC=/root/mymuduo + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/root/mymuduo/build +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=5 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=1 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/usr/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL= +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/root/mymuduo +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/usr/share/cmake-3.5 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 + diff --git a/build/CMakeFiles/3.5.1/CMakeCCompiler.cmake b/build/CMakeFiles/3.5.1/CMakeCCompiler.cmake new file mode 100644 index 0000000..fb6f9fe --- /dev/null +++ b/build/CMakeFiles/3.5.1/CMakeCCompiler.cmake @@ -0,0 +1,67 @@ +set(CMAKE_C_COMPILER "/usr/bin/x86_64-linux-gnu-gcc-5") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "5.4.0") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_function_prototypes;c_restrict;c_variadic_macros;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "c") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build/CMakeFiles/3.5.1/CMakeCXXCompiler.cmake b/build/CMakeFiles/3.5.1/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..a3ebe85 --- /dev/null +++ b/build/CMakeFiles/3.5.1/CMakeCXXCompiler.cmake @@ -0,0 +1,68 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/x86_64-linux-gnu-g++-5") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "5.4.0") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_template_template_parameters;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;c") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/build/CMakeFiles/3.5.1/CMakeDetermineCompilerABI_C.bin b/build/CMakeFiles/3.5.1/CMakeDetermineCompilerABI_C.bin new file mode 100644 index 0000000..4e87d56 Binary files /dev/null and b/build/CMakeFiles/3.5.1/CMakeDetermineCompilerABI_C.bin differ diff --git a/build/CMakeFiles/3.5.1/CMakeDetermineCompilerABI_CXX.bin b/build/CMakeFiles/3.5.1/CMakeDetermineCompilerABI_CXX.bin new file mode 100644 index 0000000..0259753 Binary files /dev/null and b/build/CMakeFiles/3.5.1/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/build/CMakeFiles/3.5.1/CMakeSystem.cmake b/build/CMakeFiles/3.5.1/CMakeSystem.cmake new file mode 100644 index 0000000..834f787 --- /dev/null +++ b/build/CMakeFiles/3.5.1/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.4.0-186-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.4.0-186-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.4.0-186-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.4.0-186-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/build/CMakeFiles/3.5.1/CompilerIdC/CMakeCCompilerId.c b/build/CMakeFiles/3.5.1/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..570a15e --- /dev/null +++ b/build/CMakeFiles/3.5.1/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,544 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(SDCC) +# define COMPILER_ID "SDCC" + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID "" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID "" + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID "" +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if !defined(__STDC_VERSION__) + "90" +#elif __STDC_VERSION__ >= 201000L + "11" +#elif __STDC_VERSION__ >= 199901L + "99" +#else +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/build/CMakeFiles/3.5.1/CompilerIdC/a.out b/build/CMakeFiles/3.5.1/CompilerIdC/a.out new file mode 100644 index 0000000..0abd21c Binary files /dev/null and b/build/CMakeFiles/3.5.1/CompilerIdC/a.out differ diff --git a/build/CMakeFiles/3.5.1/CompilerIdCXX/CMakeCXXCompilerId.cpp b/build/CMakeFiles/3.5.1/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..e6d8536 --- /dev/null +++ b/build/CMakeFiles/3.5.1/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,533 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID "" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID "" + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID "" +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if __cplusplus >= 201402L + "14" +#elif __cplusplus >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/build/CMakeFiles/3.5.1/CompilerIdCXX/a.out b/build/CMakeFiles/3.5.1/CompilerIdCXX/a.out new file mode 100644 index 0000000..e52b547 Binary files /dev/null and b/build/CMakeFiles/3.5.1/CompilerIdCXX/a.out differ diff --git a/build/CMakeFiles/CMakeDirectoryInformation.cmake b/build/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..c7ace7d --- /dev/null +++ b/build/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.5 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/root/mymuduo") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/root/mymuduo/build") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/build/CMakeFiles/CMakeOutput.log b/build/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..535a285 --- /dev/null +++ b/build/CMakeFiles/CMakeOutput.log @@ -0,0 +1,554 @@ +The system is: Linux - 4.4.0-186-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/x86_64-linux-gnu-gcc-5 +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/root/mymuduo/build/CMakeFiles/3.5.1/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/x86_64-linux-gnu-g++-5 +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/root/mymuduo/build/CMakeFiles/3.5.1/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_3d395/fast" +/usr/bin/make -f CMakeFiles/cmTC_3d395.dir/build.make CMakeFiles/cmTC_3d395.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_3d395.dir/testCCompiler.c.o +/usr/bin/x86_64-linux-gnu-gcc-5 -o CMakeFiles/cmTC_3d395.dir/testCCompiler.c.o -c /root/mymuduo/build/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_3d395 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3d395.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-gcc-5 CMakeFiles/cmTC_3d395.dir/testCCompiler.c.o -o cmTC_3d395 -rdynamic +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_37015/fast" +/usr/bin/make -f CMakeFiles/cmTC_37015.dir/build.make CMakeFiles/cmTC_37015.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_37015.dir/CMakeCCompilerABI.c.o +/usr/bin/x86_64-linux-gnu-gcc-5 -o CMakeFiles/cmTC_37015.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.5/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_37015 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_37015.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-gcc-5 -v CMakeFiles/cmTC_37015.dir/CMakeCCompilerABI.c.o -o cmTC_37015 -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/x86_64-linux-gnu-gcc-5 +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_37015' '-rdynamic' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccMPeWBj.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_37015 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_37015.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_37015/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_37015.dir/build.make CMakeFiles/cmTC_37015.dir/build] + ignore line: [make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_37015.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/x86_64-linux-gnu-gcc-5 -o CMakeFiles/cmTC_37015.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.5/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_37015] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_37015.dir/link.txt --verbose=1] + ignore line: [/usr/bin/x86_64-linux-gnu-gcc-5 -v CMakeFiles/cmTC_37015.dir/CMakeCCompilerABI.c.o -o cmTC_37015 -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/x86_64-linux-gnu-gcc-5] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_37015' '-rdynamic' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccMPeWBj.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_37015 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_37015.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccMPeWBj.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_37015] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_37015.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--no-as-needed] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [c] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_f69d2/fast" +/usr/bin/make -f CMakeFiles/cmTC_f69d2.dir/build.make CMakeFiles/cmTC_f69d2.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_f69d2.dir/feature_tests.c.o +/usr/bin/x86_64-linux-gnu-gcc-5 -std=c11 -o CMakeFiles/cmTC_f69d2.dir/feature_tests.c.o -c /root/mymuduo/build/CMakeFiles/feature_tests.c +Linking C executable cmTC_f69d2 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f69d2.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-gcc-5 CMakeFiles/cmTC_f69d2.dir/feature_tests.c.o -o cmTC_f69d2 -rdynamic +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_d44fa/fast" +/usr/bin/make -f CMakeFiles/cmTC_d44fa.dir/build.make CMakeFiles/cmTC_d44fa.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_d44fa.dir/feature_tests.c.o +/usr/bin/x86_64-linux-gnu-gcc-5 -std=c99 -o CMakeFiles/cmTC_d44fa.dir/feature_tests.c.o -c /root/mymuduo/build/CMakeFiles/feature_tests.c +Linking C executable cmTC_d44fa +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d44fa.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-gcc-5 CMakeFiles/cmTC_d44fa.dir/feature_tests.c.o -o cmTC_d44fa -rdynamic +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_dcbc3/fast" +/usr/bin/make -f CMakeFiles/cmTC_dcbc3.dir/build.make CMakeFiles/cmTC_dcbc3.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_dcbc3.dir/feature_tests.c.o +/usr/bin/x86_64-linux-gnu-gcc-5 -std=c90 -o CMakeFiles/cmTC_dcbc3.dir/feature_tests.c.o -c /root/mymuduo/build/CMakeFiles/feature_tests.c +Linking C executable cmTC_dcbc3 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_dcbc3.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-gcc-5 CMakeFiles/cmTC_dcbc3.dir/feature_tests.c.o -o cmTC_dcbc3 -rdynamic +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_c00b2/fast" +/usr/bin/make -f CMakeFiles/cmTC_c00b2.dir/build.make CMakeFiles/cmTC_c00b2.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_c00b2.dir/testCXXCompiler.cxx.o +/usr/bin/x86_64-linux-gnu-g++-5 -o CMakeFiles/cmTC_c00b2.dir/testCXXCompiler.cxx.o -c /root/mymuduo/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_c00b2 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c00b2.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-g++-5 CMakeFiles/cmTC_c00b2.dir/testCXXCompiler.cxx.o -o cmTC_c00b2 -rdynamic +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_b6111/fast" +/usr/bin/make -f CMakeFiles/cmTC_b6111.dir/build.make CMakeFiles/cmTC_b6111.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_b6111.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/x86_64-linux-gnu-g++-5 -o CMakeFiles/cmTC_b6111.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.5/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_b6111 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b6111.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-g++-5 -v CMakeFiles/cmTC_b6111.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_b6111 -rdynamic +Using built-in specs. +COLLECT_GCC=/usr/bin/x86_64-linux-gnu-g++-5 +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_b6111' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccXgQTEP.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_b6111 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_b6111.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_b6111/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_b6111.dir/build.make CMakeFiles/cmTC_b6111.dir/build] + ignore line: [make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_b6111.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/x86_64-linux-gnu-g++-5 -o CMakeFiles/cmTC_b6111.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.5/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_b6111] + ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b6111.dir/link.txt --verbose=1] + ignore line: [/usr/bin/x86_64-linux-gnu-g++-5 -v CMakeFiles/cmTC_b6111.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_b6111 -rdynamic ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/x86_64-linux-gnu-g++-5] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_b6111' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccXgQTEP.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTC_b6111 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_b6111.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccXgQTEP.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_b6111] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_b6111.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + remove lib [gcc_s] + remove lib [gcc] + remove lib [gcc_s] + remove lib [gcc] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;c] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_3c43a/fast" +/usr/bin/make -f CMakeFiles/cmTC_3c43a.dir/build.make CMakeFiles/cmTC_3c43a.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_3c43a.dir/feature_tests.cxx.o +/usr/bin/x86_64-linux-gnu-g++-5 -std=c++14 -o CMakeFiles/cmTC_3c43a.dir/feature_tests.cxx.o -c /root/mymuduo/build/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_3c43a +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3c43a.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-g++-5 CMakeFiles/cmTC_3c43a.dir/feature_tests.cxx.o -o cmTC_3c43a -rdynamic +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_9fa3c/fast" +/usr/bin/make -f CMakeFiles/cmTC_9fa3c.dir/build.make CMakeFiles/cmTC_9fa3c.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_9fa3c.dir/feature_tests.cxx.o +/usr/bin/x86_64-linux-gnu-g++-5 -std=c++11 -o CMakeFiles/cmTC_9fa3c.dir/feature_tests.cxx.o -c /root/mymuduo/build/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_9fa3c +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9fa3c.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-g++-5 CMakeFiles/cmTC_9fa3c.dir/feature_tests.cxx.o -o cmTC_9fa3c -rdynamic +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /root/mymuduo/build/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_66416/fast" +/usr/bin/make -f CMakeFiles/cmTC_66416.dir/build.make CMakeFiles/cmTC_66416.dir/build +make[1]: Entering directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_66416.dir/feature_tests.cxx.o +/usr/bin/x86_64-linux-gnu-g++-5 -std=c++98 -o CMakeFiles/cmTC_66416.dir/feature_tests.cxx.o -c /root/mymuduo/build/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_66416 +/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_66416.dir/link.txt --verbose=1 +/usr/bin/x86_64-linux-gnu-g++-5 CMakeFiles/cmTC_66416.dir/feature_tests.cxx.o -o cmTC_66416 -rdynamic +make[1]: Leaving directory '/root/mymuduo/build/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/build/CMakeFiles/Makefile.cmake b/build/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..7aa5457 --- /dev/null +++ b/build/CMakeFiles/Makefile.cmake @@ -0,0 +1,115 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.5 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.5.1/CMakeCCompiler.cmake" + "CMakeFiles/3.5.1/CMakeCXXCompiler.cmake" + "CMakeFiles/3.5.1/CMakeSystem.cmake" + "CMakeFiles/feature_tests.c" + "CMakeFiles/feature_tests.cxx" + "/usr/share/cmake-3.5/Modules/CMakeCCompiler.cmake.in" + "/usr/share/cmake-3.5/Modules/CMakeCCompilerABI.c" + "/usr/share/cmake-3.5/Modules/CMakeCInformation.cmake" + "/usr/share/cmake-3.5/Modules/CMakeCXXCompiler.cmake.in" + "/usr/share/cmake-3.5/Modules/CMakeCXXCompilerABI.cpp" + "/usr/share/cmake-3.5/Modules/CMakeCXXInformation.cmake" + "/usr/share/cmake-3.5/Modules/CMakeCommonLanguageInclude.cmake" + "/usr/share/cmake-3.5/Modules/CMakeCompilerIdDetection.cmake" + "/usr/share/cmake-3.5/Modules/CMakeDetermineCCompiler.cmake" + "/usr/share/cmake-3.5/Modules/CMakeDetermineCXXCompiler.cmake" + "/usr/share/cmake-3.5/Modules/CMakeDetermineCompileFeatures.cmake" + "/usr/share/cmake-3.5/Modules/CMakeDetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/CMakeDetermineCompilerABI.cmake" + "/usr/share/cmake-3.5/Modules/CMakeDetermineCompilerId.cmake" + "/usr/share/cmake-3.5/Modules/CMakeDetermineSystem.cmake" + "/usr/share/cmake-3.5/Modules/CMakeFindBinUtils.cmake" + "/usr/share/cmake-3.5/Modules/CMakeGenericSystem.cmake" + "/usr/share/cmake-3.5/Modules/CMakeLanguageInformation.cmake" + "/usr/share/cmake-3.5/Modules/CMakeParseArguments.cmake" + "/usr/share/cmake-3.5/Modules/CMakeParseImplicitLinkInfo.cmake" + "/usr/share/cmake-3.5/Modules/CMakeSystem.cmake.in" + "/usr/share/cmake-3.5/Modules/CMakeSystemSpecificInformation.cmake" + "/usr/share/cmake-3.5/Modules/CMakeSystemSpecificInitialize.cmake" + "/usr/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake" + "/usr/share/cmake-3.5/Modules/CMakeTestCXXCompiler.cmake" + "/usr/share/cmake-3.5/Modules/CMakeTestCompilerCommon.cmake" + "/usr/share/cmake-3.5/Modules/CMakeUnixFindMake.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/ADSP-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/ARMCC-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/AppleClang-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Borland-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Clang-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Clang-DetermineCompilerInternal.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Compaq-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Cray-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Embarcadero-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Fujitsu-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/GHS-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/GNU-C-FeatureTests.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/GNU-C.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/GNU-CXX-FeatureTests.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/GNU-CXX.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/GNU-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/GNU.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/HP-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/HP-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/IAR-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Intel-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/MIPSpro-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/MSVC-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/PGI-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/PathScale-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/SCO-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/SDCC-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/SunPro-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/TI-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/Watcom-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/XL-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/XL-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/zOS-C-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake" + "/usr/share/cmake-3.5/Modules/Internal/FeatureTesting.cmake" + "/usr/share/cmake-3.5/Modules/MultiArchCross.cmake" + "/usr/share/cmake-3.5/Modules/Platform/Linux-CXX.cmake" + "/usr/share/cmake-3.5/Modules/Platform/Linux-GNU-C.cmake" + "/usr/share/cmake-3.5/Modules/Platform/Linux-GNU-CXX.cmake" + "/usr/share/cmake-3.5/Modules/Platform/Linux-GNU.cmake" + "/usr/share/cmake-3.5/Modules/Platform/Linux.cmake" + "/usr/share/cmake-3.5/Modules/Platform/UnixPaths.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/3.5.1/CMakeSystem.cmake" + "CMakeFiles/3.5.1/CMakeCCompiler.cmake" + "CMakeFiles/3.5.1/CMakeCXXCompiler.cmake" + "CMakeFiles/3.5.1/CMakeCCompiler.cmake" + "CMakeFiles/3.5.1/CMakeCXXCompiler.cmake" + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/mymuduo.dir/DependInfo.cmake" + ) diff --git a/build/CMakeFiles/Makefile2 b/build/CMakeFiles/Makefile2 new file mode 100644 index 0000000..87ec025 --- /dev/null +++ b/build/CMakeFiles/Makefile2 @@ -0,0 +1,108 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.5 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /root/mymuduo + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /root/mymuduo/build + +#============================================================================= +# Target rules for target CMakeFiles/mymuduo.dir + +# All Build rule for target. +CMakeFiles/mymuduo.dir/all: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/depend + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 "Built target mymuduo" +.PHONY : CMakeFiles/mymuduo.dir/all + +# Include target in all. +all: CMakeFiles/mymuduo.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/mymuduo.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /root/mymuduo/build/CMakeFiles 18 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/mymuduo.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /root/mymuduo/build/CMakeFiles 0 +.PHONY : CMakeFiles/mymuduo.dir/rule + +# Convenience name for target. +mymuduo: CMakeFiles/mymuduo.dir/rule + +.PHONY : mymuduo + +# clean rule for target. +CMakeFiles/mymuduo.dir/clean: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/clean +.PHONY : CMakeFiles/mymuduo.dir/clean + +# clean rule for target. +clean: CMakeFiles/mymuduo.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/CMakeFiles/TargetDirectories.txt b/build/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..dcde768 --- /dev/null +++ b/build/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/root/mymuduo/build/CMakeFiles/edit_cache.dir +/root/mymuduo/build/CMakeFiles/rebuild_cache.dir +/root/mymuduo/build/CMakeFiles/mymuduo.dir diff --git a/build/CMakeFiles/cmake.check_cache b/build/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/build/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/build/CMakeFiles/feature_tests.bin b/build/CMakeFiles/feature_tests.bin new file mode 100644 index 0000000..24939d1 Binary files /dev/null and b/build/CMakeFiles/feature_tests.bin differ diff --git a/build/CMakeFiles/feature_tests.c b/build/CMakeFiles/feature_tests.c new file mode 100644 index 0000000..6590dde --- /dev/null +++ b/build/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/build/CMakeFiles/feature_tests.cxx b/build/CMakeFiles/feature_tests.cxx new file mode 100644 index 0000000..b93418c --- /dev/null +++ b/build/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/build/CMakeFiles/mymuduo.dir/Acceptor.o b/build/CMakeFiles/mymuduo.dir/Acceptor.o new file mode 100644 index 0000000..a53869e Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/Acceptor.o differ diff --git a/build/CMakeFiles/mymuduo.dir/Buffer.o b/build/CMakeFiles/mymuduo.dir/Buffer.o new file mode 100644 index 0000000..2c3e1cc Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/Buffer.o differ diff --git a/build/CMakeFiles/mymuduo.dir/CXX.includecache b/build/CMakeFiles/mymuduo.dir/CXX.includecache new file mode 100644 index 0000000..e30d413 --- /dev/null +++ b/build/CMakeFiles/mymuduo.dir/CXX.includecache @@ -0,0 +1,386 @@ +#IncludeRegexLine: ^[ ]*#[ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/root/mymuduo/Acceptor.cc +sys/types.h +- +sys/socket.h +- +errno.h +- +unistd.h +- +Acceptor.h +/root/mymuduo/Acceptor.h +Logger.h +/root/mymuduo/Logger.h +InetAddress.h +/root/mymuduo/InetAddress.h + +/root/mymuduo/Acceptor.h +functional +- +noncopyable.h +/root/mymuduo/noncopyable.h +Socket.h +/root/mymuduo/Socket.h +Channel.h +/root/mymuduo/Channel.h + +/root/mymuduo/Buffer.cc +errno.h +- +sys/uio.h +- +unistd.h +- +Buffer.h +/root/mymuduo/Buffer.h + +/root/mymuduo/Buffer.h +vector +- +string +- +algorithm +- +stddef.h +- + +/root/mymuduo/Callbacks.h +memory +- +functional +- + +/root/mymuduo/Channel.cc +sys/epoll.h +- +Channel.h +/root/mymuduo/Channel.h +EventLoop.h +/root/mymuduo/EventLoop.h +Logger.h +/root/mymuduo/Logger.h + +/root/mymuduo/Channel.h +functional +- +memory +- +noncopyable.h +/root/mymuduo/noncopyable.h +Timestamp.h +/root/mymuduo/Timestamp.h + +/root/mymuduo/CurrentThread.cc +CurrentThread.h +/root/mymuduo/CurrentThread.h + +/root/mymuduo/CurrentThread.h +unistd.h +- +sys/syscall.h +- + +/root/mymuduo/DefaultPoller.cc +stdlib.h +- +Poller.h +/root/mymuduo/Poller.h +EPollPoller.h +/root/mymuduo/EPollPoller.h + +/root/mymuduo/EPollPoller.cc +errno.h +- +unistd.h +- +string.h +- +EPollPoller.h +/root/mymuduo/EPollPoller.h +Logger.h +/root/mymuduo/Logger.h +Channel.h +/root/mymuduo/Channel.h + +/root/mymuduo/EPollPoller.h +vector +- +sys/epoll.h +- +Poller.h +/root/mymuduo/Poller.h +Timestamp.h +/root/mymuduo/Timestamp.h + +/root/mymuduo/EventLoop.cc +sys/eventfd.h +- +unistd.h +- +fcntl.h +- +errno.h +- +memory +- +EventLoop.h +/root/mymuduo/EventLoop.h +Logger.h +/root/mymuduo/Logger.h +Channel.h +/root/mymuduo/Channel.h +Poller.h +/root/mymuduo/Poller.h + +/root/mymuduo/EventLoop.h +functional +- +vector +- +atomic +- +memory +- +mutex +- +noncopyable.h +/root/mymuduo/noncopyable.h +Timestamp.h +/root/mymuduo/Timestamp.h +CurrentThread.h +/root/mymuduo/CurrentThread.h + +/root/mymuduo/EventLoopThread.cc +EventLoopThread.h +/root/mymuduo/EventLoopThread.h +EventLoop.h +/root/mymuduo/EventLoop.h + +/root/mymuduo/EventLoopThread.h +functional +- +mutex +- +condition_variable +- +string +- +noncopyable.h +/root/mymuduo/noncopyable.h +Thread.h +/root/mymuduo/Thread.h + +/root/mymuduo/EventLoopThreadPool.cc +memory +- +EventLoopThreadPool.h +/root/mymuduo/EventLoopThreadPool.h +EventLoopThread.h +/root/mymuduo/EventLoopThread.h + +/root/mymuduo/EventLoopThreadPool.h +functional +- +string +- +vector +- +memory +- +noncopyable.h +/root/mymuduo/noncopyable.h + +/root/mymuduo/InetAddress.cc +strings.h +- +string.h +- +InetAddress.h +/root/mymuduo/InetAddress.h + +/root/mymuduo/InetAddress.h +arpa/inet.h +- +netinet/in.h +- +string +- + +/root/mymuduo/Logger.cc +iostream +- +Logger.h +/root/mymuduo/Logger.h +Timestamp.h +/root/mymuduo/Timestamp.h + +/root/mymuduo/Logger.h +string +- +noncopyable.h +/root/mymuduo/noncopyable.h + +/root/mymuduo/Poller.cc +Poller.h +/root/mymuduo/Poller.h +Channel.h +/root/mymuduo/Channel.h + +/root/mymuduo/Poller.h +vector +- +unordered_map +- +noncopyable.h +/root/mymuduo/noncopyable.h +Timestamp.h +/root/mymuduo/Timestamp.h + +/root/mymuduo/Socket.cc +unistd.h +- +sys/types.h +- +sys/socket.h +- +string.h +- +netinet/tcp.h +- +Socket.h +/root/mymuduo/Socket.h +Logger.h +/root/mymuduo/Logger.h +InetAddress.h +/root/mymuduo/InetAddress.h + +/root/mymuduo/Socket.h +noncopyable.h +/root/mymuduo/noncopyable.h + +/root/mymuduo/TcpConnection.cc +functional +- +string +- +errno.h +- +sys/types.h +- +sys/socket.h +- +string.h +- +netinet/tcp.h +- +TcpConnection.h +/root/mymuduo/TcpConnection.h +Logger.h +/root/mymuduo/Logger.h +Socket.h +/root/mymuduo/Socket.h +Channel.h +/root/mymuduo/Channel.h +EventLoop.h +/root/mymuduo/EventLoop.h + +/root/mymuduo/TcpConnection.h +memory +- +string +- +atomic +- +noncopyable.h +/root/mymuduo/noncopyable.h +InetAddress.h +/root/mymuduo/InetAddress.h +Callbacks.h +/root/mymuduo/Callbacks.h +Buffer.h +/root/mymuduo/Buffer.h +Timestamp.h +/root/mymuduo/Timestamp.h + +/root/mymuduo/TcpServer.cc +functional +- +string.h +- +TcpServer.h +/root/mymuduo/TcpServer.h +Logger.h +/root/mymuduo/Logger.h +TcpConnection.h +/root/mymuduo/TcpConnection.h + +/root/mymuduo/TcpServer.h +functional +- +string +- +memory +- +atomic +- +unordered_map +- +EventLoop.h +/root/mymuduo/EventLoop.h +Acceptor.h +/root/mymuduo/Acceptor.h +InetAddress.h +/root/mymuduo/InetAddress.h +noncopyable.h +/root/mymuduo/noncopyable.h +EventLoopThreadPool.h +/root/mymuduo/EventLoopThreadPool.h +Callbacks.h +/root/mymuduo/Callbacks.h + +/root/mymuduo/Thread.cc +Thread.h +/root/mymuduo/Thread.h +CurrentThread.h +/root/mymuduo/CurrentThread.h +semaphore.h +- + +/root/mymuduo/Thread.h +functional +- +thread +- +memory +- +unistd.h +- +string +- +atomic +- +noncopyable.h +/root/mymuduo/noncopyable.h + +/root/mymuduo/Timestamp.cc +time.h +- +Timestamp.h +/root/mymuduo/Timestamp.h + +/root/mymuduo/Timestamp.h +iostream +- +string +- + +/root/mymuduo/noncopyable.h + diff --git a/build/CMakeFiles/mymuduo.dir/Channel.o b/build/CMakeFiles/mymuduo.dir/Channel.o new file mode 100644 index 0000000..845eaad Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/Channel.o differ diff --git a/build/CMakeFiles/mymuduo.dir/CurrentThread.o b/build/CMakeFiles/mymuduo.dir/CurrentThread.o new file mode 100644 index 0000000..9e8c501 Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/CurrentThread.o differ diff --git a/build/CMakeFiles/mymuduo.dir/DefaultPoller.o b/build/CMakeFiles/mymuduo.dir/DefaultPoller.o new file mode 100644 index 0000000..2443683 Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/DefaultPoller.o differ diff --git a/build/CMakeFiles/mymuduo.dir/DependInfo.cmake b/build/CMakeFiles/mymuduo.dir/DependInfo.cmake new file mode 100644 index 0000000..cbebf67 --- /dev/null +++ b/build/CMakeFiles/mymuduo.dir/DependInfo.cmake @@ -0,0 +1,36 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/root/mymuduo/Acceptor.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/Acceptor.o" + "/root/mymuduo/Buffer.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/Buffer.o" + "/root/mymuduo/Channel.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/Channel.o" + "/root/mymuduo/CurrentThread.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/CurrentThread.o" + "/root/mymuduo/DefaultPoller.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/DefaultPoller.o" + "/root/mymuduo/EPollPoller.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/EPollPoller.o" + "/root/mymuduo/EventLoop.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/EventLoop.o" + "/root/mymuduo/EventLoopThread.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/EventLoopThread.o" + "/root/mymuduo/EventLoopThreadPool.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/EventLoopThreadPool.o" + "/root/mymuduo/InetAddress.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/InetAddress.o" + "/root/mymuduo/Logger.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/Logger.o" + "/root/mymuduo/Poller.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/Poller.o" + "/root/mymuduo/Socket.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/Socket.o" + "/root/mymuduo/TcpConnection.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/TcpConnection.o" + "/root/mymuduo/TcpServer.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/TcpServer.o" + "/root/mymuduo/Thread.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/Thread.o" + "/root/mymuduo/Timestamp.cc" "/root/mymuduo/build/CMakeFiles/mymuduo.dir/Timestamp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/build/CMakeFiles/mymuduo.dir/EPollPoller.o b/build/CMakeFiles/mymuduo.dir/EPollPoller.o new file mode 100644 index 0000000..0496af2 Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/EPollPoller.o differ diff --git a/build/CMakeFiles/mymuduo.dir/EventLoop.o b/build/CMakeFiles/mymuduo.dir/EventLoop.o new file mode 100644 index 0000000..423e69e Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/EventLoop.o differ diff --git a/build/CMakeFiles/mymuduo.dir/EventLoopThread.o b/build/CMakeFiles/mymuduo.dir/EventLoopThread.o new file mode 100644 index 0000000..65ced9e Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/EventLoopThread.o differ diff --git a/build/CMakeFiles/mymuduo.dir/EventLoopThreadPool.o b/build/CMakeFiles/mymuduo.dir/EventLoopThreadPool.o new file mode 100644 index 0000000..1a9d0fd Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/EventLoopThreadPool.o differ diff --git a/build/CMakeFiles/mymuduo.dir/InetAddress.o b/build/CMakeFiles/mymuduo.dir/InetAddress.o new file mode 100644 index 0000000..9d2b95a Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/InetAddress.o differ diff --git a/build/CMakeFiles/mymuduo.dir/Logger.o b/build/CMakeFiles/mymuduo.dir/Logger.o new file mode 100644 index 0000000..447c1cb Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/Logger.o differ diff --git a/build/CMakeFiles/mymuduo.dir/Poller.o b/build/CMakeFiles/mymuduo.dir/Poller.o new file mode 100644 index 0000000..bb543f3 Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/Poller.o differ diff --git a/build/CMakeFiles/mymuduo.dir/Socket.o b/build/CMakeFiles/mymuduo.dir/Socket.o new file mode 100644 index 0000000..e24f891 Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/Socket.o differ diff --git a/build/CMakeFiles/mymuduo.dir/TcpConnection.o b/build/CMakeFiles/mymuduo.dir/TcpConnection.o new file mode 100644 index 0000000..0f791b4 Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/TcpConnection.o differ diff --git a/build/CMakeFiles/mymuduo.dir/TcpServer.o b/build/CMakeFiles/mymuduo.dir/TcpServer.o new file mode 100644 index 0000000..da1a107 Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/TcpServer.o differ diff --git a/build/CMakeFiles/mymuduo.dir/Thread.o b/build/CMakeFiles/mymuduo.dir/Thread.o new file mode 100644 index 0000000..8a63967 Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/Thread.o differ diff --git a/build/CMakeFiles/mymuduo.dir/Timestamp.o b/build/CMakeFiles/mymuduo.dir/Timestamp.o new file mode 100644 index 0000000..5421bb3 Binary files /dev/null and b/build/CMakeFiles/mymuduo.dir/Timestamp.o differ diff --git a/build/CMakeFiles/mymuduo.dir/build.make b/build/CMakeFiles/mymuduo.dir/build.make new file mode 100644 index 0000000..41bbe99 --- /dev/null +++ b/build/CMakeFiles/mymuduo.dir/build.make @@ -0,0 +1,545 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.5 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /root/mymuduo + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /root/mymuduo/build + +# Include any dependencies generated for this target. +include CMakeFiles/mymuduo.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/mymuduo.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/mymuduo.dir/flags.make + +CMakeFiles/mymuduo.dir/Channel.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/Channel.o: ../Channel.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/mymuduo.dir/Channel.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/Channel.o -c /root/mymuduo/Channel.cc + +CMakeFiles/mymuduo.dir/Channel.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/Channel.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/Channel.cc > CMakeFiles/mymuduo.dir/Channel.i + +CMakeFiles/mymuduo.dir/Channel.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/Channel.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/Channel.cc -o CMakeFiles/mymuduo.dir/Channel.s + +CMakeFiles/mymuduo.dir/Channel.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/Channel.o.requires + +CMakeFiles/mymuduo.dir/Channel.o.provides: CMakeFiles/mymuduo.dir/Channel.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Channel.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/Channel.o.provides + +CMakeFiles/mymuduo.dir/Channel.o.provides.build: CMakeFiles/mymuduo.dir/Channel.o + + +CMakeFiles/mymuduo.dir/Timestamp.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/Timestamp.o: ../Timestamp.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/mymuduo.dir/Timestamp.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/Timestamp.o -c /root/mymuduo/Timestamp.cc + +CMakeFiles/mymuduo.dir/Timestamp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/Timestamp.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/Timestamp.cc > CMakeFiles/mymuduo.dir/Timestamp.i + +CMakeFiles/mymuduo.dir/Timestamp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/Timestamp.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/Timestamp.cc -o CMakeFiles/mymuduo.dir/Timestamp.s + +CMakeFiles/mymuduo.dir/Timestamp.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/Timestamp.o.requires + +CMakeFiles/mymuduo.dir/Timestamp.o.provides: CMakeFiles/mymuduo.dir/Timestamp.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Timestamp.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/Timestamp.o.provides + +CMakeFiles/mymuduo.dir/Timestamp.o.provides.build: CMakeFiles/mymuduo.dir/Timestamp.o + + +CMakeFiles/mymuduo.dir/TcpConnection.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/TcpConnection.o: ../TcpConnection.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/mymuduo.dir/TcpConnection.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/TcpConnection.o -c /root/mymuduo/TcpConnection.cc + +CMakeFiles/mymuduo.dir/TcpConnection.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/TcpConnection.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/TcpConnection.cc > CMakeFiles/mymuduo.dir/TcpConnection.i + +CMakeFiles/mymuduo.dir/TcpConnection.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/TcpConnection.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/TcpConnection.cc -o CMakeFiles/mymuduo.dir/TcpConnection.s + +CMakeFiles/mymuduo.dir/TcpConnection.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/TcpConnection.o.requires + +CMakeFiles/mymuduo.dir/TcpConnection.o.provides: CMakeFiles/mymuduo.dir/TcpConnection.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/TcpConnection.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/TcpConnection.o.provides + +CMakeFiles/mymuduo.dir/TcpConnection.o.provides.build: CMakeFiles/mymuduo.dir/TcpConnection.o + + +CMakeFiles/mymuduo.dir/TcpServer.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/TcpServer.o: ../TcpServer.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building CXX object CMakeFiles/mymuduo.dir/TcpServer.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/TcpServer.o -c /root/mymuduo/TcpServer.cc + +CMakeFiles/mymuduo.dir/TcpServer.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/TcpServer.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/TcpServer.cc > CMakeFiles/mymuduo.dir/TcpServer.i + +CMakeFiles/mymuduo.dir/TcpServer.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/TcpServer.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/TcpServer.cc -o CMakeFiles/mymuduo.dir/TcpServer.s + +CMakeFiles/mymuduo.dir/TcpServer.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/TcpServer.o.requires + +CMakeFiles/mymuduo.dir/TcpServer.o.provides: CMakeFiles/mymuduo.dir/TcpServer.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/TcpServer.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/TcpServer.o.provides + +CMakeFiles/mymuduo.dir/TcpServer.o.provides.build: CMakeFiles/mymuduo.dir/TcpServer.o + + +CMakeFiles/mymuduo.dir/EventLoopThread.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/EventLoopThread.o: ../EventLoopThread.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Building CXX object CMakeFiles/mymuduo.dir/EventLoopThread.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/EventLoopThread.o -c /root/mymuduo/EventLoopThread.cc + +CMakeFiles/mymuduo.dir/EventLoopThread.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/EventLoopThread.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/EventLoopThread.cc > CMakeFiles/mymuduo.dir/EventLoopThread.i + +CMakeFiles/mymuduo.dir/EventLoopThread.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/EventLoopThread.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/EventLoopThread.cc -o CMakeFiles/mymuduo.dir/EventLoopThread.s + +CMakeFiles/mymuduo.dir/EventLoopThread.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/EventLoopThread.o.requires + +CMakeFiles/mymuduo.dir/EventLoopThread.o.provides: CMakeFiles/mymuduo.dir/EventLoopThread.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoopThread.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/EventLoopThread.o.provides + +CMakeFiles/mymuduo.dir/EventLoopThread.o.provides.build: CMakeFiles/mymuduo.dir/EventLoopThread.o + + +CMakeFiles/mymuduo.dir/Acceptor.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/Acceptor.o: ../Acceptor.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_6) "Building CXX object CMakeFiles/mymuduo.dir/Acceptor.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/Acceptor.o -c /root/mymuduo/Acceptor.cc + +CMakeFiles/mymuduo.dir/Acceptor.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/Acceptor.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/Acceptor.cc > CMakeFiles/mymuduo.dir/Acceptor.i + +CMakeFiles/mymuduo.dir/Acceptor.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/Acceptor.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/Acceptor.cc -o CMakeFiles/mymuduo.dir/Acceptor.s + +CMakeFiles/mymuduo.dir/Acceptor.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/Acceptor.o.requires + +CMakeFiles/mymuduo.dir/Acceptor.o.provides: CMakeFiles/mymuduo.dir/Acceptor.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Acceptor.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/Acceptor.o.provides + +CMakeFiles/mymuduo.dir/Acceptor.o.provides.build: CMakeFiles/mymuduo.dir/Acceptor.o + + +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o: ../EventLoopThreadPool.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_7) "Building CXX object CMakeFiles/mymuduo.dir/EventLoopThreadPool.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/EventLoopThreadPool.o -c /root/mymuduo/EventLoopThreadPool.cc + +CMakeFiles/mymuduo.dir/EventLoopThreadPool.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/EventLoopThreadPool.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/EventLoopThreadPool.cc > CMakeFiles/mymuduo.dir/EventLoopThreadPool.i + +CMakeFiles/mymuduo.dir/EventLoopThreadPool.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/EventLoopThreadPool.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/EventLoopThreadPool.cc -o CMakeFiles/mymuduo.dir/EventLoopThreadPool.s + +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/EventLoopThreadPool.o.requires + +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o.provides: CMakeFiles/mymuduo.dir/EventLoopThreadPool.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoopThreadPool.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/EventLoopThreadPool.o.provides + +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o.provides.build: CMakeFiles/mymuduo.dir/EventLoopThreadPool.o + + +CMakeFiles/mymuduo.dir/CurrentThread.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/CurrentThread.o: ../CurrentThread.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_8) "Building CXX object CMakeFiles/mymuduo.dir/CurrentThread.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/CurrentThread.o -c /root/mymuduo/CurrentThread.cc + +CMakeFiles/mymuduo.dir/CurrentThread.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/CurrentThread.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/CurrentThread.cc > CMakeFiles/mymuduo.dir/CurrentThread.i + +CMakeFiles/mymuduo.dir/CurrentThread.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/CurrentThread.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/CurrentThread.cc -o CMakeFiles/mymuduo.dir/CurrentThread.s + +CMakeFiles/mymuduo.dir/CurrentThread.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/CurrentThread.o.requires + +CMakeFiles/mymuduo.dir/CurrentThread.o.provides: CMakeFiles/mymuduo.dir/CurrentThread.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/CurrentThread.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/CurrentThread.o.provides + +CMakeFiles/mymuduo.dir/CurrentThread.o.provides.build: CMakeFiles/mymuduo.dir/CurrentThread.o + + +CMakeFiles/mymuduo.dir/Thread.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/Thread.o: ../Thread.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_9) "Building CXX object CMakeFiles/mymuduo.dir/Thread.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/Thread.o -c /root/mymuduo/Thread.cc + +CMakeFiles/mymuduo.dir/Thread.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/Thread.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/Thread.cc > CMakeFiles/mymuduo.dir/Thread.i + +CMakeFiles/mymuduo.dir/Thread.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/Thread.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/Thread.cc -o CMakeFiles/mymuduo.dir/Thread.s + +CMakeFiles/mymuduo.dir/Thread.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/Thread.o.requires + +CMakeFiles/mymuduo.dir/Thread.o.provides: CMakeFiles/mymuduo.dir/Thread.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Thread.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/Thread.o.provides + +CMakeFiles/mymuduo.dir/Thread.o.provides.build: CMakeFiles/mymuduo.dir/Thread.o + + +CMakeFiles/mymuduo.dir/DefaultPoller.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/DefaultPoller.o: ../DefaultPoller.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_10) "Building CXX object CMakeFiles/mymuduo.dir/DefaultPoller.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/DefaultPoller.o -c /root/mymuduo/DefaultPoller.cc + +CMakeFiles/mymuduo.dir/DefaultPoller.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/DefaultPoller.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/DefaultPoller.cc > CMakeFiles/mymuduo.dir/DefaultPoller.i + +CMakeFiles/mymuduo.dir/DefaultPoller.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/DefaultPoller.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/DefaultPoller.cc -o CMakeFiles/mymuduo.dir/DefaultPoller.s + +CMakeFiles/mymuduo.dir/DefaultPoller.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/DefaultPoller.o.requires + +CMakeFiles/mymuduo.dir/DefaultPoller.o.provides: CMakeFiles/mymuduo.dir/DefaultPoller.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/DefaultPoller.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/DefaultPoller.o.provides + +CMakeFiles/mymuduo.dir/DefaultPoller.o.provides.build: CMakeFiles/mymuduo.dir/DefaultPoller.o + + +CMakeFiles/mymuduo.dir/EPollPoller.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/EPollPoller.o: ../EPollPoller.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_11) "Building CXX object CMakeFiles/mymuduo.dir/EPollPoller.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/EPollPoller.o -c /root/mymuduo/EPollPoller.cc + +CMakeFiles/mymuduo.dir/EPollPoller.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/EPollPoller.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/EPollPoller.cc > CMakeFiles/mymuduo.dir/EPollPoller.i + +CMakeFiles/mymuduo.dir/EPollPoller.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/EPollPoller.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/EPollPoller.cc -o CMakeFiles/mymuduo.dir/EPollPoller.s + +CMakeFiles/mymuduo.dir/EPollPoller.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/EPollPoller.o.requires + +CMakeFiles/mymuduo.dir/EPollPoller.o.provides: CMakeFiles/mymuduo.dir/EPollPoller.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EPollPoller.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/EPollPoller.o.provides + +CMakeFiles/mymuduo.dir/EPollPoller.o.provides.build: CMakeFiles/mymuduo.dir/EPollPoller.o + + +CMakeFiles/mymuduo.dir/Logger.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/Logger.o: ../Logger.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/mymuduo.dir/Logger.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/Logger.o -c /root/mymuduo/Logger.cc + +CMakeFiles/mymuduo.dir/Logger.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/Logger.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/Logger.cc > CMakeFiles/mymuduo.dir/Logger.i + +CMakeFiles/mymuduo.dir/Logger.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/Logger.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/Logger.cc -o CMakeFiles/mymuduo.dir/Logger.s + +CMakeFiles/mymuduo.dir/Logger.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/Logger.o.requires + +CMakeFiles/mymuduo.dir/Logger.o.provides: CMakeFiles/mymuduo.dir/Logger.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Logger.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/Logger.o.provides + +CMakeFiles/mymuduo.dir/Logger.o.provides.build: CMakeFiles/mymuduo.dir/Logger.o + + +CMakeFiles/mymuduo.dir/Poller.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/Poller.o: ../Poller.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_13) "Building CXX object CMakeFiles/mymuduo.dir/Poller.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/Poller.o -c /root/mymuduo/Poller.cc + +CMakeFiles/mymuduo.dir/Poller.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/Poller.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/Poller.cc > CMakeFiles/mymuduo.dir/Poller.i + +CMakeFiles/mymuduo.dir/Poller.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/Poller.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/Poller.cc -o CMakeFiles/mymuduo.dir/Poller.s + +CMakeFiles/mymuduo.dir/Poller.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/Poller.o.requires + +CMakeFiles/mymuduo.dir/Poller.o.provides: CMakeFiles/mymuduo.dir/Poller.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Poller.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/Poller.o.provides + +CMakeFiles/mymuduo.dir/Poller.o.provides.build: CMakeFiles/mymuduo.dir/Poller.o + + +CMakeFiles/mymuduo.dir/EventLoop.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/EventLoop.o: ../EventLoop.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_14) "Building CXX object CMakeFiles/mymuduo.dir/EventLoop.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/EventLoop.o -c /root/mymuduo/EventLoop.cc + +CMakeFiles/mymuduo.dir/EventLoop.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/EventLoop.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/EventLoop.cc > CMakeFiles/mymuduo.dir/EventLoop.i + +CMakeFiles/mymuduo.dir/EventLoop.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/EventLoop.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/EventLoop.cc -o CMakeFiles/mymuduo.dir/EventLoop.s + +CMakeFiles/mymuduo.dir/EventLoop.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/EventLoop.o.requires + +CMakeFiles/mymuduo.dir/EventLoop.o.provides: CMakeFiles/mymuduo.dir/EventLoop.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoop.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/EventLoop.o.provides + +CMakeFiles/mymuduo.dir/EventLoop.o.provides.build: CMakeFiles/mymuduo.dir/EventLoop.o + + +CMakeFiles/mymuduo.dir/InetAddress.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/InetAddress.o: ../InetAddress.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_15) "Building CXX object CMakeFiles/mymuduo.dir/InetAddress.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/InetAddress.o -c /root/mymuduo/InetAddress.cc + +CMakeFiles/mymuduo.dir/InetAddress.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/InetAddress.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/InetAddress.cc > CMakeFiles/mymuduo.dir/InetAddress.i + +CMakeFiles/mymuduo.dir/InetAddress.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/InetAddress.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/InetAddress.cc -o CMakeFiles/mymuduo.dir/InetAddress.s + +CMakeFiles/mymuduo.dir/InetAddress.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/InetAddress.o.requires + +CMakeFiles/mymuduo.dir/InetAddress.o.provides: CMakeFiles/mymuduo.dir/InetAddress.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/InetAddress.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/InetAddress.o.provides + +CMakeFiles/mymuduo.dir/InetAddress.o.provides.build: CMakeFiles/mymuduo.dir/InetAddress.o + + +CMakeFiles/mymuduo.dir/Buffer.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/Buffer.o: ../Buffer.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_16) "Building CXX object CMakeFiles/mymuduo.dir/Buffer.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/Buffer.o -c /root/mymuduo/Buffer.cc + +CMakeFiles/mymuduo.dir/Buffer.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/Buffer.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/Buffer.cc > CMakeFiles/mymuduo.dir/Buffer.i + +CMakeFiles/mymuduo.dir/Buffer.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/Buffer.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/Buffer.cc -o CMakeFiles/mymuduo.dir/Buffer.s + +CMakeFiles/mymuduo.dir/Buffer.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/Buffer.o.requires + +CMakeFiles/mymuduo.dir/Buffer.o.provides: CMakeFiles/mymuduo.dir/Buffer.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Buffer.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/Buffer.o.provides + +CMakeFiles/mymuduo.dir/Buffer.o.provides.build: CMakeFiles/mymuduo.dir/Buffer.o + + +CMakeFiles/mymuduo.dir/Socket.o: CMakeFiles/mymuduo.dir/flags.make +CMakeFiles/mymuduo.dir/Socket.o: ../Socket.cc + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_17) "Building CXX object CMakeFiles/mymuduo.dir/Socket.o" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/mymuduo.dir/Socket.o -c /root/mymuduo/Socket.cc + +CMakeFiles/mymuduo.dir/Socket.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/mymuduo.dir/Socket.i" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /root/mymuduo/Socket.cc > CMakeFiles/mymuduo.dir/Socket.i + +CMakeFiles/mymuduo.dir/Socket.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/mymuduo.dir/Socket.s" + /usr/bin/x86_64-linux-gnu-g++-5 $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /root/mymuduo/Socket.cc -o CMakeFiles/mymuduo.dir/Socket.s + +CMakeFiles/mymuduo.dir/Socket.o.requires: + +.PHONY : CMakeFiles/mymuduo.dir/Socket.o.requires + +CMakeFiles/mymuduo.dir/Socket.o.provides: CMakeFiles/mymuduo.dir/Socket.o.requires + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Socket.o.provides.build +.PHONY : CMakeFiles/mymuduo.dir/Socket.o.provides + +CMakeFiles/mymuduo.dir/Socket.o.provides.build: CMakeFiles/mymuduo.dir/Socket.o + + +# Object files for target mymuduo +mymuduo_OBJECTS = \ +"CMakeFiles/mymuduo.dir/Channel.o" \ +"CMakeFiles/mymuduo.dir/Timestamp.o" \ +"CMakeFiles/mymuduo.dir/TcpConnection.o" \ +"CMakeFiles/mymuduo.dir/TcpServer.o" \ +"CMakeFiles/mymuduo.dir/EventLoopThread.o" \ +"CMakeFiles/mymuduo.dir/Acceptor.o" \ +"CMakeFiles/mymuduo.dir/EventLoopThreadPool.o" \ +"CMakeFiles/mymuduo.dir/CurrentThread.o" \ +"CMakeFiles/mymuduo.dir/Thread.o" \ +"CMakeFiles/mymuduo.dir/DefaultPoller.o" \ +"CMakeFiles/mymuduo.dir/EPollPoller.o" \ +"CMakeFiles/mymuduo.dir/Logger.o" \ +"CMakeFiles/mymuduo.dir/Poller.o" \ +"CMakeFiles/mymuduo.dir/EventLoop.o" \ +"CMakeFiles/mymuduo.dir/InetAddress.o" \ +"CMakeFiles/mymuduo.dir/Buffer.o" \ +"CMakeFiles/mymuduo.dir/Socket.o" + +# External object files for target mymuduo +mymuduo_EXTERNAL_OBJECTS = + +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/Channel.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/Timestamp.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/TcpConnection.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/TcpServer.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/EventLoopThread.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/Acceptor.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/EventLoopThreadPool.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/CurrentThread.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/Thread.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/DefaultPoller.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/EPollPoller.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/Logger.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/Poller.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/EventLoop.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/InetAddress.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/Buffer.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/Socket.o +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/build.make +../lib/libmymuduo.so: CMakeFiles/mymuduo.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/root/mymuduo/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_18) "Linking CXX shared library ../lib/libmymuduo.so" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/mymuduo.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/mymuduo.dir/build: ../lib/libmymuduo.so + +.PHONY : CMakeFiles/mymuduo.dir/build + +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/Channel.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/Timestamp.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/TcpConnection.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/TcpServer.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/EventLoopThread.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/Acceptor.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/EventLoopThreadPool.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/CurrentThread.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/Thread.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/DefaultPoller.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/EPollPoller.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/Logger.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/Poller.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/EventLoop.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/InetAddress.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/Buffer.o.requires +CMakeFiles/mymuduo.dir/requires: CMakeFiles/mymuduo.dir/Socket.o.requires + +.PHONY : CMakeFiles/mymuduo.dir/requires + +CMakeFiles/mymuduo.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/mymuduo.dir/cmake_clean.cmake +.PHONY : CMakeFiles/mymuduo.dir/clean + +CMakeFiles/mymuduo.dir/depend: + cd /root/mymuduo/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /root/mymuduo /root/mymuduo /root/mymuduo/build /root/mymuduo/build /root/mymuduo/build/CMakeFiles/mymuduo.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/mymuduo.dir/depend + diff --git a/build/CMakeFiles/mymuduo.dir/cmake_clean.cmake b/build/CMakeFiles/mymuduo.dir/cmake_clean.cmake new file mode 100644 index 0000000..820b31c --- /dev/null +++ b/build/CMakeFiles/mymuduo.dir/cmake_clean.cmake @@ -0,0 +1,26 @@ +file(REMOVE_RECURSE + "CMakeFiles/mymuduo.dir/Channel.o" + "CMakeFiles/mymuduo.dir/Timestamp.o" + "CMakeFiles/mymuduo.dir/TcpConnection.o" + "CMakeFiles/mymuduo.dir/TcpServer.o" + "CMakeFiles/mymuduo.dir/EventLoopThread.o" + "CMakeFiles/mymuduo.dir/Acceptor.o" + "CMakeFiles/mymuduo.dir/EventLoopThreadPool.o" + "CMakeFiles/mymuduo.dir/CurrentThread.o" + "CMakeFiles/mymuduo.dir/Thread.o" + "CMakeFiles/mymuduo.dir/DefaultPoller.o" + "CMakeFiles/mymuduo.dir/EPollPoller.o" + "CMakeFiles/mymuduo.dir/Logger.o" + "CMakeFiles/mymuduo.dir/Poller.o" + "CMakeFiles/mymuduo.dir/EventLoop.o" + "CMakeFiles/mymuduo.dir/InetAddress.o" + "CMakeFiles/mymuduo.dir/Buffer.o" + "CMakeFiles/mymuduo.dir/Socket.o" + "../lib/libmymuduo.pdb" + "../lib/libmymuduo.so" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/mymuduo.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/build/CMakeFiles/mymuduo.dir/depend.internal b/build/CMakeFiles/mymuduo.dir/depend.internal new file mode 100644 index 0000000..2009d7f --- /dev/null +++ b/build/CMakeFiles/mymuduo.dir/depend.internal @@ -0,0 +1,120 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.5 + +CMakeFiles/mymuduo.dir/Acceptor.o + /root/mymuduo/Acceptor.cc + /root/mymuduo/Acceptor.h + /root/mymuduo/Channel.h + /root/mymuduo/InetAddress.h + /root/mymuduo/Logger.h + /root/mymuduo/Socket.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/Buffer.o + /root/mymuduo/Buffer.cc + /root/mymuduo/Buffer.h +CMakeFiles/mymuduo.dir/Channel.o + /root/mymuduo/Channel.cc + /root/mymuduo/Channel.h + /root/mymuduo/CurrentThread.h + /root/mymuduo/EventLoop.h + /root/mymuduo/Logger.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/CurrentThread.o + /root/mymuduo/CurrentThread.cc + /root/mymuduo/CurrentThread.h +CMakeFiles/mymuduo.dir/DefaultPoller.o + /root/mymuduo/DefaultPoller.cc + /root/mymuduo/EPollPoller.h + /root/mymuduo/Poller.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/EPollPoller.o + /root/mymuduo/Channel.h + /root/mymuduo/EPollPoller.cc + /root/mymuduo/EPollPoller.h + /root/mymuduo/Logger.h + /root/mymuduo/Poller.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/EventLoop.o + /root/mymuduo/Channel.h + /root/mymuduo/CurrentThread.h + /root/mymuduo/EventLoop.cc + /root/mymuduo/EventLoop.h + /root/mymuduo/Logger.h + /root/mymuduo/Poller.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/EventLoopThread.o + /root/mymuduo/CurrentThread.h + /root/mymuduo/EventLoop.h + /root/mymuduo/EventLoopThread.cc + /root/mymuduo/EventLoopThread.h + /root/mymuduo/Thread.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o + /root/mymuduo/EventLoopThread.h + /root/mymuduo/EventLoopThreadPool.cc + /root/mymuduo/EventLoopThreadPool.h + /root/mymuduo/Thread.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/InetAddress.o + /root/mymuduo/InetAddress.cc + /root/mymuduo/InetAddress.h +CMakeFiles/mymuduo.dir/Logger.o + /root/mymuduo/Logger.cc + /root/mymuduo/Logger.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/Poller.o + /root/mymuduo/Channel.h + /root/mymuduo/Poller.cc + /root/mymuduo/Poller.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/Socket.o + /root/mymuduo/InetAddress.h + /root/mymuduo/Logger.h + /root/mymuduo/Socket.cc + /root/mymuduo/Socket.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/TcpConnection.o + /root/mymuduo/Buffer.h + /root/mymuduo/Callbacks.h + /root/mymuduo/Channel.h + /root/mymuduo/CurrentThread.h + /root/mymuduo/EventLoop.h + /root/mymuduo/InetAddress.h + /root/mymuduo/Logger.h + /root/mymuduo/Socket.h + /root/mymuduo/TcpConnection.cc + /root/mymuduo/TcpConnection.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/TcpServer.o + /root/mymuduo/Acceptor.h + /root/mymuduo/Buffer.h + /root/mymuduo/Callbacks.h + /root/mymuduo/Channel.h + /root/mymuduo/CurrentThread.h + /root/mymuduo/EventLoop.h + /root/mymuduo/EventLoopThreadPool.h + /root/mymuduo/InetAddress.h + /root/mymuduo/Logger.h + /root/mymuduo/Socket.h + /root/mymuduo/TcpConnection.h + /root/mymuduo/TcpServer.cc + /root/mymuduo/TcpServer.h + /root/mymuduo/Timestamp.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/Thread.o + /root/mymuduo/CurrentThread.h + /root/mymuduo/Thread.cc + /root/mymuduo/Thread.h + /root/mymuduo/noncopyable.h +CMakeFiles/mymuduo.dir/Timestamp.o + /root/mymuduo/Timestamp.cc + /root/mymuduo/Timestamp.h diff --git a/build/CMakeFiles/mymuduo.dir/depend.make b/build/CMakeFiles/mymuduo.dir/depend.make new file mode 100644 index 0000000..51f8b91 --- /dev/null +++ b/build/CMakeFiles/mymuduo.dir/depend.make @@ -0,0 +1,120 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.5 + +CMakeFiles/mymuduo.dir/Acceptor.o: ../Acceptor.cc +CMakeFiles/mymuduo.dir/Acceptor.o: ../Acceptor.h +CMakeFiles/mymuduo.dir/Acceptor.o: ../Channel.h +CMakeFiles/mymuduo.dir/Acceptor.o: ../InetAddress.h +CMakeFiles/mymuduo.dir/Acceptor.o: ../Logger.h +CMakeFiles/mymuduo.dir/Acceptor.o: ../Socket.h +CMakeFiles/mymuduo.dir/Acceptor.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/Acceptor.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/Buffer.o: ../Buffer.cc +CMakeFiles/mymuduo.dir/Buffer.o: ../Buffer.h + +CMakeFiles/mymuduo.dir/Channel.o: ../Channel.cc +CMakeFiles/mymuduo.dir/Channel.o: ../Channel.h +CMakeFiles/mymuduo.dir/Channel.o: ../CurrentThread.h +CMakeFiles/mymuduo.dir/Channel.o: ../EventLoop.h +CMakeFiles/mymuduo.dir/Channel.o: ../Logger.h +CMakeFiles/mymuduo.dir/Channel.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/Channel.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/CurrentThread.o: ../CurrentThread.cc +CMakeFiles/mymuduo.dir/CurrentThread.o: ../CurrentThread.h + +CMakeFiles/mymuduo.dir/DefaultPoller.o: ../DefaultPoller.cc +CMakeFiles/mymuduo.dir/DefaultPoller.o: ../EPollPoller.h +CMakeFiles/mymuduo.dir/DefaultPoller.o: ../Poller.h +CMakeFiles/mymuduo.dir/DefaultPoller.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/DefaultPoller.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/EPollPoller.o: ../Channel.h +CMakeFiles/mymuduo.dir/EPollPoller.o: ../EPollPoller.cc +CMakeFiles/mymuduo.dir/EPollPoller.o: ../EPollPoller.h +CMakeFiles/mymuduo.dir/EPollPoller.o: ../Logger.h +CMakeFiles/mymuduo.dir/EPollPoller.o: ../Poller.h +CMakeFiles/mymuduo.dir/EPollPoller.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/EPollPoller.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/EventLoop.o: ../Channel.h +CMakeFiles/mymuduo.dir/EventLoop.o: ../CurrentThread.h +CMakeFiles/mymuduo.dir/EventLoop.o: ../EventLoop.cc +CMakeFiles/mymuduo.dir/EventLoop.o: ../EventLoop.h +CMakeFiles/mymuduo.dir/EventLoop.o: ../Logger.h +CMakeFiles/mymuduo.dir/EventLoop.o: ../Poller.h +CMakeFiles/mymuduo.dir/EventLoop.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/EventLoop.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/EventLoopThread.o: ../CurrentThread.h +CMakeFiles/mymuduo.dir/EventLoopThread.o: ../EventLoop.h +CMakeFiles/mymuduo.dir/EventLoopThread.o: ../EventLoopThread.cc +CMakeFiles/mymuduo.dir/EventLoopThread.o: ../EventLoopThread.h +CMakeFiles/mymuduo.dir/EventLoopThread.o: ../Thread.h +CMakeFiles/mymuduo.dir/EventLoopThread.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/EventLoopThread.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o: ../EventLoopThread.h +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o: ../EventLoopThreadPool.cc +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o: ../EventLoopThreadPool.h +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o: ../Thread.h +CMakeFiles/mymuduo.dir/EventLoopThreadPool.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/InetAddress.o: ../InetAddress.cc +CMakeFiles/mymuduo.dir/InetAddress.o: ../InetAddress.h + +CMakeFiles/mymuduo.dir/Logger.o: ../Logger.cc +CMakeFiles/mymuduo.dir/Logger.o: ../Logger.h +CMakeFiles/mymuduo.dir/Logger.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/Logger.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/Poller.o: ../Channel.h +CMakeFiles/mymuduo.dir/Poller.o: ../Poller.cc +CMakeFiles/mymuduo.dir/Poller.o: ../Poller.h +CMakeFiles/mymuduo.dir/Poller.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/Poller.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/Socket.o: ../InetAddress.h +CMakeFiles/mymuduo.dir/Socket.o: ../Logger.h +CMakeFiles/mymuduo.dir/Socket.o: ../Socket.cc +CMakeFiles/mymuduo.dir/Socket.o: ../Socket.h +CMakeFiles/mymuduo.dir/Socket.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/TcpConnection.o: ../Buffer.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../Callbacks.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../Channel.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../CurrentThread.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../EventLoop.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../InetAddress.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../Logger.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../Socket.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../TcpConnection.cc +CMakeFiles/mymuduo.dir/TcpConnection.o: ../TcpConnection.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/TcpConnection.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/TcpServer.o: ../Acceptor.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../Buffer.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../Callbacks.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../Channel.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../CurrentThread.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../EventLoop.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../EventLoopThreadPool.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../InetAddress.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../Logger.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../Socket.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../TcpConnection.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../TcpServer.cc +CMakeFiles/mymuduo.dir/TcpServer.o: ../TcpServer.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../Timestamp.h +CMakeFiles/mymuduo.dir/TcpServer.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/Thread.o: ../CurrentThread.h +CMakeFiles/mymuduo.dir/Thread.o: ../Thread.cc +CMakeFiles/mymuduo.dir/Thread.o: ../Thread.h +CMakeFiles/mymuduo.dir/Thread.o: ../noncopyable.h + +CMakeFiles/mymuduo.dir/Timestamp.o: ../Timestamp.cc +CMakeFiles/mymuduo.dir/Timestamp.o: ../Timestamp.h + diff --git a/build/CMakeFiles/mymuduo.dir/flags.make b/build/CMakeFiles/mymuduo.dir/flags.make new file mode 100644 index 0000000..4a59aa0 --- /dev/null +++ b/build/CMakeFiles/mymuduo.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.5 + +# compile CXX with /usr/bin/x86_64-linux-gnu-g++-5 +CXX_FLAGS = -g -std=c++11 -g -fPIC + +CXX_DEFINES = -Dmymuduo_EXPORTS + +CXX_INCLUDES = + diff --git a/build/CMakeFiles/mymuduo.dir/link.txt b/build/CMakeFiles/mymuduo.dir/link.txt new file mode 100644 index 0000000..f4fc8f3 --- /dev/null +++ b/build/CMakeFiles/mymuduo.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/x86_64-linux-gnu-g++-5 -fPIC -g -std=c++11 -g -shared -Wl,-soname,libmymuduo.so -o ../lib/libmymuduo.so CMakeFiles/mymuduo.dir/Channel.o CMakeFiles/mymuduo.dir/Timestamp.o CMakeFiles/mymuduo.dir/TcpConnection.o CMakeFiles/mymuduo.dir/TcpServer.o CMakeFiles/mymuduo.dir/EventLoopThread.o CMakeFiles/mymuduo.dir/Acceptor.o CMakeFiles/mymuduo.dir/EventLoopThreadPool.o CMakeFiles/mymuduo.dir/CurrentThread.o CMakeFiles/mymuduo.dir/Thread.o CMakeFiles/mymuduo.dir/DefaultPoller.o CMakeFiles/mymuduo.dir/EPollPoller.o CMakeFiles/mymuduo.dir/Logger.o CMakeFiles/mymuduo.dir/Poller.o CMakeFiles/mymuduo.dir/EventLoop.o CMakeFiles/mymuduo.dir/InetAddress.o CMakeFiles/mymuduo.dir/Buffer.o CMakeFiles/mymuduo.dir/Socket.o diff --git a/build/CMakeFiles/mymuduo.dir/progress.make b/build/CMakeFiles/mymuduo.dir/progress.make new file mode 100644 index 0000000..4f47425 --- /dev/null +++ b/build/CMakeFiles/mymuduo.dir/progress.make @@ -0,0 +1,19 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 +CMAKE_PROGRESS_4 = 4 +CMAKE_PROGRESS_5 = 5 +CMAKE_PROGRESS_6 = 6 +CMAKE_PROGRESS_7 = 7 +CMAKE_PROGRESS_8 = 8 +CMAKE_PROGRESS_9 = 9 +CMAKE_PROGRESS_10 = 10 +CMAKE_PROGRESS_11 = 11 +CMAKE_PROGRESS_12 = 12 +CMAKE_PROGRESS_13 = 13 +CMAKE_PROGRESS_14 = 14 +CMAKE_PROGRESS_15 = 15 +CMAKE_PROGRESS_16 = 16 +CMAKE_PROGRESS_17 = 17 +CMAKE_PROGRESS_18 = 18 + diff --git a/build/CMakeFiles/progress.marks b/build/CMakeFiles/progress.marks new file mode 100644 index 0000000..3c03207 --- /dev/null +++ b/build/CMakeFiles/progress.marks @@ -0,0 +1 @@ +18 diff --git a/build/Makefile b/build/Makefile new file mode 100644 index 0000000..c066db9 --- /dev/null +++ b/build/Makefile @@ -0,0 +1,454 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.5 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/bin/cmake + +# The command to remove a file. +RM = /usr/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /root/mymuduo + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /root/mymuduo/build + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /root/mymuduo/build/CMakeFiles /root/mymuduo/build/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /root/mymuduo/build/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named mymuduo + +# Build rule for target. +mymuduo: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 mymuduo +.PHONY : mymuduo + +# fast build rule for target. +mymuduo/fast: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/build +.PHONY : mymuduo/fast + +# target to build an object file +Acceptor.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Acceptor.o +.PHONY : Acceptor.o + +# target to preprocess a source file +Acceptor.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Acceptor.i +.PHONY : Acceptor.i + +# target to generate assembly for a file +Acceptor.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Acceptor.s +.PHONY : Acceptor.s + +# target to build an object file +Buffer.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Buffer.o +.PHONY : Buffer.o + +# target to preprocess a source file +Buffer.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Buffer.i +.PHONY : Buffer.i + +# target to generate assembly for a file +Buffer.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Buffer.s +.PHONY : Buffer.s + +# target to build an object file +Channel.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Channel.o +.PHONY : Channel.o + +# target to preprocess a source file +Channel.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Channel.i +.PHONY : Channel.i + +# target to generate assembly for a file +Channel.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Channel.s +.PHONY : Channel.s + +# target to build an object file +CurrentThread.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/CurrentThread.o +.PHONY : CurrentThread.o + +# target to preprocess a source file +CurrentThread.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/CurrentThread.i +.PHONY : CurrentThread.i + +# target to generate assembly for a file +CurrentThread.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/CurrentThread.s +.PHONY : CurrentThread.s + +# target to build an object file +DefaultPoller.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/DefaultPoller.o +.PHONY : DefaultPoller.o + +# target to preprocess a source file +DefaultPoller.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/DefaultPoller.i +.PHONY : DefaultPoller.i + +# target to generate assembly for a file +DefaultPoller.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/DefaultPoller.s +.PHONY : DefaultPoller.s + +# target to build an object file +EPollPoller.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EPollPoller.o +.PHONY : EPollPoller.o + +# target to preprocess a source file +EPollPoller.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EPollPoller.i +.PHONY : EPollPoller.i + +# target to generate assembly for a file +EPollPoller.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EPollPoller.s +.PHONY : EPollPoller.s + +# target to build an object file +EventLoop.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoop.o +.PHONY : EventLoop.o + +# target to preprocess a source file +EventLoop.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoop.i +.PHONY : EventLoop.i + +# target to generate assembly for a file +EventLoop.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoop.s +.PHONY : EventLoop.s + +# target to build an object file +EventLoopThread.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoopThread.o +.PHONY : EventLoopThread.o + +# target to preprocess a source file +EventLoopThread.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoopThread.i +.PHONY : EventLoopThread.i + +# target to generate assembly for a file +EventLoopThread.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoopThread.s +.PHONY : EventLoopThread.s + +# target to build an object file +EventLoopThreadPool.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoopThreadPool.o +.PHONY : EventLoopThreadPool.o + +# target to preprocess a source file +EventLoopThreadPool.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoopThreadPool.i +.PHONY : EventLoopThreadPool.i + +# target to generate assembly for a file +EventLoopThreadPool.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/EventLoopThreadPool.s +.PHONY : EventLoopThreadPool.s + +# target to build an object file +InetAddress.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/InetAddress.o +.PHONY : InetAddress.o + +# target to preprocess a source file +InetAddress.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/InetAddress.i +.PHONY : InetAddress.i + +# target to generate assembly for a file +InetAddress.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/InetAddress.s +.PHONY : InetAddress.s + +# target to build an object file +Logger.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Logger.o +.PHONY : Logger.o + +# target to preprocess a source file +Logger.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Logger.i +.PHONY : Logger.i + +# target to generate assembly for a file +Logger.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Logger.s +.PHONY : Logger.s + +# target to build an object file +Poller.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Poller.o +.PHONY : Poller.o + +# target to preprocess a source file +Poller.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Poller.i +.PHONY : Poller.i + +# target to generate assembly for a file +Poller.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Poller.s +.PHONY : Poller.s + +# target to build an object file +Socket.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Socket.o +.PHONY : Socket.o + +# target to preprocess a source file +Socket.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Socket.i +.PHONY : Socket.i + +# target to generate assembly for a file +Socket.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Socket.s +.PHONY : Socket.s + +# target to build an object file +TcpConnection.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/TcpConnection.o +.PHONY : TcpConnection.o + +# target to preprocess a source file +TcpConnection.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/TcpConnection.i +.PHONY : TcpConnection.i + +# target to generate assembly for a file +TcpConnection.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/TcpConnection.s +.PHONY : TcpConnection.s + +# target to build an object file +TcpServer.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/TcpServer.o +.PHONY : TcpServer.o + +# target to preprocess a source file +TcpServer.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/TcpServer.i +.PHONY : TcpServer.i + +# target to generate assembly for a file +TcpServer.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/TcpServer.s +.PHONY : TcpServer.s + +# target to build an object file +Thread.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Thread.o +.PHONY : Thread.o + +# target to preprocess a source file +Thread.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Thread.i +.PHONY : Thread.i + +# target to generate assembly for a file +Thread.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Thread.s +.PHONY : Thread.s + +# target to build an object file +Timestamp.o: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Timestamp.o +.PHONY : Timestamp.o + +# target to preprocess a source file +Timestamp.i: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Timestamp.i +.PHONY : Timestamp.i + +# target to generate assembly for a file +Timestamp.s: + $(MAKE) -f CMakeFiles/mymuduo.dir/build.make CMakeFiles/mymuduo.dir/Timestamp.s +.PHONY : Timestamp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... mymuduo" + @echo "... Acceptor.o" + @echo "... Acceptor.i" + @echo "... Acceptor.s" + @echo "... Buffer.o" + @echo "... Buffer.i" + @echo "... Buffer.s" + @echo "... Channel.o" + @echo "... Channel.i" + @echo "... Channel.s" + @echo "... CurrentThread.o" + @echo "... CurrentThread.i" + @echo "... CurrentThread.s" + @echo "... DefaultPoller.o" + @echo "... DefaultPoller.i" + @echo "... DefaultPoller.s" + @echo "... EPollPoller.o" + @echo "... EPollPoller.i" + @echo "... EPollPoller.s" + @echo "... EventLoop.o" + @echo "... EventLoop.i" + @echo "... EventLoop.s" + @echo "... EventLoopThread.o" + @echo "... EventLoopThread.i" + @echo "... EventLoopThread.s" + @echo "... EventLoopThreadPool.o" + @echo "... EventLoopThreadPool.i" + @echo "... EventLoopThreadPool.s" + @echo "... InetAddress.o" + @echo "... InetAddress.i" + @echo "... InetAddress.s" + @echo "... Logger.o" + @echo "... Logger.i" + @echo "... Logger.s" + @echo "... Poller.o" + @echo "... Poller.i" + @echo "... Poller.s" + @echo "... Socket.o" + @echo "... Socket.i" + @echo "... Socket.s" + @echo "... TcpConnection.o" + @echo "... TcpConnection.i" + @echo "... TcpConnection.s" + @echo "... TcpServer.o" + @echo "... TcpServer.i" + @echo "... TcpServer.s" + @echo "... Thread.o" + @echo "... Thread.i" + @echo "... Thread.s" + @echo "... Timestamp.o" + @echo "... Timestamp.i" + @echo "... Timestamp.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/build/cmake_install.cmake b/build/cmake_install.cmake new file mode 100644 index 0000000..17300db --- /dev/null +++ b/build/cmake_install.cmake @@ -0,0 +1,44 @@ +# Install script for directory: /root/mymuduo + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/root/mymuduo/build/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/build/compile_commands.json b/build/compile_commands.json new file mode 100644 index 0000000..bb7a08a --- /dev/null +++ b/build/compile_commands.json @@ -0,0 +1,87 @@ +[ +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/Channel.o -c /root/mymuduo/Channel.cc", + "file": "/root/mymuduo/Channel.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/Timestamp.o -c /root/mymuduo/Timestamp.cc", + "file": "/root/mymuduo/Timestamp.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/TcpConnection.o -c /root/mymuduo/TcpConnection.cc", + "file": "/root/mymuduo/TcpConnection.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/TcpServer.o -c /root/mymuduo/TcpServer.cc", + "file": "/root/mymuduo/TcpServer.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/EventLoopThread.o -c /root/mymuduo/EventLoopThread.cc", + "file": "/root/mymuduo/EventLoopThread.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/Acceptor.o -c /root/mymuduo/Acceptor.cc", + "file": "/root/mymuduo/Acceptor.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/EventLoopThreadPool.o -c /root/mymuduo/EventLoopThreadPool.cc", + "file": "/root/mymuduo/EventLoopThreadPool.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/CurrentThread.o -c /root/mymuduo/CurrentThread.cc", + "file": "/root/mymuduo/CurrentThread.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/Thread.o -c /root/mymuduo/Thread.cc", + "file": "/root/mymuduo/Thread.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/DefaultPoller.o -c /root/mymuduo/DefaultPoller.cc", + "file": "/root/mymuduo/DefaultPoller.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/EPollPoller.o -c /root/mymuduo/EPollPoller.cc", + "file": "/root/mymuduo/EPollPoller.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/Logger.o -c /root/mymuduo/Logger.cc", + "file": "/root/mymuduo/Logger.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/Poller.o -c /root/mymuduo/Poller.cc", + "file": "/root/mymuduo/Poller.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/EventLoop.o -c /root/mymuduo/EventLoop.cc", + "file": "/root/mymuduo/EventLoop.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/InetAddress.o -c /root/mymuduo/InetAddress.cc", + "file": "/root/mymuduo/InetAddress.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/Buffer.o -c /root/mymuduo/Buffer.cc", + "file": "/root/mymuduo/Buffer.cc" +}, +{ + "directory": "/root/mymuduo/build", + "command": "/usr/bin/x86_64-linux-gnu-g++-5 -Dmymuduo_EXPORTS -g -std=c++11 -g -fPIC -o CMakeFiles/mymuduo.dir/Socket.o -c /root/mymuduo/Socket.cc", + "file": "/root/mymuduo/Socket.cc" +} +] \ No newline at end of file diff --git a/lib/libmymuduo.so b/lib/libmymuduo.so new file mode 100644 index 0000000..e32eac3 Binary files /dev/null and b/lib/libmymuduo.so differ diff --git a/noncopyable.h b/noncopyable.h new file mode 100644 index 0000000..191ded6 --- /dev/null +++ b/noncopyable.h @@ -0,0 +1,15 @@ +#pragma once // 防止头文件重复包含 + +/** + * noncopyable被继承后 派生类对象可正常构造和析构 但派生类对象无法进行拷贝构造和赋值构造 + **/ +class noncopyable +{ +public: + noncopyable(const noncopyable &) = delete; + noncopyable &operator=(const noncopyable &) = delete; + // void operator=(const noncopyable &) = delete; // muduo将返回值变为void 这其实无可厚非 +protected: + noncopyable() = default; + ~noncopyable() = default; +}; \ No newline at end of file