adding/fixing version suffix for desktop java library on all OSes

This commit is contained in:
Andrey Pavlenko
2013-02-18 11:23:44 +04:00
parent 2304d5367f
commit 5321da92cb
2 changed files with 29 additions and 10 deletions

View File

@@ -217,6 +217,12 @@ endif(ANDROID AND ANDROID_EXECUTABLE)
set(step3_depends ${step2_depends} ${step3_input_files} ${copied_files}) set(step3_depends ${step2_depends} ${step3_input_files} ${copied_files})
if(ANDROID)
set(LIB_NAME_SUFIX "")
else()
set(LIB_NAME_SUFIX "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
endif()
# step 4: build jar # step 4: build jar
if(ANDROID) if(ANDROID)
set(JAR_FILE "${OpenCV_BINARY_DIR}/bin/classes.jar") set(JAR_FILE "${OpenCV_BINARY_DIR}/bin/classes.jar")
@@ -241,7 +247,7 @@ if(ANDROID)
) )
endif() endif()
else(ANDROID) else(ANDROID)
set(JAR_NAME opencv-${OPENCV_VERSION}.jar) set(JAR_NAME opencv-${LIB_NAME_SUFIX}.jar)
set(JAR_FILE "${OpenCV_BINARY_DIR}/bin/${JAR_NAME}") set(JAR_FILE "${OpenCV_BINARY_DIR}/bin/${JAR_NAME}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build.xml.in" "${OpenCV_BINARY_DIR}/build.xml" IMMEDIATE @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build.xml.in" "${OpenCV_BINARY_DIR}/build.xml" IMMEDIATE @ONLY)
list(APPEND step3_depends "${OpenCV_BINARY_DIR}/build.xml") list(APPEND step3_depends "${OpenCV_BINARY_DIR}/build.xml")
@@ -294,8 +300,8 @@ endif()
# Additional target properties # Additional target properties
set_target_properties(${the_module} PROPERTIES set_target_properties(${the_module} PROPERTIES
OUTPUT_NAME "${the_module}${OPENCV_DLLVERSION}" OUTPUT_NAME "${the_module}${LIB_NAME_SUFIX}"
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}" #DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH} ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH}
RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH} RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH}
INSTALL_NAME_DIR ${OPENCV_LIB_INSTALL_PATH} INSTALL_NAME_DIR ${OPENCV_LIB_INSTALL_PATH}

View File

@@ -559,6 +559,15 @@ func_arg_fix = {
}, # '', i.e. no class }, # '', i.e. no class
} # func_arg_fix } # func_arg_fix
def getLibVersion(version_hpp_path):
version_file = open(version_hpp_path, "rt").read()
epoch = re.search("^W*#\W*define\W+CV_VERSION_EPOCH\W+(\d+)\W*$", version_file, re.MULTILINE).group(1)
major = re.search("^W*#\W*define\W+CV_VERSION_MAJOR\W+(\d+)\W*$", version_file, re.MULTILINE).group(1)
minor = re.search("^W*#\W*define\W+CV_VERSION_MINOR\W+(\d+)\W*$", version_file, re.MULTILINE).group(1)
patch = re.search("^W*#\W*define\W+CV_VERSION_REVISION\W+(\d+)\W*$", version_file, re.MULTILINE).group(1)
return (epoch, major, minor, patch)
class ConstInfo(object): class ConstInfo(object):
def __init__(self, cname, name, val, addedManually=False): def __init__(self, cname, name, val, addedManually=False):
self.cname = cname self.cname = cname
@@ -721,13 +730,17 @@ $imports
public class %(jc)s { public class %(jc)s {
""" % { 'm' : self.module, 'jc' : jname } ) """ % { 'm' : self.module, 'jc' : jname } )
# self.java_code[class_name]["jn_code"].write(""" if class_name == 'Core':
# // (epoch, major, minor, patch) = getLibVersion(
# // native stuff (os.path.dirname(__file__) or '.') + '/../../core/include/opencv2/core/version.hpp')
# // version_str = '.'.join( (epoch, major, minor, patch) )
# static { System.loadLibrary("opencv_java"); } version_suffix = ''.join( (epoch, major, minor) )
#""" ) #if version_suffix.endswith('0'):
# version_suffix = version_suffix[0 : -1]
self.classes[class_name].imports.add("java.lang.String")
self.java_code[class_name]["j_code"].write("""
public static final String VERSION = "%(v)s", VERSION_SUFFIX = "%(vs)s";
""" % { 'v' : version_str, 'vs' : version_suffix } )
def add_class(self, decl): def add_class(self, decl):