tanghai 14 лет назад
Родитель
Сommit
6c82acf840

+ 7 - 0
CMakeLists.txt

@@ -0,0 +1,7 @@
+project(Cpp)
+
+cmake_minimum_required(VERSION 2.6)
+
+include_directories(Src)
+
+add_subdirectory(Src)

+ 0 - 52
SConstruct

@@ -1,52 +0,0 @@
-env = DefaultEnvironment()
-
-def ParseOptions():
-	AddOption('--mode',
-		dest='mode',
-		action='store',
-		type='string',
-		default='dbg',
-		help='build in opt mode, default dbg mode')
-	AddOption("--ntest",
-		action="store_true",
-		dest="ntest",
-		default=False,
-		help="dont build test")
-
-ParseOptions()
-
-env.Append(LIBS=[
-	'gflags',
-	'glog',
-])
-
-if GetOption('mode') == 'opt':
-	env['MODE'] = 'Opt'
-	env.Append(CCFLAGS='-O2 -g')
-	env.Append(LIBS='tcmalloc')
-else:
-	env['MODE'] = 'Dbg'
-	env.Append(CCFLAGS='-g')
-	env.Append(LIBS='tcmalloc_debug')
-
-env['NTEST'] = GetOption('ntest')
-
-env.Append(CPPPATH=Dir(env['MODE']).abspath)
-
-def Test(test_env, target, source):
-	if test_env['NTEST']:
-		return
-	local_env = test_env.Clone()
-	local_env.Append(LIBS=[
-		'gtest',
-		'gmock',
-	])
-	test_target = local_env.Program(target, source)
-	return test_target
-
-env.AddMethod(Test, 'Test')
-
-Export('env')
-
-SConscript('Src/SConscript', variant_dir=env['MODE'], duplicate=0)
-

+ 2 - 0
Src/CMakeLists.txt

@@ -0,0 +1,2 @@
+add_subdirectory(Python)
+add_subdirectory(Thread)

+ 10 - 0
Src/Python/CMakeLists.txt

@@ -0,0 +1,10 @@
+add_executable(PythonInitTest PythonInitTest.cc)
+
+include_directories(/usr/include/python2.5)
+
+target_link_libraries(PythonInitTest
+    gtest
+    glog
+    boost_python
+    python2.5
+)

+ 0 - 14
Src/Python/SConscript

@@ -1,14 +0,0 @@
-Import('env')
-
-python_env = env.Clone()
-
-python_env.Append(LIBS=[
-	"boost_python",
-	"python2.6",
-])
-
-python_env.Append(CPPPATH=[
-	"/usr/include/python2.6"
-])
-
-python_env.Test("PythonInitTest", "PythonInitTest.cc")

+ 0 - 9
Src/SConscript

@@ -1,9 +0,0 @@
-Import('env')
-
-subdirs = [
-	"Thread",
-	"Python",
-]
-
-for subdir in subdirs:
-	SConscript('%s/SConscript' % subdir)

+ 12 - 0
Src/Thread/CMakeLists.txt

@@ -0,0 +1,12 @@
+set(ThreadSrc ThreadPool.cc)
+
+add_library(Thread ${ThreadSrc})
+
+add_executable(ThreadPoolTest ThreadPoolTest.cc)
+
+target_link_libraries(ThreadPoolTest
+    Thread
+    gtest
+    glog
+    boost_thread
+)

+ 0 - 17
Src/Thread/SConscript

@@ -1,17 +0,0 @@
-Import('env')
-
-thread_env = env.Clone()
-
-thread_env.Append(LIBS=[
-	'boost_thread'
-])
-
-thread_src = [
-	'ThreadPool.cc',
-]
-
-thread_lib = thread_env.StaticLibrary('thread', thread_src)
-
-thread_env.Append(LIBS=thread_lib)
-
-thread_env.Test('ThreadPoolTest', 'ThreadPoolTest.cc')

+ 4 - 5
Src/Thread/ThreadPool.h

@@ -6,11 +6,10 @@
 #include <boost/function.hpp>
 #include <boost/detail/atomic_count.hpp>
 #include "Base/Base.h"
-#include "Thread/ThreadPoolIf.h"
 
 namespace Egametang {
 
-class ThreadPool: public ThreadPoolIf, private boost::noncopyable
+class ThreadPool: private boost::noncopyable
 {
 private:
 	int thread_num_;
@@ -27,9 +26,9 @@ public:
 	ThreadPool(int num = 0);
 	~ThreadPool();
 
-	void Start();
-	void Stop();
-	bool PushTask(boost::function<void (void)> task);
+	virtual void Start();
+	virtual void Stop();
+	virtual bool PushTask(boost::function<void (void)> task);
 };
 
 } // namespace Egametang

+ 0 - 19
Src/Thread/ThreadPoolIf.h

@@ -1,19 +0,0 @@
-#ifndef THREAD_THREAD_POOL_IF_H
-#define THREAD_THREAD_POOL_IF_H
-
-namespace Egametang {
-
-class ThreadPoolIf
-{
-public:
-    virtual void Start()
-    {};
-    virtual void Stop()
-    {};
-    virtual bool PushTask(boost::function<void (void)> task)
-    {};
-};
-
-} // namespace Egametang
-
-#endif // THREAD_THREAD_POOL_IF_H

+ 12 - 0
Src/Thread/ThreadPoolMock.h

@@ -0,0 +1,12 @@
+#ifndef THREAD_THREAD_POOL_MOCK_H
+#define THREAD_THREAD_POOL_MOCK_H
+
+namespace Egametang {
+
+class ThreadPoolMock
+{
+};
+
+} // namespace Egametang
+
+#endif // THREAD_THREAD_POOL_MOCK_H