diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt new file mode 100644 index 0000000..00899c6 --- /dev/null +++ b/cmake/CMakeLists.txt @@ -0,0 +1,35 @@ +project(capnproto-java) + +cmake_minimum_required(VERSION 3.9) + +find_package(PkgConfig REQUIRED) + +set(CMAKE_CXX_STANDARD 11) +set(CAPNPC_JAVA_SOURCES ../compiler/src/main/cpp/capnpc-java.c++) + +if(CAPNP_PKG_PATH) + set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${CAPNP_PKG_PATH}") +else() + find_path(CAPNP_PKG_PATH_VAR "capnp/lib/pkgconfig" HINTS ${CAPNP_PKG_PATH}) + set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${CAPNP_PKG_PATH_VAR}") +endif() + +pkg_search_module(PKG_CAPNP REQUIRED capnp) + +if(PKG_CAPNP_FOUND) + message(STATUS "Capnp found!") + add_executable(capnpc-java + ${CAPNPC_JAVA_SOURCES} + ) + + target_include_directories(capnpc-java + PRIVATE + ${PKG_CAPNP_INCLUDE_DIRS} + ) + + target_link_libraries(capnpc-java + ${PKG_CAPNP_LDFLAGS} + ) +else() + message(FATAL_ERROR "Capnp not found!") +endif() diff --git a/cmake/README.md b/cmake/README.md new file mode 100644 index 0000000..cd8e301 --- /dev/null +++ b/cmake/README.md @@ -0,0 +1,16 @@ +# capnproto-java cmake build + +Of course, capnproto needs to be pre-installed somewhere. + +## Using cmake + +mkdir build +cd build +cmake -DCAPNP_PKG_PATH=[path of Capnproto pkgconfig directory (with capnp.pc)] [path of CMakeLists.txt] + +## Using ccmake gui + +mkdir build +cd build +ccmake [path of CMakeLists.txt] +.. set pkgconfig path manually