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

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 problems
IF(BUILD_TOOL MATCHES "MSVC")
    #we have a lot of codes here
ELSE()
    #we have a lot of codes here
ENDIF()        #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!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章