The evil CMake -- Compile bug, missing ')', error line number

来源:互联网 发布:sql转义字符 单引号 编辑:程序博客网 时间:2024/05/24 05:52
In case our CMakeLists.txt have following codes:

#following sentence should be wirte as FILE(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} CMakeSrcDir)FILE(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} CMakeSrcDir        #line 34, notice the right paren ')' is missing#the following block of code has no problemsIF(BUILD_TOOL MATCHES "MSVC")    #we have a lot of codes hereELSE()    #we have a lot of codes hereENDIF()        #line 149#this is the end of file



When compile with this source, CMake report errors:  Parse error.  Function missing ending ")".  End of file reached, and give out the error line number is 149. But we looking into line 149, it's quite of simple, and nothing is wrong. As soon as we check the code line by line from down to up, and then reach line 34, finally we notice at here the right paren ')' is missing. The CMake report line 149, something mis-leading us, but why? Because in such case, the CMake compiler treat the entire block of code from line 34 to the end of file as the one sentence, due to the missing of ')'. So CMake did expect the ending should be at line 149. Just take a little care for that!
原创粉丝点击