Skip to content

Commit

Permalink
add target install for GNU. (netcan#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
aliihsancengiz committed Jul 20, 2022
1 parent 3e320fe commit 48e096a
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 4 deletions.
48 changes: 44 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
cmake_minimum_required(VERSION 3.18)
project(asyncio)
set(CMAKE_CXX_STANDARD 20)
set(PROJECT_VERSION 1.0.0)
set(TARGET_NAME "asyncio")
project(${TARGET_NAME}
VERSION ${PROJECT_VERSION}
LANGUAGES CXX)

set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
message(CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

###############################################################################
set(ASYNCIO_INC
include/asyncio/asyncio_ns.h
Expand All @@ -25,6 +32,7 @@ set(ASYNCIO_INC
include/asyncio/sleep.h
include/asyncio/schedule_task.h
include/asyncio/concept/awaitable.h
include/asyncio/concept/promise.h
include/asyncio/gather.h
include/asyncio/result.h
include/asyncio/callstack.h
Expand All @@ -35,11 +43,43 @@ set(ASYNCIO_INC
)

include_directories(${CMAKE_SOURCE_DIR}/include)

add_library(asyncio STATIC
add_library(asyncio SHARED
${ASYNC_INC}
src/event_loop.cpp)
target_link_libraries(asyncio PUBLIC fmt::fmt)

add_subdirectory(test)
add_subdirectory(third_party)

set(MODELS_CMAKE_FILES
"cmake/asyncioConfig.cmake"
"cmake/asyncioConfigVersion.cmake"
)

add_compile_options(-fPIC)

set_target_properties(${PROJECT_NAME}
PROPERTIES
SOVERSION ${PROJECT_VERSION_MAJOR}
VERSION ${PROJECT_VERSION}
OUTPUT_NAME ${PROJECT_NAME}
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}"
)

set(MODELS_LIBRARY_INSTALL_DIR "/usr/lib/")
set(MODELS_CMAKE_FILES_INSTALL_DIR "/usr/lib/cmake/asyncio/")
set(MODELS_HEADER_INSTALL_DIR "/usr/")

# INSTALL CONFIGURATIONS
include(GNUInstallDirs)

foreach ( file ${ASYNCIO_INC} )
get_filename_component( dir ${file} DIRECTORY )
install( FILES ${file} DESTINATION "${MODELS_HEADER_INSTALL_DIR}${dir}")
endforeach()

install(TARGETS ${TARGET_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

install(FILES ${MODELS_CMAKE_FILES}
DESTINATION ${MODELS_CMAKE_FILES_INSTALL_DIR})
5 changes: 5 additions & 0 deletions cmake/asyncioConfig.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
get_filename_component(ASYNCIO_INCLUDES "${CMAKE_CURRENT_LIST_DIR}/../include/" ABSOLUTE)

set(asyncio_INCLUDE_DIRS "${ASYNCIO_INCLUDES}")
set(asyncio_LIBRARIES asyncio)
set(asyncio_LIBRARY_DIRS "lib")
11 changes: 11 additions & 0 deletions cmake/asyncioConfigVersion.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
set(PACKAGE_VERSION "1.0.0")

# Check whether the requested PACKAGE_FIND_VERSION is compatible
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_COMPATIBLE FALSE)
else()
set(PACKAGE_VERSION_COMPATIBLE TRUE)
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
set(PACKAGE_VERSION_EXACT TRUE)
endif()
endif()

0 comments on commit 48e096a

Please sign in to comment.