CMake で b1.exe・libaribb1.dll をビルドできるように
This commit is contained in:
parent
01a352f189
commit
c0dec22683
9
.gitignore
vendored
9
.gitignore
vendored
@ -204,7 +204,7 @@ GeneratedArtifacts/
|
||||
_Pvt_Extensions/
|
||||
ModelManifest.xml
|
||||
|
||||
# Xcode
|
||||
# Xcode
|
||||
## Build generated
|
||||
build/
|
||||
DerivedData/
|
||||
@ -248,9 +248,12 @@ CMakeScripts
|
||||
cmake_install.cmake
|
||||
Makefile
|
||||
Makefile.dep
|
||||
b25
|
||||
config.h
|
||||
b1
|
||||
b25
|
||||
libaribb1.so*
|
||||
libaribb25.so*
|
||||
version.rc
|
||||
version_b1.rc
|
||||
version_b25.rc
|
||||
*.o
|
||||
*.pc
|
||||
|
@ -28,6 +28,25 @@ if(NOT WIN32)
|
||||
option(USE_NEON "enable NEON" OFF)
|
||||
endif()
|
||||
|
||||
# ---------- set variable (libaribb1) ----------
|
||||
|
||||
set(ARIBB1_LIB_NAME "aribb1")
|
||||
set(ARIBB1_CMD_NAME "b1")
|
||||
|
||||
set(ARIBB1_URL "https://github.com/tsukumijima/libaribb25")
|
||||
set(ARIBB1_DESCRIPTION "Reference implementation of ARIB STD-B1")
|
||||
set(ARIBB1_COMPANY "㋲製作所")
|
||||
set(ARIBB1_COPYRIGHT "©2012 茂木 和洋")
|
||||
set(ARIBB1_PRODUCT "ARIB STD-B1")
|
||||
|
||||
set(ARIBB1_MAJOR_VERSION "0")
|
||||
set(ARIBB1_MINOR_VERSION "2")
|
||||
set(ARIBB1_PATCH_VERSION "7")
|
||||
set(ARIBB1_VERSION_NUMBER ${ARIBB1_MAJOR_VERSION}.${ARIBB1_MINOR_VERSION}.${ARIBB1_PATCH_VERSION})
|
||||
set(ARIBB1_VERSION_STRING stz-${ARIBB1_VERSION_NUMBER})
|
||||
|
||||
# ---------- set variable (libaribb25) ----------
|
||||
|
||||
set(ARIBB25_LIB_NAME "aribb25")
|
||||
set(ARIBB25_CMD_NAME "b25")
|
||||
|
||||
@ -43,6 +62,8 @@ set(ARIBB25_PATCH_VERSION "7")
|
||||
set(ARIBB25_VERSION_NUMBER ${ARIBB25_MAJOR_VERSION}.${ARIBB25_MINOR_VERSION}.${ARIBB25_PATCH_VERSION})
|
||||
set(ARIBB25_VERSION_STRING stz-${ARIBB25_VERSION_NUMBER})
|
||||
|
||||
# ---------- define flags ----------
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "(GNU|Clang)")
|
||||
set(CMAKE_C_FLAGS "-Wall")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-O2 -g")
|
||||
@ -103,14 +124,48 @@ if(PCSC_INCLUDE_DIRS)
|
||||
endif()
|
||||
link_directories(${PCSC_LIBRARY_DIRS})
|
||||
|
||||
add_library(aribb25-objlib OBJECT aribb25/arib_std_b25.c aribb25/b_cas_card.c aribb25/multi2.cc aribb25/ts_section_parser.c aribb25/version.c)
|
||||
# ---------- libaribb1 ----------
|
||||
|
||||
add_library(aribb1-objlib OBJECT aribb25/arib_std_b25.c aribb25/b_cas_card.c aribb25/multi2.cc aribb25/ts_section_parser.c aribb25/version_b1.c)
|
||||
set_target_properties(aribb1-objlib PROPERTIES COMPILE_DEFINITIONS ARIBB1_DLL)
|
||||
target_compile_definitions(aribb1-objlib PRIVATE ENABLE_ARIB_STD_B1)
|
||||
|
||||
add_library(aribb1-static STATIC $<TARGET_OBJECTS:aribb1-objlib>)
|
||||
set_target_properties(aribb1-static PROPERTIES OUTPUT_NAME ${ARIBB1_LIB_NAME})
|
||||
target_link_libraries(aribb1-static PRIVATE ${PCSC_LIBRARIES})
|
||||
target_compile_definitions(aribb1-static PRIVATE ENABLE_ARIB_STD_B1)
|
||||
|
||||
add_library(aribb1-shared SHARED $<TARGET_OBJECTS:aribb1-objlib> ${CMAKE_CURRENT_BINARY_DIR}/version_b1.rc)
|
||||
set_target_properties(aribb1-shared PROPERTIES MACOSX_RPATH ON)
|
||||
set_target_properties(aribb1-shared PROPERTIES DEFINE_SYMBOL ARIBB1_DLL)
|
||||
set_target_properties(aribb1-shared PROPERTIES COMPILE_DEFINITIONS ARIBB1_DLL)
|
||||
set_target_properties(aribb1-shared PROPERTIES OUTPUT_NAME ${ARIBB1_LIB_NAME})
|
||||
set_target_properties(aribb1-shared PROPERTIES SOVERSION ${ARIBB1_MAJOR_VERSION})
|
||||
set_target_properties(aribb1-shared PROPERTIES VERSION ${ARIBB1_VERSION_NUMBER})
|
||||
target_link_libraries(aribb1-shared PRIVATE ${PCSC_LIBRARIES})
|
||||
target_compile_definitions(aribb1-shared PRIVATE ENABLE_ARIB_STD_B1)
|
||||
|
||||
# ---------- b1 (executable) ----------
|
||||
|
||||
add_executable(b1 aribb25/td.c ${CMAKE_CURRENT_BINARY_DIR}/version_b1.rc)
|
||||
set_target_properties(b1 PROPERTIES OUTPUT_NAME ${ARIBB1_CMD_NAME})
|
||||
target_link_libraries(b1 PRIVATE ${PCSC_LIBRARIES})
|
||||
target_link_libraries(b1 PRIVATE aribb1-shared)
|
||||
target_compile_definitions(b1 PRIVATE ENABLE_ARIB_STD_B1)
|
||||
|
||||
configure_file(aribb25/config.h.in config.h @ONLY)
|
||||
configure_file(aribb25/version_b1.rc.in version_b1.rc @ONLY)
|
||||
|
||||
# ---------- libaribb25 ----------
|
||||
|
||||
add_library(aribb25-objlib OBJECT aribb25/arib_std_b25.c aribb25/b_cas_card.c aribb25/multi2.cc aribb25/ts_section_parser.c aribb25/version_b25.c)
|
||||
set_target_properties(aribb25-objlib PROPERTIES COMPILE_DEFINITIONS ARIBB25_DLL)
|
||||
|
||||
add_library(aribb25-static STATIC $<TARGET_OBJECTS:aribb25-objlib>)
|
||||
set_target_properties(aribb25-static PROPERTIES OUTPUT_NAME ${ARIBB25_LIB_NAME})
|
||||
target_link_libraries(aribb25-static PRIVATE ${PCSC_LIBRARIES})
|
||||
|
||||
add_library(aribb25-shared SHARED $<TARGET_OBJECTS:aribb25-objlib> ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
|
||||
add_library(aribb25-shared SHARED $<TARGET_OBJECTS:aribb25-objlib> ${CMAKE_CURRENT_BINARY_DIR}/version_b25.rc)
|
||||
set_target_properties(aribb25-shared PROPERTIES MACOSX_RPATH ON)
|
||||
set_target_properties(aribb25-shared PROPERTIES DEFINE_SYMBOL ARIBB25_DLL)
|
||||
set_target_properties(aribb25-shared PROPERTIES COMPILE_DEFINITIONS ARIBB25_DLL)
|
||||
@ -119,15 +174,32 @@ set_target_properties(aribb25-shared PROPERTIES SOVERSION ${ARIBB25_MAJOR_VERSIO
|
||||
set_target_properties(aribb25-shared PROPERTIES VERSION ${ARIBB25_VERSION_NUMBER})
|
||||
target_link_libraries(aribb25-shared PRIVATE ${PCSC_LIBRARIES})
|
||||
|
||||
add_executable(b25 aribb25/td.c ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
|
||||
# ---------- b25 (executable) ----------
|
||||
|
||||
add_executable(b25 aribb25/td.c ${CMAKE_CURRENT_BINARY_DIR}/version_b25.rc)
|
||||
set_target_properties(b25 PROPERTIES OUTPUT_NAME ${ARIBB25_CMD_NAME})
|
||||
target_link_libraries(b25 PRIVATE ${PCSC_LIBRARIES})
|
||||
target_link_libraries(b25 PRIVATE aribb25-shared)
|
||||
|
||||
configure_file(aribb25/config.h.in config.h @ONLY)
|
||||
configure_file(aribb25/version.rc.in version.rc @ONLY)
|
||||
configure_file(aribb25/version_b25.rc.in version_b25.rc @ONLY)
|
||||
|
||||
# ---------- install (Unix) ----------
|
||||
|
||||
if(UNIX AND NOT CYGWIN)
|
||||
|
||||
# ---------- libaribb1 ----------
|
||||
|
||||
configure_file(aribb25/libaribb1.pc.in ${CMAKE_SHARED_LIBRARY_PREFIX}${ARIBB1_LIB_NAME}.pc @ONLY)
|
||||
|
||||
install(TARGETS b1 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(TARGETS aribb1-static aribb1-shared ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES aribb25/arib_std_b25.h aribb25/b_cas_card.h aribb25/multi2.h aribb25/ts_section_parser.h aribb25/portable.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/aribb1)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${ARIBB1_LIB_NAME}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -DLDCONFIG_EXECUTABLE=${LDCONFIG_EXECUTABLE} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/PostInstall.cmake)")
|
||||
|
||||
# ---------- libaribb25 ----------
|
||||
|
||||
configure_file(aribb25/libaribb25.pc.in ${CMAKE_SHARED_LIBRARY_PREFIX}${ARIBB25_LIB_NAME}.pc @ONLY)
|
||||
|
||||
install(TARGETS b25 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
@ -137,9 +209,23 @@ if(UNIX AND NOT CYGWIN)
|
||||
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -DLDCONFIG_EXECUTABLE=${LDCONFIG_EXECUTABLE} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/PostInstall.cmake)")
|
||||
|
||||
add_custom_target(uninstall ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Uninstall.cmake)
|
||||
|
||||
# ---------- install (Windows) ----------
|
||||
|
||||
elseif(WIN32)
|
||||
|
||||
# ---------- libaribb1 ----------
|
||||
|
||||
install(TARGETS b1 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(TARGETS aribb1-static aribb1-shared ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES aribb25/arib_std_b25.h aribb25/b_cas_card.h aribb25/multi2.h aribb25/ts_section_parser.h aribb25/portable.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/aribb1)
|
||||
|
||||
# ---------- libaribb25 ----------
|
||||
|
||||
install(TARGETS b25 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(TARGETS aribb25-static aribb25-shared ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(FILES aribb25/arib_std_b25.h aribb25/b_cas_card.h aribb25/multi2.h aribb25/ts_section_parser.h aribb25/portable.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/aribb25)
|
||||
|
||||
add_custom_target(uninstall ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Uninstall.cmake)
|
||||
|
||||
endif()
|
||||
|
11
aribb25/libaribb1.pc.in
Normal file
11
aribb25/libaribb1.pc.in
Normal file
@ -0,0 +1,11 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/lib
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: @CMAKE_LIBRARY_PREFIX@@ARIBB1_LIB_NAME@
|
||||
Description: @ARIBB1_DESCRIPTION@
|
||||
URL: @ARIBB1_URL@
|
||||
Version: @ARIBB1_VERSION_STRING@
|
||||
Libs: -L${libdir} -l@ARIBB1_LIB_NAME@
|
||||
Cflags: -I${includedir}
|
17
aribb25/version_b1.c
Normal file
17
aribb25/version_b1.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include <stdio.h>
|
||||
#include <config.h>
|
||||
|
||||
#if defined(__GNUC__) || defined(__clang__)
|
||||
# if !defined(__APPLE__)
|
||||
const char elf_interp[] __attribute__((section(".interp"))) = ELF_INTERP;
|
||||
# endif
|
||||
#include <unistd.h>
|
||||
|
||||
void show_version(void)
|
||||
{
|
||||
fprintf(stderr, "libaribb1.so - ARIB STD-B1 shared library version %s (%s)\n", ARIBB25_VERSION_STRING, BUILD_GIT_REVISION);
|
||||
fprintf(stderr, " built with %s %s on %s\n", BUILD_CC_NAME, BUILD_CC_VERSION, BUILD_OS_NAME);
|
||||
_exit(0);
|
||||
}
|
||||
|
||||
#endif
|
48
aribb25/version_b1.rc.in
Normal file
48
aribb25/version_b1.rc.in
Normal file
@ -0,0 +1,48 @@
|
||||
#include <windows.h>
|
||||
#include <config.h>
|
||||
#pragma code_page(65001)
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION @ARIBB1_MAJOR_VERSION@,@ARIBB1_MINOR_VERSION@,@ARIBB1_PATCH_VERSION@,0
|
||||
PRODUCTVERSION @ARIBB1_MAJOR_VERSION@,@ARIBB1_MINOR_VERSION@,@ARIBB1_PATCH_VERSION@,0
|
||||
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
||||
#ifdef DEBUG
|
||||
FILEFLAGS VS_FF_DEBUG | VS_FF_PRERELEASE
|
||||
#else
|
||||
FILEFLAGS 0
|
||||
#endif
|
||||
FILEOS VOS_NT_WINDOWS32
|
||||
#ifdef ARIBB1_DLL
|
||||
FILETYPE VFT_DLL
|
||||
#else
|
||||
FILETYPE VFT_APP
|
||||
#endif
|
||||
FILESUBTYPE VFT2_UNKNOWN
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "080904b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "@ARIBB1_COMPANY@"
|
||||
VALUE "FileDescription", "@ARIBB1_PRODUCT@ built with @CMAKE_C_COMPILER_ID@ @CMAKE_C_COMPILER_VERSION@ on @CMAKE_SYSTEM@"
|
||||
VALUE "FileVersion", "@ARIBB1_VERSION_STRING@"
|
||||
VALUE "InternalName", "@PROJECT_NAME@"
|
||||
VALUE "LegalCopyright", "@ARIBB1_COPYRIGHT@"
|
||||
#if defined(ARIBB1_DLL)
|
||||
VALUE "OriginalFilename", "@CMAKE_SHARED_LIBRARY_PREFIX@@ARIBB1_LIB_NAME@@CMAKE_SHARED_LIBRARY_SUFFIX@"
|
||||
#else
|
||||
VALUE "OriginalFilename", "@ARIBB1_CMD_NAME@@CMAKE_EXECUTABLE_SUFFIX@"
|
||||
#endif
|
||||
#if defined(UNICODE)
|
||||
VALUE "ProductName", "@ARIBB1_PRODUCT@ UNICODE"
|
||||
#else
|
||||
VALUE "ProductName", "@ARIBB1_PRODUCT@"
|
||||
#endif
|
||||
VALUE "ProductVersion", "@ARIBB1_VERSION_STRING@ (" BUILD_GIT_REVISION ")"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x809, 1200
|
||||
END
|
||||
END
|
Loading…
x
Reference in New Issue
Block a user