Add versionned lib supprt

This commit is contained in:
Jonathan MERCIER
2012-02-13 23:59:48 +01:00
parent 902b9b20aa
commit a0ad3685d0

View File

@@ -16,13 +16,17 @@ if(${ptr_size} MATCHES "^8$") ## if it's 64-bit OS
set(IS_64BIT_OS 1)
endif(${ptr_size} MATCHES "^8$")
set(MULTILIB OFF CACHE BOOL "Build both 64-bit and 32-bit libraries")
set(BUILD_BC_LIBS OFF CACHE BOOL "Build the runtime as bytecode libraries")
set(BUILD_SINGLE_LIB ON CACHE BOOL "Build single runtime library")
set(LIB_SUFFIX "" CACHE STRING "Takes an empty string or 64. Directory where lib will be installed: lib or lib64")
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/d CACHE PATH "Directory where will be put header files")
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build as shared library or as static library")
set(CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Directory where lib will be installed")
set(DMDFE_MAJOR_VERSION 2 CACHE INT "Major version of dmd frontend")
set(DMDFE_MINOR_VERSION 0 CACHE INT "Minor version of dmd frontend")
set(DMDFE_PATCH_VERSION 57 CACHE INT "Patch version of dmd frontend")
set(DMDFE_VERSION ${DMDFE_MAJOR_VERSION}.${DMDFE_MINOR_VERSION}.${DMDFE_PATCH_VERSION} CACHE INT "Version of dmd frontend")
set(MULTILIB OFF CACHE BOOL "Build both 64-bit and 32-bit libraries")
set(BUILD_BC_LIBS OFF CACHE BOOL "Build the runtime as bytecode libraries")
set(BUILD_SINGLE_LIB ON CACHE BOOL "Build single runtime library")
set(LIB_SUFFIX "" CACHE STRING "Takes an empty string or 64. Directory where lib will be installed: lib or lib64")
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/d CACHE PATH "Directory where will be put header files")
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build as shared library or as static library")
set(CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Directory where lib will be installed")
set(D_FLAGS -g -w -d CACHE STRING "runtime build flags, separated by ;")
if(BUILD_SHARED_LIBS)
@@ -139,8 +143,8 @@ endif(NOT LDC_LOC)
#
if(MULTILIB)
set(MUTILIB_ADDITIONAL_PATH "\n \"-L-L${CMAKE_BINARY_DIR}/lib32\",")
set(MUTILIB_ADDITIONAL_INSTALL_PATH "\n \"-L-L${CMAKE_INSTALL_PREFIX}/lib32\",")
set(MUTILIB_ADDITIONAL_PATH "\n \"-L-L${CMAKE_BINARY_DIR}/lib32\",")
set(MUTILIB_ADDITIONAL_INSTALL_PATH "\n \"-L-L${CMAKE_INSTALL_PREFIX}/lib32\",")
endif(MULTILIB)
configure_file(${PROJECT_PARENT_DIR}/${CONFIG_NAME}.conf.in ${PROJECT_BINARY_DIR}/../bin/${LDC_EXE}.conf)
@@ -280,12 +284,14 @@ macro(build_runtime d_flags c_flags ld_flags lib_suffix path_suffix)
set_target_properties(
${LIBS} PROPERTIES
LINKER_LANGUAGE C
ARCHIVE_OUTPUT_DIRECTORY ${output_path}
LIBRARY_OUTPUT_DIRECTORY ${output_path}
RUNTIME_OUTPUT_DIRECTORY ${output_path}
COMPILE_FLAGS "${c_flags}"
LINK_FLAGS "${ld_flags}"
VERSION ${DMDFE_VERSION}
SOVERSION ${DMDFE_PATCH_VERSION}
LINKER_LANGUAGE C
ARCHIVE_OUTPUT_DIRECTORY ${output_path}
LIBRARY_OUTPUT_DIRECTORY ${output_path}
RUNTIME_OUTPUT_DIRECTORY ${output_path}
COMPILE_FLAGS "${c_flags}"
LINK_FLAGS "${ld_flags}"
)
install(TARGETS ${LIBS} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${path_suffix})
@@ -299,7 +305,7 @@ macro(build_runtime d_flags c_flags ld_flags lib_suffix path_suffix)
dc(${f} PHOBOS2_O PHOBOS2_BC "${d_flags};-I${PHOBOS2_DIR}" ${PHOBOS2_DIR} "${target_suffix}")
endforeach(f)
add_library(phobos2-ldc${target_suffix} ${D_LIBRARY_TYPE}
add_library(phobos-ldc${target_suffix} ${D_LIBRARY_TYPE}
${ZLIB_C}
${PHOBOS2_O}
${CORE_O}
@@ -308,19 +314,21 @@ macro(build_runtime d_flags c_flags ld_flags lib_suffix path_suffix)
${DCRT_O}
${DCRT_C}
)
add_dependencies(phobos2-ldc${target_suffix} runtime)
add_dependencies(phobos-ldc${target_suffix} runtime)
set_target_properties(
phobos2-ldc${target_suffix} PROPERTIES
OUTPUT_NAME phobos2-ldc${lib_suffix}
LINKER_LANGUAGE C
ARCHIVE_OUTPUT_DIRECTORY ${output_path}
LIBRARY_OUTPUT_DIRECTORY ${output_path}
RUNTIME_OUTPUT_DIRECTORY ${output_path}
COMPILE_FLAGS "${c_flags}"
LINK_FLAGS "${ld_flags}"
phobos-ldc${target_suffix} PROPERTIES
VERSION ${DMDFE_VERSION}
SOVERSION ${DMDFE_PATCH_VERSION}
OUTPUT_NAME phobos-ldc${lib_suffix}
LINKER_LANGUAGE C
ARCHIVE_OUTPUT_DIRECTORY ${output_path}
LIBRARY_OUTPUT_DIRECTORY ${output_path}
RUNTIME_OUTPUT_DIRECTORY ${output_path}
COMPILE_FLAGS "${c_flags}"
LINK_FLAGS "${ld_flags}"
)
install(TARGETS phobos2-ldc${target_suffix} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${path_suffix})
add_dependencies(phobos2 DEPENDS phobos2-ldc${target_suffix})
install(TARGETS phobos-ldc${target_suffix} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${path_suffix})
add_dependencies(phobos2 DEPENDS phobos-ldc${target_suffix})
endif(PHOBOS2_DIR)
endmacro(build_runtime d_flags c_flags ld_flags lib_suffix path_suffix)