diff --git a/CMakeLists.txt b/CMakeLists.txt index e5e4208..1e8d95f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,4 +20,9 @@ include(cmake/func/AddTargetSource.cmake) add_subdirectory(deps) add_subdirectory(library) -add_subdirectory(app) + +option(JUKE_BUILD_APP "Build Media Player app" ${PROJECT_IS_TOP_LEVEL}) + +if(JUKE_BUILD_APP) + add_subdirectory(app) +endif() diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index 040e84b..e363f42 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -3,9 +3,18 @@ project(jukebox-app) add_library(jukebox-app) add_library(jukebox-app::lib ALIAS jukebox-app) +# gvdi +FetchContent_Declare(gvdi + GIT_REPOSITORY https://github.com/karnkaul/gvdi + GIT_TAG v0.2.5 + GIT_SHALLOW TRUE +) +FetchContent_MakeAvailable(gvdi) + target_link_libraries(jukebox-app PUBLIC - juke::lib + juke::juke + gvdi::gvdi ) # Glob all headers diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index eb31c16..8e913f2 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -4,14 +4,7 @@ project(jukebox-deps) include(FetchContent) set(BUILD_SHARED_LIBS OFF) -set(fetch_list gvdi capo djson) - -# gvdi -FetchContent_Declare(gvdi - GIT_REPOSITORY https://github.com/karnkaul/gvdi - GIT_TAG v0.2.5 - GIT_SHALLOW TRUE -) +set(fetch_list capo) # capo FetchContent_Declare( @@ -32,14 +25,6 @@ if(JUKE_USE_LIBXMP) list(APPEND fetch_list libxmp) endif() -# djson -FetchContent_Declare( - djson - GIT_REPOSITORY https://github.com/karnkaul/djson - GIT_TAG v2.1.1 - GIT_SHALLOW TRUE -) - set(BUILD_SHARED OFF CACHE BOOL "" FORCE) set(LIBXMP_PIC ON CACHE BOOL "" FORCE) FetchContent_MakeAvailable(${fetch_list}) @@ -48,7 +33,5 @@ add_library(jukebox-deps INTERFACE) add_library(jukebox::deps ALIAS jukebox-deps) target_link_libraries(jukebox-deps INTERFACE - djson::djson capo::capo - gvdi::gvdi ) diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index c0d9ca0..c302356 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -1,32 +1,32 @@ project(juke-lib) -add_library(juke) -add_library(juke::lib ALIAS juke) +add_library(${PROJECT_NAME}) +add_library(juke::juke ALIAS ${PROJECT_NAME}) -target_link_libraries(juke +target_link_libraries(${PROJECT_NAME} PUBLIC jukebox::deps ) if(JUKE_USE_LIBXMP) - target_link_libraries(juke + target_link_libraries(${PROJECT_NAME} PRIVATE libxmp::xmp_static ) - target_compile_definitions(juke PRIVATE JUKE_USE_LIBXMP) + target_compile_definitions(${PROJECT_NAME} PRIVATE JUKE_USE_LIBXMP) endif() # Glob all headers file(GLOB_RECURSE headers "include/*.hpp") # Set as FILE_SET, this also sets the include directory -target_sources(juke PUBLIC FILE_SET HEADERS +target_sources(${PROJECT_NAME} PUBLIC FILE_SET HEADERS BASE_DIRS include FILES ${headers} ) # Setup our include structure -target_include_directories(juke +target_include_directories(${PROJECT_NAME} PRIVATE "src" ) diff --git a/library/src/CMakeLists.txt b/library/src/CMakeLists.txt index 2ade06a..618f8d7 100644 --- a/library/src/CMakeLists.txt +++ b/library/src/CMakeLists.txt @@ -1,6 +1,6 @@ add_subdirectory(core) -target_sources(juke PRIVATE +target_sources(juke-lib PRIVATE juke.cpp ) diff --git a/library/src/core/CMakeLists.txt b/library/src/core/CMakeLists.txt index 0dca6b4..a6d0724 100644 --- a/library/src/core/CMakeLists.txt +++ b/library/src/core/CMakeLists.txt @@ -1,5 +1,5 @@ -target_sources(juke PRIVATE +target_sources(juke-lib PRIVATE AudioFile.cpp XMFile.cpp XMStream.cpp