From f764e1fcb2b23e4fac5579dbfefa18404dcc95b5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 26 Nov 2003 16:38:26 -0500 Subject: [PATCH] ENH: Added undocumented cmake_symlink_library to help with building versioned shared libraries. --- Source/cmake.cxx | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/Source/cmake.cxx b/Source/cmake.cxx index cf713a969a..5a478d0690 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -715,7 +715,33 @@ int cmake::CMakeCommand(std::vector& args) } return 1; - } + } + + // Internal CMake shared library support. + else if (args[1] == "cmake_symlink_library" && args.size() == 5) + { + int result = 0; + std::string realName = args[2]; + std::string soName = args[3]; + std::string name = args[4]; + if(soName != realName) + { + std::string fname = cmSystemTools::GetFilenameName(realName); + if(!cmSystemTools::CreateSymlink(fname.c_str(), soName.c_str())) + { + result = 1; + } + } + if(name != soName) + { + std::string fname = cmSystemTools::GetFilenameName(soName); + if(!cmSystemTools::CreateSymlink(fname.c_str(), name.c_str())) + { + result = 1; + } + } + return 0; + } #if defined(_WIN32) && !defined(__CYGWIN__) // Write registry value