Quoting Philip Lowman <[EMAIL PROTECTED]>:

I'm trying to figure out how to use FILE(READ) coupled with some other
CMake call to split a text file into multiple lines that ultimately end
up in a CMake List.

The goal is to get all of the lines into a CMake list so I can iterate
through it with FOREACH() and process each line separately.

I was wondering if anyone has any ideas on how to do this?

I don't know how to achieve that using only CMake.

I tried to do the same because I wanted to have a "make uninstall" target in my projects and I had to resort to the shell. AFAIK you can group the platforms CMake supports in two groups: Windows (where you have to script cmd.exe) and all the others (which have a bsh-compatible shell).

This is the code I am using in my "make uninstall", you can probably use it as a starting point:


#
# Create a "make uninstall" target
#
# Prototype:
#    GENERATE_UNINSTALL_TARGET()
# Parameters:
#    (none)

# Unix version works with any SUS-compliant operating system, as it needs only Bourne Shell features # Win32 version works with any Windows which supports extended cmd.exe syntax (Windows NT 4.0 and newer, maybe Windows NT 3.x too).

MACRO(GENERATE_UNINSTALL_TARGET)
ADD_TO_DISTCLEAN( ${PROJECT_BINARY_DIR}/uninstall.dir )
IF(WIN32)
 ADD_CUSTOM_TARGET(uninstall
\"FOR /F \"tokens=1* delims= \" %%f IN \(${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt"}\)\" DO \(
                 IF EXIST %%f \(
                        del /q /f %%f"
                \) ELSE \(
echo Problem when removing %%f - Probable causes: File already removed or not enough permissions
                \)
                \) VERBATIM
        )
ELSE(WIN32)
    # Unix
ADD_CUSTOM_TARGET(uninstall cat "${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt" | while read f \; do if [ -e \"\$\${f}\" ]; then rm \"\$\${f}\" \; else echo \"Problem when removing \"\$\${f}\" - Probable causes: File already removed or not enough permissions\" \; fi\; done COMMENT Uninstalling... )
ENDIF(WIN32)
ENDMACRO(GENERATE_UNINSTALL_TARGET)

--
Pau Garcia i Quiles
http://www.elpauer.org
(Due to the amount of work, I usually need 10 days to answer)



_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to