cmake hassle

This commit is contained in:
IlyaShurupov 2024-06-27 16:14:19 +03:00
parent 15127c5122
commit 407e4fb474
10 changed files with 115 additions and 110 deletions

44
Externals/CMakeExternals.cmake vendored Normal file
View file

@ -0,0 +1,44 @@
# find_package(ALSA REQUIRED)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
message("Configuring for windows...")
message("Libraries path is - ${WINDOWS_LIBRARIES}")
set(CMAKE_PREFIX_PATH "${WINDOWS_LIBRARIES}")
endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/Externals")
set(IMGUI_SRC_DIR "${CMAKE_SOURCE_DIR}/Externals/imgui")
set(OpenGL_GL_PREFERENCE LEGACY)
#set(OIDN_DEVICE_CPU ON)
#set(OIDN_STATIC_LIB ON)
#add_subdirectory(oidn)
find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)
find_package(PortAudio REQUIRED)
find_package(OpenImageDenoise REQUIRED)
find_package(ImGui REQUIRED)
find_package(Lua REQUIRED)
find_package(glfw3 REQUIRED)
#add_subdirectory(unittest-cpp)
add_subdirectory(Externals/lalr)
target_compile_options(UnitTest++ PUBLIC -Wno-error)
#add_subdirectory(Externals/glfw)
project(Nanovg)
set(${PROJECT_NAME}_SOURCES
Externals/nanovg/src/nanovg.c
)
add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}_SOURCES})
target_include_directories(${PROJECT_NAME} PUBLIC ./Externals/nanovg/src/ ./Externals/nanovg/obsolete/)
project(ImageIO)
add_library(${PROJECT_NAME} INTERFACE)
target_include_directories(${PROJECT_NAME} INTERFACE ./Externals/imageIO/)

View file

@ -1,94 +0,0 @@
# find_package(ALSA REQUIRED)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
message("Configuring for windows...")
message("Libraries path is - ${WINDOWS_LIBRARIES}")
set(CMAKE_PREFIX_PATH "${WINDOWS_LIBRARIES}/glew-2.1.0")
find_package(GLEW REQUIRED)
set(GLEW_LIB ${GLEW_STATIC_LIBRARY_RELEASE} opengl32.lib PARENT_SCOPE)
# Your relative paths
set(RELATIVE_INCLUDE_DIR "${WINDOWS_LIBRARIES}/portaudio/include")
set(RELATIVE_LIB "${WINDOWS_LIBRARIES}/portaudio_build/Debug/portaudio.lib")
# Convert to absolute paths
get_filename_component(ABSOLUTE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${RELATIVE_INCLUDE_DIR}" ABSOLUTE)
get_filename_component(ABSOLUTE_LIB "${CMAKE_CURRENT_SOURCE_DIR}/${RELATIVE_LIB}" ABSOLUTE)
# Set absolute paths with respect to the parent scope
set(PORTAUDIO_INCLUDE_DIR "${ABSOLUTE_INCLUDE_DIR}" PARENT_SCOPE)
set(PORTAUDIO_LIB "${ABSOLUTE_LIB}" PARENT_SCOPE)
else()
find_package(GLEW REQUIRED)
set(GLEW_LIB ${GLEW_LIBRARIES} GL PARENT_SCOPE)
set(PORTAUDIO_LIB portaudio PARENT_SCOPE)
endif()
#add_subdirectory(glew/build/cmake/)
#target_compile_definitions(glew_s PUBLIC GLEW_NO_GLU)
#add_subdirectory(unittest-cpp)
add_subdirectory(lalr)
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
else()
target_compile_options(UnitTest++ PUBLIC -Wno-error)
endif()
add_subdirectory(glfw)
project(Imgui)
set(${PROJECT_NAME}_SOURCES
imgui/imgui.cpp
imgui/imgui_draw.cpp
imgui/imgui_tables.cpp
imgui/imgui_widgets.cpp
imgui/imgui_demo.cpp
imgui/backends/imgui_impl_glfw.cpp
imgui/backends/imgui_impl_opengl3.cpp
)
add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}_SOURCES})
include_directories(${PROJECT_NAME} ./glfw/include)
target_include_directories(${PROJECT_NAME} PUBLIC ./imgui/ ./imgui/backends/)
project(Nanovg)
set(${PROJECT_NAME}_SOURCES
nanovg/src/nanovg.c
)
add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}_SOURCES})
target_include_directories(${PROJECT_NAME} PUBLIC ./nanovg/src/ ./nanovg/obsolete/)
project(Lua)
# Add the Lua source files
#file(GLOB ${PROJECT_NAME}_SOURCES "./lua/luaone.c")
# list(FILTER ${PROJECT_NAME}_SOURCES EXCLUDE REGEX "./lua/lua.c$")
# Create the Lua library
add_library(${PROJECT_NAME} STATIC "lua/onelua.c")
target_compile_definitions(${PROJECT_NAME} PUBLIC MAKE_LIB)
# Include directories for Lua headers
target_include_directories(${PROJECT_NAME} PUBLIC "./lua")
# Set compilation options, e.g., for compilation with C99
set_target_properties(${PROJECT_NAME} PROPERTIES
C_STANDARD 99
C_STANDARD_REQUIRED ON
)
project(ImageIO)
add_library(${PROJECT_NAME} INTERFACE)
target_include_directories(${PROJECT_NAME} INTERFACE ./imageIO/)
#set(OIDN_DEVICE_CPU ON)
#set(OIDN_STATIC_LIB ON)
#add_subdirectory(oidn)
find_package(OpenImageDenoise REQUIRED)

