tux4kids / t4kcommon

GNU General Public License v3.0
4 stars 11 forks source link

linebreak CMakeLists on Mac #1

Open sonicth opened 7 years ago

sonicth commented 7 years ago

Compile definitions in src/linebreak/CMakeLists.txt seems to be without value. The following fixes makefile generation:

-set_directory_properties(PROPERTIES COMPILE_DEFINITIONS
+set_directory_properties(PROPERTIES #COMPILE_DEFINITIONS
        LOCALEDIR='\"${LOCALE_DIR}\"'           
        LOCALE_ALIAS_PATH='\"${LOCALE_DIR}\"'
        LIBDIR='\"${TOP_SRC_DIR}\"'
h01ger commented 3 years ago

what's the problem here?

andy5995 commented 2 years ago

I'm not sure yet if this is related, but this is my output when building with cmake 3.22.1 on Manjaro

[andy@prometheus cmake_build]$ make
[  3%] Building C object src/linebreak/CMakeFiles/linebreak.dir/linebreak.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
/home/andy/src/tux4kids/t4kcommon/src/linebreak/linebreak.c: In function ‘u8_possible_linebreaks’:
/home/andy/src/tux4kids/t4kcommon/src/linebreak/linebreak.c:163:19: warning: implicit declaration of function ‘u8_mbtouc_unsafe’ [-Wimplicit-function-declaration]
  163 |       int count = u8_mbtouc_unsafe (&uc, s, s_end - s);
      |                   ^~~~~~~~~~~~~~~~
[  7%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u16-mbtouc-aux.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 11%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u16-mbtouc-unsafe-aux.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 15%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u16-mbtouc-unsafe.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 19%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u16-mbtouc.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 23%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u8-mbtouc-aux.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 26%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u8-mbtouc-unsafe-aux.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 30%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u8-mbtouc-unsafe.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 34%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u8-mbtouc.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 38%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u8-uctomb-aux.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 42%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u8-uctomb.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 46%] Building C object src/linebreak/CMakeFiles/linebreak.dir/uniwidth/width.c.o
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
[ 50%] Linking C static library liblinebreak.a
[ 50%] Built target linebreak
[ 53%] Building C object src/CMakeFiles/t4k_common.dir/t4k_audio.c.o
In file included from /home/andy/src/tux4kids/t4kcommon/src/t4k_audio.c:28:
/home/andy/src/tux4kids/t4kcommon/src/t4k_common.h:248:1: error: multiple storage classes in declaration specifiers
  248 | extern static char wrapped_lines[MAX_LINES][MAX_LINEWIDTH]; //!< Global buffer for wrapped lines.
      | ^~~~~~
make[2]: *** [src/CMakeFiles/t4k_common.dir/build.make:76: src/CMakeFiles/t4k_common.dir/t4k_audio.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:137: src/CMakeFiles/t4k_common.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
andy5995 commented 2 years ago

First of all that section cited by @sonicth looks redundant

https://github.com/tux4kids/t4kcommon/blob/f36ec174f4d8130749f11aeb1d77a81da4be89aa/src/linebreak/CMakeLists.txt#L47-L58

Note the defs are there twice, but set in two different ways?

Second of all, according to the cmake docs, the defs listed after the COMPILE_DEFINITIONS are supposed to be comma-separated.

With make VERBOSE=1 I got some extra helpful output and am gonna submit a PR with some changes. I can't test the Mac build, but my PR will fix these 'unterminated' errors on Linux.

$ 
/usr/bin/cmake -S/home/andy/src/tux4kids/t4kcommon -B/home/andy/src/tux4kids/t4kcommon/cmake_build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/andy/src/tux4kids/t4kcommon/cmake_build/CMakeFiles /home/andy/src/tux4kids/t4kcommon/cmake_build//CMakeFiles/progress.marks
make  -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/home/andy/src/tux4kids/t4kcommon/cmake_build'
make  -f src/linebreak/CMakeFiles/linebreak.dir/build.make src/linebreak/CMakeFiles/linebreak.dir/depend
make[2]: Entering directory '/home/andy/src/tux4kids/t4kcommon/cmake_build'
cd /home/andy/src/tux4kids/t4kcommon/cmake_build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/andy/src/tux4kids/t4kcommon /home/andy/src/tux4kids/t4kcommon/src/linebreak /home/andy/src/tux4kids/t4kcommon/cmake_build /home/andy/src/tux4kids/t4kcommon/cmake_build/src/linebreak /home/andy/src/tux4kids/t4kcommon/cmake_build/src/linebreak/CMakeFiles/linebreak.dir/DependInfo.cmake --color=
make[2]: Leaving directory '/home/andy/src/tux4kids/t4kcommon/cmake_build'
make  -f src/linebreak/CMakeFiles/linebreak.dir/build.make src/linebreak/CMakeFiles/linebreak.dir/build
make[2]: Entering directory '/home/andy/src/tux4kids/t4kcommon/cmake_build'
[  3%] Building C object src/linebreak/CMakeFiles/linebreak.dir/linebreak.c.o
cd /home/andy/src/tux4kids/t4kcommon/cmake_build/src/linebreak && /usr/bin/cc -DDEPENDS_ON_LIBICONV=1 -DENABLE_RELOCATABLE=1 -DHAVE_CONFIG_H=1 -DHAVE_ICONV=1 -DHAVE_LIBPNG=1 -DHAVE_LIBSDL_PANGO=1 -DINSTALLDIR="\\\"\\\"" -DIN_LIBLINEBREAK -DIN_LIBRARY -DLIBDIR="\\\"\\\"" -DLOCALEDIR="\\\"\\\"" -DLOCALE_ALIAS_PATH="\\\"\\\"" -DMAKE_LINEBREAK_LIB -DNO_XMALLOC -Drelocate=liblinebreak_relocate -Dset_relocation_prefix=liblinebreak_set_relocation_prefix -I/usr/include/SDL -I/usr/include/libxml2 -I/home/andy/src/tux4kids/t4kcommon/gettext -I/home/andy/src/tux4kids/t4kcommon/cmake_build -I/home/andy/src/tux4kids/t4kcommon/cmake_build/src -I/home/andy/src/tux4kids/t4kcommon/cmake_build/gettext -I/home/andy/src/tux4kids/t4kcommon/cmake_build/src/linebreak -I/home/andy/src/tux4kids/t4kcommon/src/linebreak  -MD -MT src/linebreak/CMakeFiles/linebreak.dir/linebreak.c.o -MF CMakeFiles/linebreak.dir/linebreak.c.o.d -o CMakeFiles/linebreak.dir/linebreak.c.o -c /home/andy/src/tux4kids/t4kcommon/src/linebreak/linebreak.c
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
/home/andy/src/tux4kids/t4kcommon/src/linebreak/linebreak.c: In function ‘u8_possible_linebreaks’:
/home/andy/src/tux4kids/t4kcommon/src/linebreak/linebreak.c:163:19: warning: implicit declaration of function ‘u8_mbtouc_unsafe’ [-Wimplicit-function-declaration]
  163 |       int count = u8_mbtouc_unsafe (&uc, s, s_end - s);
      |                   ^~~~~~~~~~~~~~~~
[  7%] Building C object src/linebreak/CMakeFiles/linebreak.dir/unistr/u16-mbtouc-aux.c.o
cd /home/andy/src/tux4kids/t4kcommon/cmake_build/src/linebreak && /usr/bin/cc -DDEPENDS_ON_LIBICONV=1 -DENABLE_RELOCATABLE=1 -DHAVE_CONFIG_H=1 -DHAVE_ICONV=1 -DHAVE_LIBPNG=1 -DHAVE_LIBSDL_PANGO=1 -DINSTALLDIR="\\\"\\\"" -DIN_LIBLINEBREAK -DIN_LIBRARY -DLIBDIR="\\\"\\\"" -DLOCALEDIR="\\\"\\\"" -DLOCALE_ALIAS_PATH="\\\"\\\"" -DMAKE_LINEBREAK_LIB -DNO_XMALLOC -Drelocate=liblinebreak_relocate -Dset_relocation_prefix=liblinebreak_set_relocation_prefix -I/usr/include/SDL -I/usr/include/libxml2 -I/home/andy/src/tux4kids/t4kcommon/gettext -I/home/andy/src/tux4kids/t4kcommon/cmake_build -I/home/andy/src/tux4kids/t4kcommon/cmake_build/src -I/home/andy/src/tux4kids/t4kcommon/cmake_build/gettext -I/home/andy/src/tux4kids/t4kcommon/cmake_build/src/linebreak -I/home/andy/src/tux4kids/t4kcommon/src/linebreak  -MD -MT src/linebreak/CMakeFiles/linebreak.dir/unistr/u16-mbtouc-aux.c.o -MF CMakeFiles/linebreak.dir/unistr/u16-mbtouc-aux.c.o.d -o CMakeFiles/linebreak.dir/unistr/u16-mbtouc-aux.c.o -c /home/andy/src/tux4kids/t4kcommon/src/linebreak/unistr/u16-mbtouc-aux.c
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character
<command-line>: warning: missing terminating " character