diff --git a/3rd_party/easy3d/viewer/CMakeLists.txt b/3rd_party/easy3d/viewer/CMakeLists.txt index e58de2e..dd8c53f 100644 --- a/3rd_party/easy3d/viewer/CMakeLists.txt +++ b/3rd_party/easy3d/viewer/CMakeLists.txt @@ -80,12 +80,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${ADTREE_easy3d_INCLUDE_DIR}) target_include_directories(${PROJECT_NAME} PRIVATE ${ADTREE_glew_INCLUDE_DIR}) target_include_directories(${PROJECT_NAME} PRIVATE ${ADTREE_glfw_INCLUDE_DIR}) -set (OpenGL_GL_PREFERENCE GLVND) -find_package(OpenGL REQUIRED) -message(STATUS "OpenGL libraries: ${OPENGL_LIBRARIES}") -target_compile_definitions(${PROJECT_NAME} PRIVATE GLEW_STATIC) -target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES} 3rd_glew 3rd_glfw easy3d_core easy3d_util easy3d_fileio 3rd_tinyfiledialogs) - +target_link_libraries(${PROJECT_NAME} PUBLIC 3rd_glew 3rd_glfw easy3d_core easy3d_util easy3d_fileio 3rd_tinyfiledialogs) if (MSVC) target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_DEPRECATE) diff --git a/3rd_party/glew/CMakeLists.txt b/3rd_party/glew/CMakeLists.txt index 9bf9b44..63da7de 100755 --- a/3rd_party/glew/CMakeLists.txt +++ b/3rd_party/glew/CMakeLists.txt @@ -29,13 +29,14 @@ file(STRINGS ${GLEW_DIR}/config/version _VERSION_PATCH_STRING REGEX "GLEW_MICRO[ string(REGEX REPLACE "GLEW_MICRO[ ]*=[ ]*([0-9]+)" "\\1" CPACK_PACKAGE_VERSION_PATCH ${_VERSION_PATCH_STRING}) set(GLEW_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) -if (NOT GLEW_CUSTOM_OUTPUT_DIRS) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) -endif () - -find_package(OpenGL REQUIRED) +if(WIN32 OR MSVC OR APPLE) + find_package(OpenGL COMPONENTS OpenGL REQUIRED) + set(GLEW_LIBRARIES ${OPENGL_gl_LIBRARY}) +else() # == if(UNIX AND NOT APPLE) + set(OpenGL_GL_PREFERENCE GLVND) + find_package(OpenGL COMPONENTS OpenGL GLX REQUIRED) + set(GLEW_LIBRARIES ${OPENGL_opengl_LIBRARY} ${OPENGL_glx_LIBRARY}) +endif() # cmake<3.10 doesn't detect EGL/GLX if (CMAKE_VERSION VERSION_LESS 3.10) @@ -45,13 +46,6 @@ if (CMAKE_VERSION VERSION_LESS 3.10) endif () endif () -# prefer GLVND -if (OPENGL_opengl_LIBRARY) - set(GLEW_LIBRARIES ${OPENGL_opengl_LIBRARY}) -else () - set(GLEW_LIBRARIES ${OPENGL_gl_LIBRARY}) -endif () - # X11 required except for Windows and Apple OSX platforms if (GLEW_X11 AND NOT WIN32 AND NOT APPLE) find_package(X11) @@ -76,4 +70,4 @@ endif () target_compile_definitions(${PROJECT_NAME} PUBLIC GLEW_NO_GLU) target_include_directories(${PROJECT_NAME} PRIVATE ${GLEW_DIR}/include ${X11_INCLUDE_DIR}) -target_link_libraries(${PROJECT_NAME} LINK_PUBLIC ${GLEW_LIBRARIES}) \ No newline at end of file +target_link_libraries(${PROJECT_NAME} LINK_PUBLIC ${GLEW_LIBRARIES}) diff --git a/AdTree/CMakeLists.txt b/AdTree/CMakeLists.txt index bc0cd64..4d3dfa6 100755 --- a/AdTree/CMakeLists.txt +++ b/AdTree/CMakeLists.txt @@ -80,12 +80,7 @@ target_include_directories(${PROJECT_NAME} PRIVATE ${ADTREE_kd_tree_INCLUDE_DIR} target_include_directories(${PROJECT_NAME} PRIVATE ${ADTREE_lm_INCLUDE_DIR}) target_compile_definitions(${PROJECT_NAME} PRIVATE GLEW_STATIC) - -#set (OpenGL_GL_PREFERENCE GLVND) -find_package(OpenGL REQUIRED) -message(STATUS "OpenGL libraries: ${OPENGL_LIBRARIES}") -target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES} 3rd_imgui easy3d_algo easy3d_viewer 3rd_tetgen 3rd_kd_tree 3rd_cminpack 3rd_optimizer_lm) - +target_link_libraries(${PROJECT_NAME} PRIVATE 3rd_imgui easy3d_algo easy3d_viewer 3rd_tetgen 3rd_kd_tree 3rd_cminpack 3rd_optimizer_lm) find_package(Boost REQUIRED) # It's "Boost", not "BOOST" or "boost". Case matters. target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})