diff options
-rw-r--r-- | Modules/CMakeJavaCompiler.cmake.in | 2 | ||||
-rw-r--r-- | Modules/CMakeJavaInformation.cmake | 1 | ||||
-rw-r--r-- | Source/cmLocalUnixMakefileGenerator.cxx | 15 |
3 files changed, 15 insertions, 3 deletions
diff --git a/Modules/CMakeJavaCompiler.cmake.in b/Modules/CMakeJavaCompiler.cmake.in index c0dc075..0c3eaf6 100644 --- a/Modules/CMakeJavaCompiler.cmake.in +++ b/Modules/CMakeJavaCompiler.cmake.in @@ -6,3 +6,5 @@ SET(CMAKE_Java_COMPILER_LOADED 1) SET(CMAKE_Java_SOURCE_FILE_EXTENSIONS java) SET(CMAKE_Java_LINKER_PREFERENCE Prefered) SET(CMAKE_Java_OUTPUT_EXTENSION .class) +SET(CMAKE_STATIC_LIBRARY_PREFIX_Java "") +SET(CMAKE_STATIC_LIBRARY_SUFFIX_Java ".jar") diff --git a/Modules/CMakeJavaInformation.cmake b/Modules/CMakeJavaInformation.cmake index d9a8a31..b890694 100644 --- a/Modules/CMakeJavaInformation.cmake +++ b/Modules/CMakeJavaInformation.cmake @@ -1,5 +1,4 @@ # this is a place holder if java needed flags for javac they would go here. -SET(CMAKE_STATIC_LIBRARY_SUFFIX_Java ".jar") IF(NOT CMAKE_Java_CREATE_STATIC_LIBRARY) SET(CMAKE_Java_CREATE_STATIC_LIBRARY "<CMAKE_Java_ARCHIVE> -cf <TARGET> *.class") diff --git a/Source/cmLocalUnixMakefileGenerator.cxx b/Source/cmLocalUnixMakefileGenerator.cxx index 0dab6bf..1131e83 100644 --- a/Source/cmLocalUnixMakefileGenerator.cxx +++ b/Source/cmLocalUnixMakefileGenerator.cxx @@ -342,8 +342,19 @@ std::string cmLocalUnixMakefileGenerator::GetBaseTargetName(const char* n, } // if there is no prefix on the target use the cmake definition if(!targetPrefix && prefixVar) - { - targetPrefix = m_Makefile->GetSafeDefinition(prefixVar); + { + // first check for a language specific suffix var + const char* ll = t.GetLinkerLanguage(this->GetGlobalGenerator()); + if(ll) + { + std::string langPrefix = prefixVar + std::string("_") + ll; + targetPrefix = m_Makefile->GetDefinition(langPrefix.c_str()); + } + // if there not a language specific suffix then use the general one + if(!targetPrefix) + { + targetPrefix = m_Makefile->GetSafeDefinition(prefixVar); + } } std::string name = pathPrefix + (targetPrefix?targetPrefix:""); name += n; |