Skip to content

Commit

Permalink
make install also installs extensions (#32)
Browse files Browse the repository at this point in the history
Also clean up CMakeLists considerably.
  • Loading branch information
Yuki Izumi authored and Yuki Izumi committed Jun 30, 2017
1 parent 9f81059 commit b0707b6
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 47 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ set(PROJECT_VERSION_GFM 0)
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.gfm.${PROJECT_VERSION_GFM} )

option(CMARK_TESTS "Build cmark tests and enable testing" ON)
option(CMARK_STATIC "Build static libcmark library" ON)
option(CMARK_SHARED "Build shared libcmark library" ON)
option(CMARK_STATIC "Build static libcmark-gfm library" ON)
option(CMARK_SHARED "Build shared libcmark-gfm library" ON)
option(CMARK_LIB_FUZZER "Build libFuzzer fuzzing harness" OFF)

add_subdirectory(src)
Expand Down
2 changes: 1 addition & 1 deletion api_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ include_directories(
${PROJECT_SOURCE_DIR}/src
${PROJECT_BINARY_DIR}/src
)
target_link_libraries(api_test libcmark-gfm ${CMAKE_DL_LIBS})
target_link_libraries(api_test libcmark-gfm)

# Compiler flags
if(MSVC)
Expand Down
41 changes: 28 additions & 13 deletions extensions/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,6 @@ include_directories(

include (GenerateExportHeader)

# We make LIB_INSTALL_DIR configurable rather than
# hard-coding lib, because on some OSes different locations
# are used for different architectures (e.g. /usr/lib64 on
# 64-bit Fedora).
if(NOT LIB_INSTALL_DIR)
set(LIB_INSTALL_DIR "lib" CACHE STRING
"Set the installation directory for libraries." FORCE)
endif(NOT LIB_INSTALL_DIR)

include_directories(. ${CMAKE_CURRENT_BINARY_DIR})

set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE} -pg")
Expand All @@ -38,20 +29,22 @@ if (CMARK_SHARED)
add_library(${LIBRARY} SHARED ${LIBRARY_SOURCES})

set_target_properties(${LIBRARY} PROPERTIES
OUTPUT_NAME "cmark-gfmextensions"
SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.gfm.${PROJECT_VERSION_GFM}
VERSION ${PROJECT_VERSION})
OUTPUT_NAME "cmark-gfmextensions"
SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.gfm.${PROJECT_VERSION_GFM}
VERSION ${PROJECT_VERSION})

set_property(TARGET ${LIBRARY}
APPEND PROPERTY MACOSX_RPATH true)

# Avoid name clash between PROGRAM and LIBRARY pdb files.
set_target_properties(${LIBRARY} PROPERTIES PDB_NAME cmark-gfmextensions_dll)

generate_export_header(${LIBRARY}
BASE_NAME cmarkextensions)

list(APPEND CMARK_INSTALL ${LIBRARY})
target_link_libraries(${LIBRARY} libcmark-gfm)

generate_export_header(${LIBRARY} BASE_NAME cmarkextensions)
endif()

if (CMARK_STATIC)
Expand All @@ -70,6 +63,28 @@ if (CMARK_STATIC)
OUTPUT_NAME "cmark-gfmextensions"
VERSION ${PROJECT_VERSION})
endif(MSVC)

list(APPEND CMARK_INSTALL ${STATICLIBRARY})
endif()

set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)

include (InstallRequiredSystemLibraries)
install(TARGETS ${CMARK_INSTALL}
EXPORT cmark-gfmextensions
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib${LIB_SUFFIX}
ARCHIVE DESTINATION lib${LIB_SUFFIX}
)

if (CMARK_SHARED OR CMARK_STATIC)
install(FILES
core-extensions.h
${CMAKE_CURRENT_BINARY_DIR}/cmarkextensions_export.h
DESTINATION include
)

install(EXPORT cmark-gfmextensions DESTINATION lib${LIB_SUFFIX}/cmake-gfmextensions)
endif()

