Skip to content
This repository has been archived by the owner on Nov 22, 2023. It is now read-only.

Commit

Permalink
Replace __FILE__ with __FILENAME__ relative project path
Browse files Browse the repository at this point in the history
  • Loading branch information
philipnbbc committed Jan 13, 2023
1 parent 68c863f commit aca802e
Show file tree
Hide file tree
Showing 22 changed files with 107 additions and 22 deletions.
11 changes: 11 additions & 0 deletions cmake/source_filename.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Adds the __FILENAME__=filename compile definition.
# Based on https://stackoverflow.com/a/27990434, but changed to define __FILENAME__ to be a relative project path
function(set_source_filename target sources_base_dir project_dirname)
get_target_property(source_files "${target}" SOURCES)
foreach(source_file ${source_files})
file(RELATIVE_PATH rel_path ${PROJECT_SOURCE_DIR} "${sources_base_dir}/${source_file}")
set_property(
SOURCE "${source_file}" APPEND
PROPERTY COMPILE_DEFINITIONS "__FILENAME__=\"${project_dirname}/${rel_path}\"")
endforeach()
endfunction()
3 changes: 3 additions & 0 deletions examples/archive/info/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,7 @@ target_link_libraries(archive_mxf_info
MXF
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(archive_mxf_info "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

install(TARGETS archive_mxf_info DESTINATION bin)
5 changes: 5 additions & 0 deletions examples/archive/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ target_link_libraries(test_timecode_index
MXF
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(test_timecode_index "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

add_executable(test_write_archive_mxf test_write_archive_mxf.c)
target_link_libraries(test_write_archive_mxf
writearchivemxf
Expand All @@ -16,6 +19,8 @@ if(NOT MSVC)
)
endif()

set_source_filename(test_write_archive_mxf "${CMAKE_CURRENT_LIST_DIR}" "libMXF")


# Add custom targets for creating samples and test data
add_custom_target(libMXF_test_archive_samples)
Expand Down
2 changes: 1 addition & 1 deletion examples/archive/test/test_timecode_index.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
#define CHECK(cmd) \
if (!(cmd)) \
{ \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILE__, __LINE__); \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILENAME__, __LINE__); \
exit(1); \
}

Expand Down
6 changes: 6 additions & 0 deletions examples/archive/write/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ set_target_properties(writearchivemxf PROPERTIES
SOVERSION ${PROJECT_VERSION_MAJOR}
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(writearchivemxf "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

install(TARGETS writearchivemxf
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
Expand All @@ -42,3 +45,6 @@ target_link_libraries(update_archive_mxf
writearchivemxf
MXF
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(update_archive_mxf "${CMAKE_CURRENT_LIST_DIR}" "libMXF")
7 changes: 7 additions & 0 deletions examples/avidmxfinfo/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ set_target_properties(avidmxfinfo PROPERTIES
SOVERSION ${PROJECT_VERSION_MAJOR}
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(avidmxfinfo "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

install(TARGETS avidmxfinfo
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
Expand All @@ -39,6 +42,10 @@ target_link_libraries(avidmxfinfo-bin
set_target_properties(avidmxfinfo-bin PROPERTIES
OUTPUT_NAME avidmxfinfo
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(avidmxfinfo-bin "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

install(TARGETS avidmxfinfo-bin DESTINATION bin)


Expand Down
2 changes: 1 addition & 1 deletion examples/avidmxfinfo/avid_mxf_info.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
#define DEBUG_PRINT_ERROR(cmd) \
if (printDebugError) \
{ \
fprintf(stderr, "'%s' failed in %s, line %d\n", #cmd, __FILE__, __LINE__); \
fprintf(stderr, "'%s' failed in %s, line %d\n", #cmd, __FILENAME__, __LINE__); \
} \

#define CHECK(cmd, ecode) \
Expand Down
6 changes: 6 additions & 0 deletions examples/reader/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ set_target_properties(mxfreader PROPERTIES
SOVERSION ${PROJECT_VERSION_MAJOR}
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(mxfreader "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

install(TARGETS mxfreader
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
Expand All @@ -42,6 +45,9 @@ if(LIBMXF_BUILD_TESTING AND (NOT DEFINED BUILD_TESTING OR BUILD_TESTING))
MXF
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(test_mxf_reader "${CMAKE_CURRENT_LIST_DIR}" "libMXF")


if(LIBMXF_TEST_WITH_VALGRIND)
set(command_prefix valgrind --leak-check=full -q --error-exitcode=1)
Expand Down
6 changes: 6 additions & 0 deletions examples/transfertop2/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ target_link_libraries(avid_mxf_to_p2
MXF
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(avid_mxf_to_p2 "${CMAKE_CURRENT_LIST_DIR}" "libMXF")


if(LIBMXF_BUILD_TESTING AND (NOT DEFINED BUILD_TESTING OR BUILD_TESTING))
add_executable(test_avid_mxf_to_p2
Expand All @@ -16,4 +19,7 @@ if(LIBMXF_BUILD_TESTING AND (NOT DEFINED BUILD_TESTING OR BUILD_TESTING))
avid_mxf_to_p2
MXF
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(test_avid_mxf_to_p2 "${CMAKE_CURRENT_LIST_DIR}" "libMXF")
endif()
3 changes: 3 additions & 0 deletions examples/writeaviddv50/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ target_link_libraries(writeaviddv50
MXF
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(writeaviddv50 "${CMAKE_CURRENT_LIST_DIR}" "libMXF")


# Add custom targets for creating samples and test data
add_custom_target(libMXF_test_writeaviddv50_samples)
Expand Down
10 changes: 10 additions & 0 deletions examples/writeavidmxf/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ set_target_properties(writeavidmxf PROPERTIES
SOVERSION ${PROJECT_VERSION_MAJOR}
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(writeavidmxf "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

# Only install if build is enabled, and not only for testing avidmxfinfo & reader
if(LIBMXF_BUILD_EXAMPLES OR LIBMXF_BUILD_WRITEAVIDMXF)
install(TARGETS writeavidmxf
Expand All @@ -48,6 +51,10 @@ set_target_properties(writeavidmxf-bin PROPERTIES
OUTPUT_NAME writeavidmxf
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(writeavidmxf-bin "${CMAKE_CURRENT_LIST_DIR}" "libMXF")


# Only install if build is enabled, and not only for testing avidmxfinfo & reader
if(LIBMXF_BUILD_EXAMPLES OR LIBMXF_BUILD_WRITEAVIDMXF)
install(TARGETS writeavidmxf-bin DESTINATION bin)
Expand All @@ -59,6 +66,9 @@ if(LIBMXF_BUILD_TESTING AND (NOT DEFINED BUILD_TESTING OR BUILD_TESTING))
create_test_essence.c
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(writeavidmxf_create_test_essence "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

set(tests_25
IMX30 IMX40 IMX50
DNxHD1080p1235 DNxHD1080p1237 DNxHD1080p1238
Expand Down
3 changes: 3 additions & 0 deletions mxf/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,9 @@ set_target_properties(MXF PROPERTIES
SOVERSION ${PROJECT_VERSION_MAJOR}
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(MXF "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

install(TARGETS MXF
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
Expand Down
26 changes: 13 additions & 13 deletions mxf/mxf_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,20 @@ extern "C"
* ...OFAIL - check succeeds, otherwise goto fail
*/

#define CHK_ORET(cmd) \
do { \
if (!(cmd)) { \
mxf_log_error("'%s' failed, in %s:%d\n", #cmd, __FILE__, __LINE__); \
return 0; \
} \
#define CHK_ORET(cmd) \
do { \
if (!(cmd)) { \
mxf_log_error("'%s' failed, in %s:%d\n", #cmd, __FILENAME__, __LINE__); \
return 0; \
} \
} while (0)

#define CHK_OFAIL(cmd) \
do { \
if (!(cmd)) { \
mxf_log_error("'%s' failed, in %s:%d\n", #cmd, __FILE__, __LINE__); \
goto fail; \
} \
#define CHK_OFAIL(cmd) \
do { \
if (!(cmd)) { \
mxf_log_error("'%s' failed, in %s:%d\n", #cmd, __FILENAME__, __LINE__); \
goto fail; \
} \
} while (0)

#define CHK_MALLOC_ORET(var, type) \
Expand Down Expand Up @@ -93,7 +93,7 @@ extern "C"

/* e.g. mxf_log_error("Some error %d" LOG_LOC_FORMAT, x, LOG_LOC_PARAMS); */
#define LOG_LOC_FORMAT ", in %s:%d\n"
#define LOG_LOC_PARAMS __FILE__, __LINE__
#define LOG_LOC_PARAMS __FILENAME__, __LINE__



Expand Down
6 changes: 3 additions & 3 deletions mxf/mxf_win32_mmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ static BOOL mxf_win32_mmap_MapViewOfFile(MXFFileSysData *sysData)
return sysData->pData != NULL;

fail:
mxf_win32_log_errorId(GetLastError(), __FILE__, __LINE__);
mxf_win32_log_errorId(GetLastError(), __FILENAME__, __LINE__);
return FALSE;
}

Expand Down Expand Up @@ -253,7 +253,7 @@ static int mxf_win32_mmap_seek(MXFFileSysData *sysData, int64_t offset, int when
return TRUE;

fail:
mxf_win32_log_errorId(GetLastError(), __FILE__, __LINE__);
mxf_win32_log_errorId(GetLastError(), __FILENAME__, __LINE__);
return FALSE;
}

Expand Down Expand Up @@ -457,7 +457,7 @@ static int mxf_win32_mmap_open(const TCHAR *filename, int flags, OpenMode mode,
return 1;

fail:
mxf_win32_log_errorId(GetLastError(), __FILE__, __LINE__);
mxf_win32_log_errorId(GetLastError(), __FILENAME__, __LINE__);
if (newDiskFile)
{
if (newDiskFile->pData)
Expand Down
16 changes: 16 additions & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ foreach(test ${noarg_tests})
add_executable(${test} ${test}.c)
target_link_libraries(${test} MXF)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(${test} "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

add_test(NAME libMXF_${test}
COMMAND ${command_prefix} $<TARGET_FILE:${test}>
)
Expand All @@ -31,6 +34,9 @@ foreach(test ${tests_with_output})
add_executable(${test} ${test}.c)
target_link_libraries(${test} MXF)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(${test} "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

add_test(NAME libMXF_${test}
COMMAND ${command_prefix} $<TARGET_FILE:${test}> ${test}.mxf
)
Expand All @@ -49,6 +55,9 @@ foreach(test ${test_checksums})
add_executable(${test} ${test}.c)
target_link_libraries(${test} MXF)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(${test} "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

set(test_name libMXF_${test})
set(args
-D SAMPLE_OUTPUT_FILE=${test}.mxf
Expand Down Expand Up @@ -86,13 +95,20 @@ endforeach()
# Run test_file using a shell session with stdin and stdout
add_executable(test_file test_file.c)
target_link_libraries(test_file MXF)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(test_file "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

if (WIN32)
# Run run_test_file.bat via a C-executable to workaround cmake "COMMAND cmd /C ..." not working
# because cmake 3.20 insists on quoting the '/C'.
add_executable(win32_cmd_test_file
win32_cmd_test_file.c
)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(win32_cmd_test_file "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

add_test(NAME libMXF_test_file
COMMAND $<TARGET_FILE:win32_cmd_test_file> ${CMAKE_CURRENT_SOURCE_DIR}/run_test_file.bat $<TARGET_FILE:test_file> test_file.mxf
)
Expand Down
2 changes: 1 addition & 1 deletion test/test_mxf_cache_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
#define CHECK(cmd) \
if (!(cmd)) \
{ \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILE__, __LINE__); \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILENAME__, __LINE__); \
exit(1); \
}

Expand Down
2 changes: 1 addition & 1 deletion test/test_mxf_memory_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
#define CHECK(cmd) \
if (!(cmd)) \
{ \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILE__, __LINE__); \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILENAME__, __LINE__); \
exit(1); \
}

Expand Down
2 changes: 1 addition & 1 deletion test/test_mxf_page_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ static const char *g_testFile = "pagetest___%d.mxf";
#define CHECK(cmd) \
if (!(cmd)) \
{ \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILE__, __LINE__); \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILENAME__, __LINE__); \
exit(1); \
}

Expand Down
2 changes: 1 addition & 1 deletion test/test_mxf_rw_intl_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
#define CHECK(cmd) \
if (!(cmd)) \
{ \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILE__, __LINE__); \
fprintf(stderr, "'%s' failed in %s:%d\n", #cmd, __FILENAME__, __LINE__); \
exit(1); \
}

Expand Down
3 changes: 3 additions & 0 deletions tools/MXFDump/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,7 @@ if(UNIX)
target_compile_options(MXFDump PRIVATE -Wno-unused-function)
endif()

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(MXFDump "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

install(TARGETS MXFDump DESTINATION bin)
3 changes: 3 additions & 0 deletions tools/extract_avid_extensions/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,6 @@ target_include_directories(extract_avid_extensions PUBLIC
${PROJECT_SOURCE_DIR}
)
target_link_libraries(extract_avid_extensions MXF)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(extract_avid_extensions "${CMAKE_CURRENT_LIST_DIR}" "libMXF")
3 changes: 3 additions & 0 deletions tools/extract_jpeg2000_labels/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,6 @@ target_include_directories(extract_jpeg2000_labels PUBLIC
${PROJECT_SOURCE_DIR}
)
target_link_libraries(extract_jpeg2000_labels MXF)

include("${PROJECT_SOURCE_DIR}/cmake/source_filename.cmake")
set_source_filename(extract_jpeg2000_labels "${CMAKE_CURRENT_LIST_DIR}" "libMXF")

0 comments on commit aca802e

Please sign in to comment.