mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-14 16:09:06 +07:00
public cmake e2d variables (E2D_INCLUDE_DIRS and E2D_LIBRARIES)
This commit is contained in:
134
CMakeLists.txt
134
CMakeLists.txt
@@ -6,38 +6,24 @@ project(enduro2d)
|
|||||||
#
|
#
|
||||||
|
|
||||||
if(NOT CMAKE_BUILD_TYPE)
|
if(NOT CMAKE_BUILD_TYPE)
|
||||||
set(CMAKE_BUILD_TYPE Release)
|
set(CMAKE_BUILD_TYPE Release)
|
||||||
endif(NOT CMAKE_BUILD_TYPE)
|
endif(NOT CMAKE_BUILD_TYPE)
|
||||||
|
|
||||||
foreach(flags CMAKE_C_FLAGS_DEBUG
|
|
||||||
CMAKE_CXX_FLAGS_DEBUG)
|
|
||||||
set(${flags} "${${flags}} -D_DEBUG -DNRELEASE")
|
|
||||||
endforeach(flags)
|
|
||||||
|
|
||||||
foreach(flags CMAKE_C_FLAGS_RELEASE
|
|
||||||
CMAKE_C_FLAGS_MINSIZEREL
|
|
||||||
CMAKE_C_FLAGS_RELWITHDEBINFO
|
|
||||||
CMAKE_CXX_FLAGS_RELEASE
|
|
||||||
CMAKE_CXX_FLAGS_MINSIZEREL
|
|
||||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
|
||||||
set(${flags} "${${flags}} -DNDEBUG -D_RELEASE")
|
|
||||||
endforeach(flags)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# warning mode
|
# warning mode
|
||||||
#
|
#
|
||||||
|
|
||||||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
add_compile_options(-Wall -Wextra -Wpedantic)
|
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||||
add_compile_options(-Wall -Wextra -Wpedantic)
|
add_compile_options(-Wall -Wextra -Wpedantic)
|
||||||
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
||||||
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
|
||||||
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
else()
|
else()
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -45,70 +31,102 @@ endif()
|
|||||||
#
|
#
|
||||||
|
|
||||||
file(GLOB_RECURSE E2D_HEADERS
|
file(GLOB_RECURSE E2D_HEADERS
|
||||||
headers/enduro2d/*.hpp
|
headers/enduro2d/*.hpp
|
||||||
headers/enduro2d/*.inl)
|
headers/enduro2d/*.inl)
|
||||||
|
|
||||||
file(GLOB_RECURSE E2D_SOURCES
|
file(GLOB_RECURSE E2D_SOURCES
|
||||||
sources/enduro2d/*.cpp
|
sources/enduro2d/*.cpp
|
||||||
sources/enduro2d/*.hpp
|
sources/enduro2d/*.hpp
|
||||||
headers/enduro2d/*.inl)
|
headers/enduro2d/*.inl)
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
file(GLOB_RECURSE E2D_SOURCES_MM
|
file(GLOB_RECURSE E2D_SOURCES_MM
|
||||||
sources/enduro2d/*.mm)
|
sources/enduro2d/*.mm)
|
||||||
list(APPEND E2D_SOURCES ${E2D_SOURCES_MM})
|
list(APPEND E2D_SOURCES
|
||||||
|
${E2D_SOURCES_MM})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#
|
#
|
||||||
# e2d 3rd party
|
# e2d internal 3rd party
|
||||||
#
|
#
|
||||||
|
|
||||||
file(GLOB_RECURSE E2D_3RDPARTY
|
file(GLOB_RECURSE E2D_3RDPARTY
|
||||||
sources/3rdparty/*.*)
|
sources/3rdparty/*.*)
|
||||||
|
|
||||||
#
|
#
|
||||||
# e2d library target
|
# e2d external 3rd party
|
||||||
#
|
#
|
||||||
|
|
||||||
add_library(${PROJECT_NAME} STATIC
|
find_package(OpenGL REQUIRED)
|
||||||
${E2D_HEADERS}
|
find_package(Threads REQUIRED)
|
||||||
${E2D_SOURCES}
|
|
||||||
${E2D_3RDPARTY})
|
|
||||||
|
|
||||||
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES
|
if(APPLE)
|
||||||
${E2D_HEADERS}
|
find_library(Cocoa Cocoa)
|
||||||
${E2D_SOURCES}
|
find_library(IOKit IOKit)
|
||||||
${E2D_3RDPARTY})
|
find_library(CoreVideo CoreVideo)
|
||||||
|
find_library(Foundation Foundation)
|
||||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
endif(APPLE)
|
||||||
headers
|
|
||||||
sources)
|
|
||||||
|
|
||||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
|
||||||
CXX_STANDARD 14
|
|
||||||
CXX_STANDARD_REQUIRED YES
|
|
||||||
CXX_EXTENSIONS NO)
|
|
||||||
|
|
||||||
#
|
|
||||||
# glfw module
|
|
||||||
#
|
|
||||||
|
|
||||||
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
|
set(GLFW_BUILD_DOCS OFF CACHE BOOL "" FORCE)
|
||||||
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
set(GLFW_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
||||||
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
||||||
add_subdirectory(modules/glfw)
|
add_subdirectory(modules/glfw)
|
||||||
|
|
||||||
|
#
|
||||||
|
# e2d library target
|
||||||
|
#
|
||||||
|
|
||||||
|
add_library(${PROJECT_NAME} STATIC
|
||||||
|
${E2D_HEADERS}
|
||||||
|
${E2D_SOURCES}
|
||||||
|
${E2D_3RDPARTY})
|
||||||
|
|
||||||
|
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES
|
||||||
|
${E2D_HEADERS}
|
||||||
|
${E2D_SOURCES}
|
||||||
|
${E2D_3RDPARTY})
|
||||||
|
|
||||||
|
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||||
|
headers
|
||||||
|
sources)
|
||||||
|
|
||||||
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||||
|
CXX_STANDARD 14
|
||||||
|
CXX_STANDARD_REQUIRED YES
|
||||||
|
CXX_EXTENSIONS NO)
|
||||||
|
|
||||||
|
#
|
||||||
|
# e2d public variables
|
||||||
|
#
|
||||||
|
|
||||||
|
set(E2D_INCLUDE_DIRS
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/headers)
|
||||||
|
|
||||||
|
set(E2D_LIBRARIES
|
||||||
|
enduro2d
|
||||||
|
glfw
|
||||||
|
${OPENGL_gl_LIBRARY}
|
||||||
|
${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
list(APPEND ${E2D_LIBRARIES}
|
||||||
|
${Cocoa}
|
||||||
|
${IOKit}
|
||||||
|
${CoreVideo}
|
||||||
|
${Foundation})
|
||||||
|
endif(APPLE)
|
||||||
|
|
||||||
#
|
#
|
||||||
# subdirectories
|
# subdirectories
|
||||||
#
|
#
|
||||||
|
|
||||||
option(E2D_BUILD_SAMPLES "Build samples" ON)
|
option(E2D_BUILD_SAMPLES "Build samples" ON)
|
||||||
if(E2D_BUILD_SAMPLES)
|
if(E2D_BUILD_SAMPLES)
|
||||||
add_subdirectory(samples)
|
add_subdirectory(samples)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(E2D_BUILD_UNTESTS "Build untests" ON)
|
option(E2D_BUILD_UNTESTS "Build untests" ON)
|
||||||
if(E2D_BUILD_UNTESTS)
|
if(E2D_BUILD_UNTESTS)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
add_subdirectory(untests)
|
add_subdirectory(untests)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -66,10 +66,10 @@
|
|||||||
#define E2D_BUILD_MODE_RELEASE 2
|
#define E2D_BUILD_MODE_RELEASE 2
|
||||||
|
|
||||||
#ifndef E2D_BUILD_MODE
|
#ifndef E2D_BUILD_MODE
|
||||||
# if defined(DEBUG) || defined(_DEBUG) || defined(NRELEASE)
|
# if defined(RELEASE) || defined(_RELEASE) || defined(NDEBUG)
|
||||||
# define E2D_BUILD_MODE E2D_BUILD_MODE_DEBUG
|
|
||||||
# elif defined(RELEASE) || defined(_RELEASE) || defined(NDEBUG)
|
|
||||||
# define E2D_BUILD_MODE E2D_BUILD_MODE_RELEASE
|
# define E2D_BUILD_MODE E2D_BUILD_MODE_RELEASE
|
||||||
|
# else
|
||||||
|
# define E2D_BUILD_MODE E2D_BUILD_MODE_DEBUG
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,6 @@
|
|||||||
function(add_e2d_sample NAME)
|
function(add_e2d_sample NAME)
|
||||||
set(SAMPLE_NAME sample_${NAME})
|
set(SAMPLE_NAME sample_${NAME})
|
||||||
|
|
||||||
#
|
|
||||||
# external
|
|
||||||
#
|
|
||||||
|
|
||||||
find_package(OpenGL REQUIRED)
|
|
||||||
find_package(Threads REQUIRED)
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
find_library(Cocoa Cocoa)
|
|
||||||
find_library(IOKit IOKit)
|
|
||||||
find_library(CoreVideo CoreVideo)
|
|
||||||
find_library(Foundation Foundation)
|
|
||||||
endif(APPLE)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# sources
|
# sources
|
||||||
#
|
#
|
||||||
@@ -31,24 +17,10 @@ function(add_e2d_sample NAME)
|
|||||||
|
|
||||||
add_executable(${SAMPLE_NAME}
|
add_executable(${SAMPLE_NAME}
|
||||||
${SAMPLE_SOURCES})
|
${SAMPLE_SOURCES})
|
||||||
|
|
||||||
target_include_directories(${SAMPLE_NAME}
|
|
||||||
PRIVATE "../headers")
|
|
||||||
|
|
||||||
target_link_libraries(${SAMPLE_NAME}
|
target_link_libraries(${SAMPLE_NAME}
|
||||||
enduro2d
|
${E2D_LIBRARIES})
|
||||||
glfw
|
target_include_directories(${SAMPLE_NAME}
|
||||||
${OPENGL_gl_LIBRARY}
|
PRIVATE ${E2D_INCLUDE_DIRS})
|
||||||
${CMAKE_THREAD_LIBS_INIT})
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
target_link_libraries(${SAMPLE_NAME}
|
|
||||||
${Cocoa}
|
|
||||||
${IOKit}
|
|
||||||
${CoreVideo}
|
|
||||||
${Foundation})
|
|
||||||
endif(APPLE)
|
|
||||||
|
|
||||||
set_target_properties(${SAMPLE_NAME} PROPERTIES
|
set_target_properties(${SAMPLE_NAME} PROPERTIES
|
||||||
CXX_STANDARD 14
|
CXX_STANDARD 14
|
||||||
CXX_STANDARD_REQUIRED YES
|
CXX_STANDARD_REQUIRED YES
|
||||||
|
|||||||
@@ -1,16 +1,6 @@
|
|||||||
function(add_e2d_tests NAME)
|
function(add_e2d_tests NAME)
|
||||||
set(TESTS_NAME untests_${NAME})
|
set(TESTS_NAME untests_${NAME})
|
||||||
|
|
||||||
#
|
|
||||||
# external
|
|
||||||
#
|
|
||||||
|
|
||||||
find_package(Threads REQUIRED)
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
find_library(Foundation Foundation)
|
|
||||||
endif(APPLE)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# sources
|
# sources
|
||||||
#
|
#
|
||||||
@@ -27,19 +17,10 @@ function(add_e2d_tests NAME)
|
|||||||
|
|
||||||
add_executable(${TESTS_NAME}
|
add_executable(${TESTS_NAME}
|
||||||
${TESTS_SOURCES})
|
${TESTS_SOURCES})
|
||||||
|
|
||||||
target_include_directories(${TESTS_NAME}
|
|
||||||
PRIVATE "../headers")
|
|
||||||
|
|
||||||
target_link_libraries(${TESTS_NAME}
|
target_link_libraries(${TESTS_NAME}
|
||||||
enduro2d
|
${E2D_LIBRARIES})
|
||||||
"${CMAKE_THREAD_LIBS_INIT}")
|
target_include_directories(${TESTS_NAME}
|
||||||
|
PRIVATE ${E2D_INCLUDE_DIRS})
|
||||||
if(APPLE)
|
|
||||||
target_link_libraries(${TESTS_NAME}
|
|
||||||
${Foundation})
|
|
||||||
endif(APPLE)
|
|
||||||
|
|
||||||
set_target_properties(${TESTS_NAME} PROPERTIES
|
set_target_properties(${TESTS_NAME} PROPERTIES
|
||||||
CXX_STANDARD 14
|
CXX_STANDARD 14
|
||||||
CXX_STANDARD_REQUIRED YES
|
CXX_STANDARD_REQUIRED YES
|
||||||
|
|||||||
Reference in New Issue
Block a user