Dzisiaj zaktualizowałem CMake na wersje 3,10
find_library funkcja przestała działać jak wcześniej działała.
poprzednio używałem jej w nastepujący sposób:
find_library(GLEW glew32 C:/msys64/mingw64/lib/)
a nastepnie można było dołaczyć do programu
target_link_libraries(One_Triangle GLEW32)
Sprawdzałem zmienną
message("------${GLFW3} ------------")
zwraca ------GLFW3-NOTFOUND -------------
Próbowałem
find_library(GLFW NAMES libglfw3.a PATHS C:/msys64/mingw64/lib/libglfw3)
to samo
jeżeli jednak zrobie tak:
target_link_libraries(One_Triangle libglfw3.a)
to działa.
Z tego co czytałem "Modern way" w CMake > 3.6 należy dodawać w taki sposób:
add_library(OPENGL STATIC IMPORTED)
set_target_properties(OPENGL PROPERTIES
IMPORTED_LOCATION "C:/msys64/usr/lib/w32api/libopengl32.a"
)
i potem
target_link_libraries(One_Triangle OPENGL)
to działa tylko dla biblioteki : libopengl32.a gdy chciałem powtórzyć to z libglfw3.a oraz libglew32.a nie może odnaleźć referencji.
CAŁOŚĆ:
cmake_minimum_required(VERSION 3.0.0)
project(One_Triangle VERSION 0.0.0)
include(CTest)
include_directories(C:/msys64/mingw64/include)
include_directories(/src)
include_directories(/src/vendor/stb_image)
include_directories(/src/vendor/glm)
link_directories(C:/msys64/usr/lib/w32api/)
link_directories(C:/msys64/mingw64/lib/)
add_library(OPENGL STATIC IMPORTED)
set_target_properties(OPENGL PROPERTIES
IMPORTED_LOCATION "C:/msys64/usr/lib/w32api/libopengl32.a"
)
# find_library(OPENGL opengl32)
find_library(GLFW NAMES libglfw3.a PATHS C:/msys64/mingw64/lib/libglfw3)
# find_library(GLEW glew32 C:/msys64/mingw64/lib/)
add_definitions(-DGLEW_STATIC)
add_definitions(-D_WIN32=1)
add_definitions(-Dfpermissive)
set(SOURCE_DIR src/)
set(SOURCE
${SOURCE_DIR}VertexBuffer.cpp
${SOURCE_DIR}IndexBuffer.cpp
${SOURCE_DIR}VertexArray.cpp
${SOURCE_DIR}VertexBufferLayout.cpp
${SOURCE_DIR}Shader.cpp
${SOURCE_DIR}Renderer.cpp
${SOURCE_DIR}DisplayManager.cpp
${SOURCE_DIR}RawModel.cpp
${SOURCE_DIR}Loader.cpp
${SOURCE_DIR}vendor/stb_image/stb_image.cpp
${SOURCE_DIR}Texture.cpp
${SOURCE_DIR}TexturedModel.cpp
${SOURCE_DIR}ResourceManager.cpp
${SOURCE_DIR}LineSegment.cpp
${SOURCE_DIR}Grid.cpp
${SOURCE_DIR}TextureWrapper.cpp
${SOURCE_DIR}EventDispatcher.cpp
${SOURCE_DIR}TimerListener.cpp
${SOURCE_DIR}Timer.cpp
)
# ${OPENGL} ${GLFW3} ${GLEW}
add_executable(One_Triangle main.cpp ${SOURCE})
# message("======${OPENGL} ===========")
# message("------${GLFW3} ------------")
# message("------${GLEW} -------------")
target_link_libraries(One_Triangle libglfw3.a)
target_link_libraries(One_Triangle OPENGL)
target_link_libraries(One_Triangle libglew32.a)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
Proszę o każdą podpowiedź