25
Externals/FindImGui.cmake vendored Normal file
View file

@ -0,0 +1,25 @@
project(ImGui)
set(${PROJECT_NAME}_SOURCES
${IMGUI_SRC_DIR}/imgui.cpp
${IMGUI_SRC_DIR}/imgui_draw.cpp
${IMGUI_SRC_DIR}/imgui_tables.cpp
${IMGUI_SRC_DIR}/imgui_widgets.cpp
${IMGUI_SRC_DIR}/imgui_demo.cpp
${IMGUI_SRC_DIR}/backends/imgui_impl_glfw.cpp
${IMGUI_SRC_DIR}/backends/imgui_impl_opengl3.cpp
)
set(${PROJECT_NAME}_INCLUDES
${IMGUI_SRC_DIR}
${IMGUI_SRC_DIR}/backends/
)
add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}_SOURCES})
target_include_directories(${PROJECT_NAME} PUBLIC ${${PROJECT_NAME}_INCLUDES})
#include_directories(${PROJECT_NAME} ././glfw/include)
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

35
Externals/FindPortAudio.cmake vendored Normal file
View file

@ -0,0 +1,35 @@
# - Find PortAudio includes and libraries
#
# PORTAUDIO_FOUND - True if PORTAUDIO_INCLUDE_DIR & PORTAUDIO_LIBRARY
# are found
# PORTAUDIO_LIBRARIES - Set when PORTAUDIO_LIBRARY is found
# PORTAUDIO_INCLUDE_DIRS - Set when PORTAUDIO_INCLUDE_DIR is found
#
# PORTAUDIO_INCLUDE_DIR - where to find portaudio.h, etc.
# PORTAUDIO_LIBRARY - the portaudio library
#
find_path(PORTAUDIO_INCLUDE_DIR
NAMES portaudio.h
DOC "The PortAudio include directory"
)
find_library(PORTAUDIO_LIBRARY
NAMES portaudio
DOC "The PortAudio library"
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PortAudio
REQUIRED_VARS PORTAUDIO_LIBRARY PORTAUDIO_INCLUDE_DIR
)
# Create an imported target for PortAudio
add_library(PortAudio::PortAudio UNKNOWN IMPORTED)
set_target_properties(PortAudio::PortAudio PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${PORTAUDIO_INCLUDE_DIR}"
IMPORTED_LOCATION "${PORTAUDIO_LIBRARY}"
)
# Provide the information to the user
mark_as_advanced(PORTAUDIO_INCLUDE_DIR PORTAUDIO_LIBRARY)

1
Externals/glfw vendored

@ -1 +0,0 @@
Subproject commit b35641f4a3c62aa86a0b3c983d163bc0fe36026d

1
Externals/lua vendored

@ -1 +0,0 @@
Subproject commit 6baee9ef9d5657ab582c8a4b9f885ec58ed502d0