ビルドシステムを CMake にマイグレーション
This commit is contained in:
parent
09770e3348
commit
32626ef1be
61
CMakeLists.txt
Normal file
61
CMakeLists.txt
Normal file
@ -0,0 +1,61 @@
|
||||
cmake_minimum_required(VERSION 2.8)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
|
||||
set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "limit build types" FORCE)
|
||||
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "default build type")
|
||||
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH True)
|
||||
|
||||
project(arib_std_b25 C)
|
||||
|
||||
set(ARIB25_LIB_NAME "arib25")
|
||||
set(ARIB25_CMD_NAME "b25")
|
||||
|
||||
set(ARIB25_URL "https://github.com/stz2012/libarib25")
|
||||
set(ARIB25_DESCRIPTION "Reference implementation of ARIB STD-B25")
|
||||
|
||||
set(ARIB25_MAJOR_VERSION "0")
|
||||
set(ARIB25_MINOR_VERSION "2")
|
||||
set(ARIB25_PATCH_VERSION "5")
|
||||
set(ARIB25_VERSION stz-${ARIB25_MAJOR_VERSION}.${ARIB25_MINOR_VERSION}.${ARIB25_PATCH_VERSION})
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "(GNU|CLang)")
|
||||
set(CMAKE_C_FLAGS "-fPIC -Wall")
|
||||
set(CMAKE_C_FLAGS_DEBUG "-O2 -g")
|
||||
set(CMAKE_C_FLAGS_RELEASE "-O2")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "-fvisibility=hidden")
|
||||
endif()
|
||||
|
||||
find_package(WINSCARD REQUIRED)
|
||||
|
||||
add_definitions("-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64")
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||
include_directories(${WINSCARD_INCLUDE_DIRS})
|
||||
|
||||
|
||||
add_library(arib25-objlib OBJECT src/arib_std_b25.c src/b_cas_card.c src/multi2.c src/ts_section_parser.c)
|
||||
|
||||
add_library(arib25-static STATIC $<TARGET_OBJECTS:arib25-objlib>)
|
||||
set_target_properties(arib25-static PROPERTIES OUTPUT_NAME ${ARIB25_LIB_NAME})
|
||||
target_link_libraries(arib25-static PRIVATE ${WINSCARD_LIBRARIES})
|
||||
|
||||
add_library(arib25-shared SHARED $<TARGET_OBJECTS:arib25-objlib>)
|
||||
set_target_properties(arib25-shared PROPERTIES OUTPUT_NAME ${ARIB25_LIB_NAME})
|
||||
set_target_properties(arib25-shared PROPERTIES SOVERSION ${ARIB25_MAJOR_VERSION})
|
||||
set_target_properties(arib25-shared PROPERTIES VERSION ${ARIB25_VERSION})
|
||||
target_link_libraries(arib25-shared PRIVATE ${WINSCARD_LIBRARIES})
|
||||
|
||||
|
||||
add_executable(b25 src/td.c)
|
||||
set_target_properties(b25 PROPERTIES OUTPUT_NAME ${ARIB25_CMD_NAME})
|
||||
target_link_libraries(b25 PRIVATE ${WINSCARD_LIBRARIES})
|
||||
target_link_libraries(b25 PRIVATE arib25-shared)
|
||||
|
||||
configure_file(src/libarib25.pc.in ${CMAKE_SHARED_LIBRARY_PREFIX}${ARIB25_LIB_NAME}.pc @ONLY)
|
||||
|
||||
install(TARGETS b25 RUNTIME DESTINATION bin)
|
||||
install(TARGETS arib25-static arib25-shared ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
|
||||
install(FILES src/arib_std_b25.h src/b_cas_card.h src/portable.h DESTINATION include/arib25)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${ARIB25_LIB_NAME}.pc DESTINATION lib/pkgconfig)
|
||||
|
||||
add_custom_target(uninstall ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Uninstall.cmake)
|
8
Makefile
8
Makefile
@ -1,8 +0,0 @@
|
||||
all:
|
||||
cd src; make all
|
||||
|
||||
clean:
|
||||
cd src; make clean
|
||||
|
||||
install:
|
||||
cd src; make install
|
@ -1,20 +0,0 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual C++ Express 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "arib_std_b25", "arib_std_b25.vcproj", "{6E77C1AC-A31A-49B9-9A52-9FE1E03B8FEC}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{6E77C1AC-A31A-49B9-9A52-9FE1E03B8FEC}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{6E77C1AC-A31A-49B9-9A52-9FE1E03B8FEC}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{6E77C1AC-A31A-49B9-9A52-9FE1E03B8FEC}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{6E77C1AC-A31A-49B9-9A52-9FE1E03B8FEC}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
@ -1,259 +0,0 @@
|
||||
<?xml version="1.0" encoding="shift_jis"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="arib_std_b25"
|
||||
ProjectGUID="{6E77C1AC-A31A-49B9-9A52-9FE1E03B8FEC}"
|
||||
RootNamespace="arib_std_b25"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UseUnicodeResponseFiles="false"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="false"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winscard.lib"
|
||||
OutputFile="$(OutDir)\b25.exe"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UseUnicodeResponseFiles="false"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="false"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="winscard.lib"
|
||||
OutputFile="$(OutDir)\b25.exe"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="ソース ファイル"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\src\arib_std_b25.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\b_cas_card.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\multi2.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\td.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\ts_section_parser.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="ヘッダー ファイル"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\src\arib_std_b25.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\arib_std_b25_error_code.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\b_cas_card.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\b_cas_card_error_code.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\multi2.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\multi2_error_code.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\portable.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\ts_common_types.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\ts_section_parser.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\src\ts_section_parser_error_code.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="リソース ファイル"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
4
cmake/FindWINSCARD.cmake
Normal file
4
cmake/FindWINSCARD.cmake
Normal file
@ -0,0 +1,4 @@
|
||||
if(UNIX)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(WINSCARD REQUIRED libpcsclite)
|
||||
endif()
|
24
cmake/Uninstall.cmake
Normal file
24
cmake/Uninstall.cmake
Normal file
@ -0,0 +1,24 @@
|
||||
set(MANIFEST "${CMAKE_CURRENT_BINARY_DIR}/install_manifest.txt")
|
||||
|
||||
if(NOT EXISTS ${MANIFEST})
|
||||
message(FATAL_ERROR "Cannot find install manifest: '${MANIFEST}'")
|
||||
endif()
|
||||
|
||||
file(STRINGS ${MANIFEST} files)
|
||||
foreach(file ${files})
|
||||
if(EXISTS ${file} OR IS_SYMLINK ${file})
|
||||
message(STATUS "Removing file: '${file}'")
|
||||
|
||||
exec_program(
|
||||
${CMAKE_COMMAND} ARGS "-E remove ${file}"
|
||||
OUTPUT_VARIABLE stdout
|
||||
RETURN_VALUE result
|
||||
)
|
||||
|
||||
if(NOT "${result}" STREQUAL 0)
|
||||
message(FATAL_ERROR "Failed to remove file: '${file}'.")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "File '${file}' does not exist.")
|
||||
endif()
|
||||
endforeach(file)
|
53
src/Makefile
53
src/Makefile
@ -1,53 +0,0 @@
|
||||
PREFIX = /usr/local
|
||||
MAJOR = 0
|
||||
MINOR = 2
|
||||
REVISION = 5
|
||||
VER = $(MAJOR).$(MINOR).$(REVISION)
|
||||
|
||||
DEST_HEADER = $(PREFIX)/include/arib25
|
||||
|
||||
# PC/SC Lite libraries and headers.
|
||||
PCSC_CFLAGS ?= `pkg-config libpcsclite --cflags`
|
||||
PCSC_LDLIBS ?= `pkg-config libpcsclite --libs`
|
||||
|
||||
CC = gcc
|
||||
CXX = g++
|
||||
CFLAGS = -O2 -g -fPIC -Wall $(PCSC_CFLAGS) -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
|
||||
|
||||
LIBS = $(PCSC_LDLIBS) -lm
|
||||
LDFLAGS =
|
||||
|
||||
OBJS = arib_std_b25.o b_cas_card.o multi2.o ts_section_parser.o
|
||||
HEADERS = arib_std_b25.h b_cas_card.h portable.h
|
||||
TARGET_APP = b25
|
||||
TARGET_LIB = libarib25.so
|
||||
TARGETS = $(TARGET_APP) $(TARGET_LIB)
|
||||
DEPEND = Makefile.dep
|
||||
SONAME = $(TARGET_LIB).$(MAJOR)
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJS) td.o $(TARGETS) $(DEPEND)
|
||||
|
||||
$(TARGET_APP): $(OBJS) td.o
|
||||
$(CXX) $(LDFLAGS) -o $(TARGET_APP) $(OBJS) td.o $(LIBS)
|
||||
|
||||
$(TARGET_LIB): $(OBJS)
|
||||
$(CXX) $(LDFLAGS) -shared -o $(TARGET_LIB) $(OBJS) $(LIBS) -Wl,-soname,$(SONAME)
|
||||
|
||||
$(DEPEND):
|
||||
$(CC) -fPIC -MM $(OBJS:.o=.c) td.c > $@
|
||||
|
||||
install: $(TARGET) install-headers
|
||||
install -m755 b25 $(PREFIX)/bin
|
||||
install -m755 $(TARGET_LIB) $(PREFIX)/lib/$(TARGET_LIB).$(VER)
|
||||
ln -sf $(PREFIX)/lib/$(TARGET_LIB).$(VER) $(PREFIX)/lib/$(TARGET_LIB).$(MAJOR)
|
||||
ln -sf $(PREFIX)/lib/$(TARGET_LIB).$(MAJOR) $(PREFIX)/lib/$(TARGET_LIB)
|
||||
ldconfig
|
||||
|
||||
install-headers:
|
||||
mkdir -p $(DEST_HEADER)
|
||||
install -m644 $(HEADERS) $(DEST_HEADER)
|
||||
|
||||
-include $(DEPEND)
|
12
src/libarib25.pc.in
Normal file
12
src/libarib25.pc.in
Normal file
@ -0,0 +1,12 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=${prefix}
|
||||
libdir=${exec_prefix}/lib
|
||||
includedir=${prefix}/include
|
||||
|
||||
Name: @CMAKE_LIBRARY_PREFIX@@ARIB25_LIB_NAME@
|
||||
Description: @ARIB25_DESCRIPTION@
|
||||
URL: @ARIB25_URL@
|
||||
Version: @ARIB25_VERSION@
|
||||
Requires: libpcsclite
|
||||
Libs: -L${libdir} -l@ARIB25_LIB_NAME@
|
||||
Cflags: -I${includedir}
|
@ -1,33 +0,0 @@
|
||||
CC = cl
|
||||
CFLAG = /c /MT /W4 /O2
|
||||
LINK = link
|
||||
LFLAG = /nologo
|
||||
LIBS = winscard.lib
|
||||
|
||||
ALL: b25.exe
|
||||
|
||||
arib_std_b25.obj: arib_std_b25.c arib_std_b25.h portable.h b_cas_card.h arib_std_b25_error_code.h multi2.h ts_section_parser.h ts_common_types.h
|
||||
$(CC) $(CFLAG) arib_std_b25.c
|
||||
|
||||
b_cas_card.obj: b_cas_card.c b_cas_card.h portable.h b_cas_card_error_code.h
|
||||
$(CC) $(CFLAG) b_cas_card.c
|
||||
|
||||
multi2.obj: multi2.c multi2.h portable.h multi2_error_code.h
|
||||
$(CC) $(CFLAG) multi2.c
|
||||
|
||||
td.obj: td.c arib_std_b25.h portable.h b_cas_card.h
|
||||
$(CC) $(CFLAG) td.c
|
||||
|
||||
ts_section_parser.obj: ts_section_parser.c ts_section_parser.h ts_common_types.h portable.h ts_section_parser_error_code.h
|
||||
$(CC) $(CFLAG) ts_section_parser.c
|
||||
|
||||
OBJ = arib_std_b25.obj b_cas_card.obj multi2.obj td.obj ts_section_parser.obj
|
||||
|
||||
b25.exe: $(OBJ)
|
||||
$(LINK) $(LFLAG) $(LIBS) /OUT:b25.exe $(OBJ)
|
||||
|
||||
clean:
|
||||
DEL *.obj
|
||||
DEL *.exe
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user