# Feature tests
Expand Down
52 changes: 21 additions & 31 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,9 @@ if (CMARK_SHARED)
add_library(${LIBRARY} SHARED ${LIBRARY_SOURCES})
# Include minor version and patch level in soname for now.
set_target_properties(${LIBRARY} PROPERTIES
OUTPUT_NAME "cmark-gfm"
SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.gfm.${PROJECT_VERSION_GFM}
VERSION ${PROJECT_VERSION})
OUTPUT_NAME "cmark-gfm"
SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.gfm.${PROJECT_VERSION_GFM}
VERSION ${PROJECT_VERSION})

This comment has been minimized.

Copy link
@admbanking1

set_property(TARGET ${LIBRARY}
APPEND PROPERTY MACOSX_RPATH true)
Expand All @@ -119,31 +119,21 @@ endif()
if (CMARK_STATIC)
add_library(${STATICLIBRARY} STATIC ${LIBRARY_SOURCES})
set_target_properties(${STATICLIBRARY} PROPERTIES

This comment has been minimized.

Copy link
@admbanking1

admbanking1 Jun 14, 2022

(${LIBRARY}

COMPILE_FLAGS -DCMARK_STATIC_DEFINE
POSITION_INDEPENDENT_CODE ON)
COMPILE_FLAGS -DCMARK_STATIC_DEFINE
POSITION_INDEPENDENT_CODE ON)

if (MSVC)
set_target_properties(${STATICLIBRARY} PROPERTIES
OUTPUT_NAME "cmark-gfm_static"
VERSION ${PROJECT_VERSION})
set_target_properties(${STATICLIBRARY} PROPERTIES
OUTPUT_NAME "cmark-gfm_static"
VERSION ${PROJECT_VERSION})
else()
set_target_properties(${STATICLIBRARY} PROPERTIES
OUTPUT_NAME "cmark-gfm"
VERSION ${PROJECT_VERSION})
endif(MSVC)

target_link_libraries(cmark-gfm ${CMAKE_DL_LIBS})
set_target_properties(${STATICLIBRARY} PROPERTIES
OUTPUT_NAME "cmark-gfm"
VERSION ${PROJECT_VERSION})
endif(MSVC)

list(APPEND CMARK_INSTALL ${STATICLIBRARY})
endif()
set_property(TARGET ${LIBRARY}
APPEND PROPERTY MACOSX_RPATH true)

# Avoid name clash between PROGRAM and LIBRARY pdb files.
set_target_properties(${LIBRARY} PROPERTIES PDB_NAME cmark-gfm_dll)

generate_export_header(${LIBRARY}
BASE_NAME ${PROJECT_NAME})

if (MSVC)
set_property(TARGET ${PROGRAM}
Expand All @@ -154,7 +144,7 @@ set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS ON)

include (InstallRequiredSystemLibraries)
install(TARGETS ${PROGRAM} ${CMARK_INSTALL}
EXPORT cmark
EXPORT cmark-gfm
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib${LIB_SUFFIX}
ARCHIVE DESTINATION lib${LIB_SUFFIX}
Expand All @@ -167,14 +157,14 @@ if(CMARK_SHARED OR CMARK_STATIC)
DESTINATION lib${LIB_SUFFIX}/pkgconfig)

install(FILES
cmark.h
cmark_extension_api.h
${CMAKE_CURRENT_BINARY_DIR}/cmark_export.h
${CMAKE_CURRENT_BINARY_DIR}/cmark_version.h
DESTINATION include
)

install(EXPORT cmark DESTINATION lib${LIB_SUFFIX}/cmake)
cmark.h
cmark_extension_api.h
${CMAKE_CURRENT_BINARY_DIR}/cmark_export.h
${CMAKE_CURRENT_BINARY_DIR}/cmark_version.h
DESTINATION include
)

install(EXPORT cmark-gfm DESTINATION lib${LIB_SUFFIX}/cmake-gfm)
endif()

# Feature tests
Expand Down

0 comments on commit b0707b6

Please sign in to comment.