diff --git a/paddle/CMakeLists.txt b/paddle/CMakeLists.txt index 769955490976401ea93ed61987064026829a9f41..694ebb9ba0427012978f112c20c1d40a1fa59a79 100644 --- a/paddle/CMakeLists.txt +++ b/paddle/CMakeLists.txt @@ -9,6 +9,10 @@ add_subdirectory(pserver) add_subdirectory(trainer) add_subdirectory(scripts) +if(${CMAKE_Go_COMPILER}) + add_subdirectory(go) +endif() + find_package(Boost QUIET) if(Boost_FOUND) diff --git a/paddle/go/CMakeLists.txt b/paddle/go/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..482c948a516136928ea3be110c629d865682e551 --- /dev/null +++ b/paddle/go/CMakeLists.txt @@ -0,0 +1,13 @@ +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +go_library(adder SRCS adder.go) + +# cc_test(cgo_test +# SRCS +# cgo_test.cc +# DEPS +# adder) +add_executable(cgo_test cgo_test.cc) +add_dependencies(cgo_test adder) +target_link_libraries(cgo_test ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES} adder) +add_test(cgo_test cgo_test) diff --git a/paddle/go/adder.go b/paddle/go/adder.go new file mode 100644 index 0000000000000000000000000000000000000000..e14f40fd9feb23aa55b71f3c422445b7fbfd827f --- /dev/null +++ b/paddle/go/adder.go @@ -0,0 +1,10 @@ +package main + +import "C" + +//export GoAdder +func GoAdder(x, y int) int { + return x + y +} + +func main() {} // Required but ignored diff --git a/paddle/go/cgo_test.cc b/paddle/go/cgo_test.cc new file mode 100644 index 0000000000000000000000000000000000000000..8d89a92c08a4df411c3e26a197f7df9d15bbeffe --- /dev/null +++ b/paddle/go/cgo_test.cc @@ -0,0 +1,7 @@ +#include "libadder.h" +#include +#include "gtest/gtest.h" + +TEST(Cgo, Invoke) { + EXPECT_EQ(GoAdder(30, 12), 42); +}