ENH: Configure location of plugin files so that the executable can run with any current working directory.

This commit is contained in:
Brad King 2007-04-17 13:52:50 -04:00
parent aabcf981e2
commit c1a6e4dcc6
3 changed files with 16 additions and 1 deletions

View File

@ -11,6 +11,13 @@ SET(KWSYS_NAMESPACE kwsys)
SET(KWSYS_HEADER_ROOT ${Plugin_BINARY_DIR}/include)
SET(KWSYS_USE_DynamicLoader 1)
ADD_SUBDIRECTORY(${Plugin_SOURCE_DIR}/../../Source/kwsys src/kwsys)
# Configure the location of plugins.
CONFIGURE_FILE(${Plugin_SOURCE_DIR}/src/example_exe.h.in
${Plugin_BINARY_DIR}/include/example_exe.h @ONLY)
# We need to include headers from the source tree and configured
# headers in the build tree.
INCLUDE_DIRECTORIES(
${Plugin_BINARY_DIR}/include
${Plugin_SOURCE_DIR}/include

View File

@ -1,5 +1,7 @@
#include <example.h>
#include <example_exe.h>
#include <kwsys/DynamicLoader.hxx>
#include <kwsys/ios/iostream>
#include <kwsys/stl/string>
@ -21,7 +23,7 @@ extern "C" int example_exe_function()
int main()
{
kwsys_stl::string libName = "lib/plugin" CONFIG_DIR "/";
kwsys_stl::string libName = EXAMPLE_EXE_PLUGIN_DIR CONFIG_DIR "/";
libName += kwsys::DynamicLoader::LibPrefix();
libName += "example_mod_1";
libName += kwsys::DynamicLoader::LibExtension();

View File

@ -0,0 +1,6 @@
#ifndef example_exe_h
#define example_exe_h
#define EXAMPLE_EXE_PLUGIN_DIR "@CMAKE_LIBRARY_OUTPUT_DIRECTORY@"
#endif