[cmake-developers] [CMake] Windows rpath emulation
Nils Gladitz
nilsgladitz at gmail.com
Tue Sep 23 03:05:57 EDT 2014
On 09/20/2014 11:53 PM, Nils Gladitz wrote:
> On 20.09.2014 23:31, Roland Schulz wrote:
>> it would be nice if there were a way to emulate rpath under Windows.
>> As far as I can see there are two possible approaches:
>> - Generate a shell script which sets PATH
>> - Generate a manifest for the application and a manifest for the
>> dependencies.
>> http://sourceforge.net/p/mingw-w64/mailman/message/30019971/ has an
>> example of how to do it.
So I am thinking opt-in (target property) wrapper binaries that take the
place of the actual binaries.
e.g.
# Initializes ENABLE_EXECUTABLE_WRAPPER target property
set(CMAKE_ENABLE_EXECUTABLE_WRAPPER ON)
add_executable(foo foo.cpp)
Could produce
foo.exe.real # Actual target binary
foo.exe.wrapper # CMake generated configuration file
foo.exe # Wrapper binary that reads "foo.exe.wrapper",
sets up the environment and runs "foo.exe.real"
COMMANDs (add_custom_command()/add_custom_target()/add_test()) could
transparently call foo.exe (like they would have done without the wrapper).
install(TARGETS) should ignore the wrapper and transparently install and
rename the real binary.
$<TARGET_FILE> should continue to point at the real binary.
A new $<TARGET_WRAPPER> could point at the wrapper binary.
The wrapper binary itself could be precompiled and included with cmake
itself. It would determine which configuration to read and which binary
to run by inspecting its own name.
I primarily had windows native builds in mind.
Are there additional use cases?
Nils
More information about the cmake-developers
mailing list