Cmake can't find Expat library if generator is not "MinGW Makefiles"
My environment:
Windows 7
Clion 2017.3 EAP, build 173.3188.25
CMake (3.10.0-rc2)
I am trying to run simple program on 3 different generators:
-
"CodeBlocks - MinGW Makefiles", with CLion
-
"CodeBlocks - NMake Makefiles", with CLion
-
"Visual Studio 15 2017", with terminal
Why only MinGW work?
cmake_minimum_required(VERSION 3.10)
project(expatTraining)
if (CMAKE_GENERATOR MATCHES "NMake Makefiles")
message(INFO " NMake Makefiles here")
SET(PC_EXPAT_LIBRARY_DIRS "C:/lib/nmake/bin")
SET(PC_EXPAT_INCLUDE_DIRS C:/lib/nmake/include)
list(APPEND CMAKE_MODULE_PATH "C:/lib/nmake/lib")
list(APPEND CMAKE_PREFIX_PATH "C:/lib/nmake/lib")
elseif (CMAKE_GENERATOR MATCHES "^Visual Studio 15 2017")
message(INFO " Visual Studio 15 2017 here")
SET(PC_EXPAT_LIBRARY_DIRS "C:/lib/msvc/bin")
SET(PC_EXPAT_INCLUDE_DIRS C:/lib/msvc/include)
list(APPEND CMAKE_MODULE_PATH "C:/lib/msvc/lib")
list(APPEND CMAKE_PREFIX_PATH "C:/lib/msvc/lib")
elseif (CMAKE_GENERATOR MATCHES "MinGW Makefiles")
message(INFO " MinGW Makefiles here")
SET(PC_EXPAT_LIBRARY_DIRS "C:/lib/mingw/bin")
SET(PC_EXPAT_INCLUDE_DIRS C:/lib/mingw/include)
list(APPEND CMAKE_MODULE_PATH "C:/lib/mingw/lib")
list(APPEND CMAKE_PREFIX_PATH "C:/lib/mingw/lib")
else ()
message(INFO " another generator here")
endif ()
set(CMAKE_CXX_STANDARD 11)
FIND_PACKAGE(Expat REQUIRED)
message(INFO " CMAKE_GENERATOR=${CMAKE_GENERATOR}")
add_executable(expatTraining main.cpp)
target_link_libraries(expatTraining EXPAT::EXPAT)