Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed Git build version in the about dialog #122

Merged
merged 2 commits into from
Jan 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions plugins/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,24 @@ target_link_libraries(plugins-common
PRIVATE sfizz::internal sfizz::sfizz)
add_library(sfizz::plugins-common ALIAS plugins-common)

add_custom_target(generate_plugins_git_build_id
COMMAND
"${CMAKE_COMMAND}"
"-DSOURCE_DIR=${PROJECT_SOURCE_DIR}"
"-DOUTPUT_FILE=${PROJECT_BINARY_DIR}/git-build-id/PluginGitBuildId.c"
"-DPREFIX=Plugin"
"-P" "${PROJECT_SOURCE_DIR}/library/cmake/GitBuildID.cmake"
BYPRODUCTS
"${PROJECT_BINARY_DIR}/git-build-id/PluginGitBuildId.c"
)
add_library(plugins_git_build_id STATIC EXCLUDE_FROM_ALL
"${PROJECT_SOURCE_DIR}/plugins/git-build-id/PluginGitBuildId.h"
"${PROJECT_BINARY_DIR}/git-build-id/PluginGitBuildId.c"
)
target_include_directories(plugins_git_build_id PUBLIC "${PROJECT_SOURCE_DIR}/plugins/git-build-id")
add_dependencies(plugins_git_build_id generate_plugins_git_build_id)
add_library(plugins::git_build_id ALIAS plugins_git_build_id)

# Link system dependencies
if(WIN32)
elseif(ANDROID)
Expand Down
20 changes: 12 additions & 8 deletions plugins/editor/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -99,9 +99,12 @@ add_library(sfizz_editor STATIC EXCLUDE_FROM_ALL
)
add_library(sfizz::editor ALIAS sfizz_editor)

target_include_directories(sfizz_editor PUBLIC "src")
target_include_directories(sfizz_editor PUBLIC src)
target_link_libraries(sfizz_editor PUBLIC sfizz::messaging sfizz::plugins-common)
target_link_libraries(sfizz_editor PRIVATE sfizz::vstgui)
target_link_libraries(sfizz_editor PRIVATE
sfizz::vstgui
plugins::git_build_id
)
target_compile_definitions(sfizz_editor PRIVATE
"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\"")
if(APPLE)
Expand Down Expand Up @@ -137,9 +140,13 @@ else()
target_include_directories(sfizz_editor PRIVATE ${sfizz-gio_INCLUDE_DIRS})
target_link_libraries(sfizz_editor PRIVATE ${sfizz-gio_LIBRARIES})
endif()
target_link_libraries(sfizz_editor PRIVATE sfizz::colorspaces sfizz::stb_image
sfizz::bit_array sfizz::filesystem sfizz::pugixml)

target_link_libraries(sfizz_editor PRIVATE
sfizz::colorspaces
sfizz::stb_image
sfizz::bit_array
sfizz::filesystem
sfizz::pugixml
)
# layout tool
if(NOT CMAKE_CROSSCOMPILING)
set(LAYOUTMAKER_SOURCES
Expand All @@ -161,6 +168,3 @@ if(NOT CMAKE_CROSSCOMPILING)
DEPENDS layout-maker "${CMAKE_CURRENT_SOURCE_DIR}/layout/${_layout}.fl")
endforeach()
endif()

# Git build identifier
target_link_libraries(sfizz_editor PRIVATE sfizz-git-build-id)
6 changes: 3 additions & 3 deletions plugins/editor/src/editor/DlgAbout.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include "DlgAbout.h"
#include "GUIComponents.h"
#include "GUIDefs.h"
#include "GitBuildId.h"
#include "PluginGitBuildId.h"
#include "NativeHelpers.h"

#include "utility/vstgui_before.h"
Expand Down Expand Up @@ -53,8 +53,8 @@ SAboutDialog::SAboutDialog(const CRect& bounds)

const char* version = SFIZZ_VERSION;
std::string versionBuf;
if (GitBuildId[0]) {
versionBuf = absl::StrCat(SFIZZ_VERSION ".", GitBuildId);
if (PluginGitBuildId[0]) {
versionBuf = absl::StrCat(SFIZZ_VERSION ".", PluginGitBuildId);
version = versionBuf.c_str();
}
#if 0
Expand Down
21 changes: 21 additions & 0 deletions plugins/git-build-id/PluginGitBuildId.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// SPDX-License-Identifier: BSD-2-Clause

// This code is part of the sfizz library and is licensed under a BSD 2-clause
// license. You should have receive a LICENSE.md file along with the code.
// If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz

#pragma once

#if defined(__cplusplus)
extern "C" {
#endif

/**
* @brief Short identifier of the current head commit.
* This generated identifier is empty if the build is not from a Git repository.
*/
extern const char* PluginGitBuildId;

#if defined(__cplusplus)
} // extern "C"
#endif
13 changes: 7 additions & 6 deletions plugins/puredata/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,13 @@ endfunction()
add_pd_external(sfizz_puredata "sfizz_puredata.c")
target_compile_definitions(sfizz_puredata PRIVATE
"MIDI_CC_COUNT=${MIDI_CC_COUNT}"
"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\"")
target_link_libraries(sfizz_puredata PRIVATE sfizz::import sfizz::sfizz)

"SFIZZ_VERSION=\"${CMAKE_PROJECT_VERSION}\""
)
target_link_libraries(sfizz_puredata PRIVATE
sfizz::import
sfizz::sfizz
plugins::git_build_id
)
set_target_properties(sfizz_puredata PROPERTIES
OUTPUT_NAME "sfizz"
LIBRARY_OUTPUT_DIRECTORY "${PUREDATA_BINARY_DIR}/$<0:>")
Expand All @@ -38,9 +42,6 @@ if(MINGW)
PROPERTY LINK_FLAGS " -static")
endif()

# Git build identifier
target_link_libraries(sfizz_puredata PRIVATE sfizz-git-build-id)

# Copy resources
copy_puredata_resources(sfizz_puredata
"${CMAKE_CURRENT_SOURCE_DIR}"
Expand Down
6 changes: 3 additions & 3 deletions plugins/puredata/sfizz_puredata.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
// license. You should have receive a LICENSE.md file along with the code.
// If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz

#include "GitBuildId.h"
#include "PluginGitBuildId.h"
#include <m_pd.h>
#include <sfizz.h>
#include <sfizz/import/sfizz_import.h>
Expand Down Expand Up @@ -294,8 +294,8 @@ __attribute__((visibility("default")))
#endif
void sfizz_setup()
{
if (GitBuildId[0])
post("sfizz external for Puredata, version '%s.%s'", SFIZZ_VERSION, GitBuildId);
if (PluginGitBuildId[0])
post("sfizz external for Puredata, version '%s.%s'", SFIZZ_VERSION, PluginGitBuildId);
else
post("sfizz external for Puredata, version '%s'", SFIZZ_VERSION);

Expand Down