aboutsummaryrefslogtreecommitdiffstats
path: root/extension/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'extension/CMakeLists.txt')
-rw-r--r--extension/CMakeLists.txt58
1 files changed, 19 insertions, 39 deletions
diff --git a/extension/CMakeLists.txt b/extension/CMakeLists.txt
index bb8b51f3..9013bda3 100644
--- a/extension/CMakeLists.txt
+++ b/extension/CMakeLists.txt
@@ -26,61 +26,45 @@
remove_definitions(-DGAWK)
-add_library (filefuncs MODULE filefuncs.c stack.c gawkfts.c)
-target_link_libraries (filefuncs)
-set_target_properties(filefuncs PROPERTIES PREFIX "")
+MACRO(BuildExtension name sources)
+ add_library (${name} MODULE ${sources})
+ target_link_libraries(${name})
+ set_target_properties(${name} PROPERTIES PREFIX "")
+ install(PROGRAMS ${CMAKE_BINARY_DIR}/extension/${name}${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION lib)
+ENDMACRO(BuildExtension)
+
+BuildExtension(filefuncs filefuncs.c stack.c gawkfts.c)
DefineFunctionIfAvailable(fnmatch HAVE_FNMATCH)
DefineHFileIfAvailable(fnmatch.h HAVE_FNMATCH_H)
if (${HAVE_FNMATCH} AND ${HAVE_FNMATCH_H})
- add_library (fnmatch MODULE fnmatch.c)
- target_link_libraries (fnmatch)
- set_target_properties(fnmatch PROPERTIES PREFIX "")
+ BuildExtension(fnmatch fnmatch.c)
else()
message(WARNING "extension fnmatch cannot be built because function fnmatch or fnmatch.h is missing")
endif()
-add_library (fork MODULE fork.c)
-target_link_libraries (fork)
-set_target_properties(fork PROPERTIES PREFIX "")
-
-add_library (inplace MODULE inplace.c)
-target_link_libraries (inplace)
-set_target_properties(inplace PROPERTIES PREFIX "")
-
-add_library (ordchr MODULE ordchr.c)
-target_link_libraries (ordchr)
-set_target_properties(ordchr PROPERTIES PREFIX "")
+BuildExtension(fork fork.c)
+BuildExtension(inplace inplace.c)
+BuildExtension(ordchr ordchr.c)
DefineHFileIfAvailable(dirent.h HAVE_DIRENT_H)
if (${HAVE_DIRENT_H})
- add_library (readdir MODULE readdir.c)
- target_link_libraries (readdir)
-set_target_properties(readdir PROPERTIES PREFIX "")
+ BuildExtension(readdir readdir.c)
else()
message(WARNING "extension readdir cannot be built because function readdir is missing")
endif()
-add_library (readfile MODULE readfile.c)
-target_link_libraries (readfile)
-set_target_properties(readfile PROPERTIES PREFIX "")
-
-add_library (revoutput MODULE revoutput.c)
-target_link_libraries (revoutput)
-set_target_properties(revoutput PROPERTIES PREFIX "")
+BuildExtension(readfile readfile.c)
+BuildExtension(revoutput revoutput.c)
DefineFunctionIfAvailable(getdtablesize HAVE_GETDTABLESIZE)
if (${HAVE_GETDTABLESIZE})
- add_library (revtwoway MODULE revtwoway.c)
- target_link_libraries (revtwoway)
- set_target_properties(revtwoway PROPERTIES PREFIX "")
+ BuildExtension(revtwoway revtwoway.c)
else()
message(WARNING "extension revtwoway cannot be built because function getdtablesize is missing")
endif()
-add_library (rwarray MODULE rwarray.c)
-target_link_libraries (rwarray)
-set_target_properties(rwarray PROPERTIES PREFIX "")
+BuildExtension(rwarray rwarray.c)
DefineFunctionIfAvailable(select HAVE_SELECT)
DefineFunctionIfAvailable(gettimeofday HAVE_GETTIMEOFDAY)
@@ -88,11 +72,7 @@ DefineHFileIfAvailable(sys/select.h HAVE_SYS_SELECT_H)
DefineFunctionIfAvailable(nanosleep HAVE_NANOSLEEP)
DefineHFileIfAvailable(time.h HAVE_TIME_H)
DefineFunctionIfAvailable(GetSystemTimeAsFileTime HAVE_GETSYSTEMTIMEASFILETIME)
-add_library (time MODULE time.c)
-target_link_libraries (time)
-set_target_properties(time PROPERTIES PREFIX "")
+BuildExtension(time time.c)
-add_library (testext MODULE testext.c)
-target_link_libraries (testext)
-set_target_properties(testext PROPERTIES PREFIX "")
+BuildExtension(testext testext.c)