From 994614499534be82d5da36ac95a3c66b8dda3539 Mon Sep 17 00:00:00 2001 From: a dinosaur Date: Tue, 21 Mar 2023 14:25:14 +1100 Subject: [PATCH] combine all (except spctools) as subprojects --- .gitignore | 12 ++++++++++++ CMakeLists.txt | 10 ++++++++++ common/CMakeLists.txt | 8 ++++++++ dsptools/CMakeLists.txt | 17 +++-------------- dsptools/libdsptool/CMakeLists.txt | 27 ++++++++++++--------------- dsptools/libdsptool/dsptool.h | 2 +- neotools/.gitignore | 10 ---------- neotools/CMakeLists.txt | 17 ++++------------- 8 files changed, 50 insertions(+), 53 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 common/CMakeLists.txt delete mode 100644 neotools/.gitignore diff --git a/.gitignore b/.gitignore index 9f11b75..ecfde15 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,13 @@ .idea/ +**/build/ +**/cmake-build-*/ + +*.exe +*.log +*.wav + +neotools/**/*.pcm +neotools/**/*.vgm +neotools/**/*.vgz + +.DS_Store diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..9c127be --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.15 FATAL_ERROR) +project(VGM-Tools LANGUAGES C) + +set(WARNINGS + $<$:-Wall -Wextra -pedantic -Wno-unused-parameter> + $<$:/Wall /wd4100>) + +add_subdirectory(common) +add_subdirectory(dsptools) +add_subdirectory(neotools) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt new file mode 100644 index 0000000..9181ec8 --- /dev/null +++ b/common/CMakeLists.txt @@ -0,0 +1,8 @@ +add_library(headers INTERFACE) +add_library(Common::headers ALIAS headers) +target_include_directories(headers INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) + +add_library(wave endian.h wave.h wave.c wavefile.c) +add_library(Common::wave ALIAS wave) +target_compile_options(wave PRIVATE ${WARNINGS}) +target_link_libraries(wave PUBLIC headers) diff --git a/dsptools/CMakeLists.txt b/dsptools/CMakeLists.txt index 867a440..bd31e88 100644 --- a/dsptools/CMakeLists.txt +++ b/dsptools/CMakeLists.txt @@ -1,18 +1,7 @@ -cmake_minimum_required(VERSION 3.15 FATAL_ERROR) -project(dsptools LANGUAGES C) - -set(COMMON "${CMAKE_SOURCE_DIR}/../common") - add_subdirectory(libdsptool) -set(HEADERS ${COMMON}/wave.h ${COMMON}/endian.h) -set(SOURCES ${COMMON}/wavefile.c ${COMMON}/wave.c dspdecode.c) - -add_executable(dspdecode ${HEADERS} ${SOURCES}) - +add_executable(dspdecode dspdecode.c) set_property(TARGET dspdecode PROPERTY C_STANDARD 99) target_include_directories(dspdecode PRIVATE ${COMMON}) -target_link_libraries(dspdecode DspTool::DspTool) -target_compile_options(dspdecode PRIVATE - $<$:-Wall -Wextra -pedantic> - $<$:/Wall>) +target_link_libraries(dspdecode Common::wave DspTool::DspTool) +target_compile_options(dspdecode PRIVATE ${WARNINGS}) diff --git a/dsptools/libdsptool/CMakeLists.txt b/dsptools/libdsptool/CMakeLists.txt index 939faeb..7e61473 100644 --- a/dsptools/libdsptool/CMakeLists.txt +++ b/dsptools/libdsptool/CMakeLists.txt @@ -1,21 +1,18 @@ -cmake_minimum_required(VERSION 3.15 FATAL_ERROR) -project(DspTool LANGUAGES C) +option(DSPTOOL_BUILD_SHARED_LIBS "Build as a Shared Object or DLL" OFF) -option(BUILD_SHARED_LIBS "Build as a Shared Object or DLL" OFF) - -set(HEADERS dsptool.h ${COMMON}/util.h) +set(HEADERS dsptool.h) set(SOURCES math.c decode.c encode.c) -add_library(DspTool ${HEADERS} ${SOURCES}) +if (DSPTOOL_BUILD_SHARED_LIBS) + add_library(DspTool SHARED ${HEADERS} ${SOURCES}) + target_compile_definitions(DspTool PRIVATE BUILD_SHARED) +else() + add_library(DspTool STATIC ${HEADERS} ${SOURCES}) + target_compile_definitions(DspTool PRIVATE BUILD_STATIC) +endif() add_library(DspTool::DspTool ALIAS DspTool) set_property(TARGET DspTool PROPERTY C_STANDARD 99) -target_include_directories(DspTool - PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} - PRIVATE ${COMMON}) -if (BUILD_SHARED_LIBS) - target_compile_definitions(DspTool PRIVATE BUILD_SHARED) -endif() -target_compile_options(DspTool PRIVATE - $<$:-Wall -Wextra -pedantic -Wno-unused-parameter> - $<$:/Wall /wd4100>) +target_include_directories(DspTool PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) +target_compile_options(DspTool PRIVATE ${WARNINGS}) +target_link_libraries(DspTool PRIVATE Common::headers) diff --git a/dsptools/libdsptool/dsptool.h b/dsptools/libdsptool/dsptool.h index b4b2521..fe4ea6d 100644 --- a/dsptools/libdsptool/dsptool.h +++ b/dsptools/libdsptool/dsptool.h @@ -14,7 +14,7 @@ extern "C" { #if defined( _WIN32 ) || defined( __CYGWIN__ ) # ifdef BUILD_SHARED # define DLLEXPORT __declspec(dllexport) -# elif defined( WHY_ARE_YOU_USING_THIS_AS_A_DLL ) +# elif !defined( BUILD_STATIC ) # define DLLEXPORT __declspec(dllimport) # else # define DLLEXPORT diff --git a/neotools/.gitignore b/neotools/.gitignore deleted file mode 100644 index c61056b..0000000 --- a/neotools/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -*.exe -*.vgm -*.vgz -*.log -*.pcm -*.wav - -.idea/ -build/ -cmake-build-*/ diff --git a/neotools/CMakeLists.txt b/neotools/CMakeLists.txt index fb9d78c..1108a33 100644 --- a/neotools/CMakeLists.txt +++ b/neotools/CMakeLists.txt @@ -1,20 +1,11 @@ -project(neoadpcmtools LANGUAGES C) -cmake_minimum_required(VERSION "3.1" FATAL_ERROR) - -set(COMMON "${CMAKE_SOURCE_DIR}/../common") -set(WARNINGS - $<$:-Wall -Wextra -pedantic -Wno-unused-parameter> - $<$:/Wall /wd4100>) - -add_executable(adpcm ${COMMON}/util.h ${COMMON}/wave.h ${COMMON}/wave.c ${COMMON}/wavefile.c adpcm.c) +add_executable(adpcm adpcm.c) set_property(TARGET adpcm PROPERTY C_STANDARD 99) target_compile_options(adpcm PRIVATE ${WARNINGS}) -target_include_directories(adpcm PRIVATE ${COMMON}) -target_link_libraries(adpcm $<$:m>) +target_link_libraries(adpcm Common::wave $<$:m>) -add_executable(adpcmb ${COMMON}/util.h adpcmb.c) +add_executable(adpcmb adpcmb.c) target_compile_options(adpcmb PRIVATE ${WARNINGS}) -target_include_directories(adpcmb PRIVATE ${COMMON}) +target_link_libraries(adpcmb Common::headers) add_executable(neoadpcmextract autoextract.c neoadpcmextract.c) set_property(TARGET neoadpcmextract PROPERTY C_STANDARD 99)