On Dec 30, 2011, at 8:05 PM, Michael Hertling wrote:

On 12/28/2011 05:39 PM, Belcourt, K. Noel wrote:
Hi Aaron,

On Dec 27, 2011, at 11:04 PM, Aaron Ten Clay wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 12/27/11 16:16, Belcourt, Kenneth wrote:
I'm trying to get CMake to execute this command

INSTALL(CODE
"EXECUTE_PROCESS (COMMAND cat
\"${CMAKE_CURRENT_SOURCE_DIR}/onejar_classpath.txt >>
${CMAKE_INSTALL_PREFIX}/onejar/boot-manifest.mf\")"
)

but this doesn't work, here's the error I get when I run the install.

I've checked that both the source and target files exist and are
writable. Any ideas on how to get this to work?

It looks as thought you might be missing some escaped double-quotes.

I've tried quite a few quoting permutations, none work.

INSTALL(CODE
"EXECUTE_PROCESS (COMMAND cat
\"${CMAKE_CURRENT_SOURCE_DIR}/onejar_classpath.txt\" >>
\"${CMAKE_INSTALL_PREFIX}/onejar/boot-manifest.mf\")"
)

Unfortunately this doesn't work.

AFAIK, this is because EXECUTE_PROCESS() doesn't fork a shell to run
the COMMANDs, so the redirection operators like ">>" are meaningless.

It's also worth noting that this is not a cross-platform command.

Yup, we're a unix only shop.

Then use one of the premier *nix tools:

INSTALL(CODE "EXECUTE_PROCESS(COMMAND sh -c \"cat
\\\"${CMAKE_CURRENT_SOURCE_DIR}/onejar_classpath.txt\\\" >>
\\\"${CMAKE_INSTALL_PREFIX}/onejar/boot-manifest.mf\\\"\")")

Eek, that's a lot of quoting. I found a workaround but thanks for this, I may use it if opportunity arises in the future. Perhaps this:

AFAIK, this is because EXECUTE_PROCESS() doesn't fork a shell to run
the COMMANDs, so the redirection operators like ">>" are meaningless.

could be entered into the documentation somewhere as this is important to know. Thanks for the help Michael.

-- Noel


--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to