From 5f38c0da8a93d0b104aa0568de26786cd6c1bf60 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Sun, 23 Dec 2018 19:43:32 -0800 Subject: [PATCH] cmake: static: check for link file when editing When trying to do the necessary edits to linklibs.rsp or link.txt for static linking, first check if the files were created by cmake, otherwise a fatal error is generated. --- src/wx/link-static.cmake | 10 +++++++--- src/wx/msys-link-static.cmake | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/wx/link-static.cmake b/src/wx/link-static.cmake index 01656053..3720b336 100644 --- a/src/wx/link-static.cmake +++ b/src/wx/link-static.cmake @@ -1,5 +1,9 @@ -file(READ CMakeFiles/visualboyadvance-m.dir/link.txt link_cmd) +set(link_cmd_file CMakeFiles/visualboyadvance-m.dir/link.txt) -string(REGEX REPLACE "-l(z|expat|X[^ ]+|xcb[^ ]*) " "-Wl,--whole-archive -l\\1 -Wl,--no-whole-archive " link_cmd ${link_cmd}) +if(EXISTS ${link_cmd_file}) + file(READ ${link_cmd_file} link_cmd) -file(WRITE CMakeFiles/visualboyadvance-m.dir/link.txt ${link_cmd}) + string(REGEX REPLACE "-l(z|expat|X[^ ]+|xcb[^ ]*) " "-Wl,--whole-archive -l\\1 -Wl,--no-whole-archive " link_cmd ${link_cmd}) + + file(WRITE ${link_cmd_file} ${link_cmd}) +endif() diff --git a/src/wx/msys-link-static.cmake b/src/wx/msys-link-static.cmake index a5881a1f..4850e3b3 100644 --- a/src/wx/msys-link-static.cmake +++ b/src/wx/msys-link-static.cmake @@ -1,5 +1,9 @@ -file(READ CMakeFiles/visualboyadvance-m.dir/linklibs.rsp link_libs) +set(link_cmd_file CMakeFiles/visualboyadvance-m.dir/linklibs.rsp) -string(REPLACE "-Wl,-Bdynamic" "" link_libs ${link_libs}) +if(EXISTS ${link_cmd_file}) + file(READ ${link_cmd_file} link_libs) -file(WRITE CMakeFiles/visualboyadvance-m.dir/linklibs.rsp ${link_libs}) + string(REPLACE "-Wl,-Bdynamic" "" link_libs ${link_libs}) + + file(WRITE ${link_cmd_file} ${link_libs}) +endif()