I have been trying to use CMake, I've successed to add GLEW but keep fighting against it when I'm trying to add Ultralight.
Ultralight SDK contains 4 .lib and 4 .dll files (I'm trying to use the .lib ones): ultralight Lib folder
Also the header files are in the include folder like this : ultralight include folder
So I've tried this CMakelist.txt :
cmake_minimum_required (VERSION 3.8)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
PROJECT(HumbugEngine)
include(ExternalProject)
find_package(OpenGL REQUIRED)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
#
# Dependencies
#
#
# ULTRALIGHT
#
set(ULTRALIGHTS_DIR_SDK "deps/ultralight")
set(ULTRALIGHT_INCLUDE_DIR "${ULTRALIGHTS_DIR_SDK}/include")
set(ULTRALIGHT_LIBRARY_DIR "${ULTRALIGHTS_DIR_SDK}/lib")
add_library(ultralight STATIC "${ULTRALIGHT_LIBRARY_DIR}/Ultralight.lib")
add_library(ultralightCore STATIC "${ULTRALIGHT_LIBRARY_DIR}/UltralightCore.lib")
add_library(webcore STATIC "${ULTRALIGHT_LIBRARY_DIR}/WebCore.lib")
add_library(appcore STATIC "${ULTRALIGHT_LIBRARY_DIR}/AppCore.lib")
set_target_properties(ultralight PROPERTIES LINKER_LANGUAGE CXX)
set_target_properties(ultralightCore PROPERTIES LINKER_LANGUAGE CXX)
set_target_properties(webcore PROPERTIES LINKER_LANGUAGE CXX)
set_target_properties(appcore PROPERTIES LINKER_LANGUAGE CXX)
#
# GLEW
#
add_definitions(-DGLEW_STATIC)
add_subdirectory(deps/glew EXCLUDE_FROM_ALL)
#
# Headers
#
include_directories(
${PROJECT_SOURCE_DIR}/include
${ULTRALIGHT_INCLUDE_DIR}
)
#
# Sources
#
file(GLOB PROJECT_SOURCES "src/*.cpp")
add_executable(${PROJECT_NAME} ${PROJECT_SOURCES})
target_link_libraries(
${PROJECT_NAME}
${OPENGL_LIBRARIES}
libglew_static
ultralight ultralightCore webcore appcore
)
My build folder looks like this : build image
The build is a success, I don't have any errors but in visual I keep getting
LINK : fatal error LNK1104: cannot open file 'Debug\ultralight.lib'
Thanks for the help, can't find a hint about what I'm doing wrong, I'm a CMake total beginner.
PS: I can't post images because I just created this account :(