Use “^.*” at the beginning of the regex and “.*$” at the end of it.

 

The ^ and $ anchor the beginning and end of the input string in CMake, not the 
beginning and end of a line.

 

 

From: Andreas Schneider
Sent: ‎March‎ ‎18‎, ‎2013 ‎1‎:‎57‎ ‎PM
To: cmake@cmake.org
Subject: [CMake] REGEX REPLACE help


Hi,

I'm trying to improve the FindJNI.cmake module. However I'm totally 
incompatible with regex. I think my brain is simply not made for it.

I'm trying to get the correct path from java itself so find the header and 
library files. However this code will simply not work at all. I'm trying since 
hours...

# openjdk
find_program(JAVA_EXE java)
if (JAVA_EXE)
    execute_process(
        COMMAND ${JAVA_EXE} -XshowSettings:properties
        OUTPUT_QUIET
        ERROR_VARIABLE __JAVA_SETTINGS
        ERROR_STRIP_TRAILING_WHITESPACE
    )

    string(REGEX REPLACE "^ *java.home = (.+)/jre$" "\\1" _JAVA_LIBRARY_PATH 
"${__JAVA_SETTINGS}")
    message(STATUS "_JAVA_LIBRARY_PATH=${_JAVA_LIBRARY_PATH}")
endif()

This is the output of ${JAVA_EXE} -XshowSettings:properties:

Property settings:
    awt.toolkit = sun.awt.X11.XToolkit
    file.encoding = UTF-8
    file.encoding.pkg = sun.io
    file.separator = /
    java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
    java.awt.printerjob = sun.print.PSPrinterJob
    java.class.path = .
    java.class.version = 51.0
    java.endorsed.dirs = /usr/lib64/jvm/java-1.7.0-
openjdk-1.7.0/jre/lib/endorsed
    java.ext.dirs = /usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/jre/lib/ext
        /usr/java/packages/lib/ext
    java.home = /usr/lib64/jvm/java-1.7.0-openjdk-1.7.0/jre
    java.io.tmpdir = /tmp
    java.library.path = /usr/java/packages/lib/amd64
        /usr/lib64
        /lib64
        /lib
        /usr/lib
    java.runtime.name = OpenJDK Runtime Environment



Thanks for the help.


 -- andreas


-- 
Andreas Schneider                   GPG-ID: F33E3FC6
www.cryptomilk.org                a...@cryptomilk.org

--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to