From fdbf035619ab2f9e25173bb7361e7e19a52e0fa1 Mon Sep 17 00:00:00 2001 From: Thomas Arcila Date: Sat, 9 Mar 2019 19:00:24 -0500 Subject: [PATCH] Fix capnpc extension handling on Windows On Windows executables needs to end with .exe. Fix this in CMakeLists.txt and update capnp detection code accordingly. --- c++/src/capnp/CMakeLists.txt | 2 +- c++/src/capnp/compiler/capnp.c++ | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/c++/src/capnp/CMakeLists.txt b/c++/src/capnp/CMakeLists.txt index 11cbf5afa..041697466 100644 --- a/c++/src/capnp/CMakeLists.txt +++ b/c++/src/capnp/CMakeLists.txt @@ -182,7 +182,7 @@ if(NOT CAPNP_LITE) install(TARGETS capnp_tool capnpc_cpp capnpc_capnp ${INSTALL_TARGETS_DEFAULT_ARGS}) # Symlink capnpc -> capnp - install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink capnp \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_BINDIR}/capnpc\")") + install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink capnp${CMAKE_EXECUTABLE_SUFFIX} \"\$ENV{DESTDIR}${CMAKE_INSTALL_FULL_BINDIR}/capnpc${CMAKE_EXECUTABLE_SUFFIX}\")") endif() # NOT CAPNP_LITE # Tests ======================================================================== diff --git a/c++/src/capnp/compiler/capnp.c++ b/c++/src/capnp/compiler/capnp.c++ index 8e8c459b2..d252fb12b 100644 --- a/c++/src/capnp/compiler/capnp.c++ +++ b/c++/src/capnp/compiler/capnp.c++ @@ -78,7 +78,7 @@ public: : context(context), disk(kj::newDiskFilesystem()), loader(*this) {} kj::MainFunc getMain() { - if (context.getProgramName().endsWith("capnpc")) { + if (context.getProgramName().endsWith("capnpc") || context.getProgramName().endsWith("capnpc.exe")) { kj::MainBuilder builder(context, VERSION_STRING, "Compiles Cap'n Proto schema files and generates corresponding source code in one or " "more languages.");