Skip to content

Commit

Permalink
restructure into one CMakeLists.txt file, add support library
Browse files Browse the repository at this point in the history
  • Loading branch information
rubenvb committed Mar 24, 2013
1 parent 5e0cb38 commit 1d1fb8f
Show file tree
Hide file tree
Showing 24 changed files with 82 additions and 581 deletions.
125 changes: 69 additions & 56 deletions CMakelists.txt
Expand Up @@ -16,6 +16,18 @@ cmake_minimum_required (VERSION 2.8)

project(UnixToolsForWindows)

if(CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "-std=c++0x -pedantic-errors -Wextra -Wconversion -Wuninitialized -Winit-self -Wmissing-include-dirs -Wstrict-aliasing -Werror ${CMAKE_CXX_FLAGS}")
elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
set(CMAKE_CXX_FLAGS "-std=c++0x -pedantic-errors -Wextra -Wconversion -Wuninitialized -Winit-self -Wmissing-include-dirs -Wstrict-aliasing -Werror ${CMAKE_CXX_FLAGS}")
endif()

find_package(Boost COMPONENTS REQUIRED)

# Support library
add_library(support support/commandline.cpp support/support.cpp support/support.cpp)
include_directories(support)

# Optional DEVELOPMENT and FORTRAN Utilities
# admin
# cflow
Expand Down Expand Up @@ -86,7 +98,6 @@ project(UnixToolsForWindows)
# qsub
# read
# renice
# sh
# sleep
# stty
# tabs
Expand Down Expand Up @@ -125,62 +136,64 @@ project(UnixToolsForWindows)
# vi

# Utilities implemented
#add_subdirectory(asa)
#add_subdirectory(cal)
add_subdirectory(cat)
#add_subdirectory(chgrp)
#add_subdirectory(chmod)
#add_subdirectory(chown)
add_subdirectory(cksum)
add_subdirectory(cmp)
#add_executable(asa)
#add_executable(cal)
add_executable(cat cat/cat.cpp)
#add_executable(chgrp)
#add_executable(chmod)
#add_executable(chown)
add_executable(cksum cksum/cksum.cpp)
add_executable(cmp cmp/cmp.cpp)
#add_subdirectory(comm)
#add_subdirectory(compress)
#add_subdirectory(csplit)
#add_subdirectory(cut)
add_subdirectory(date)
#add_subdirectory(dd)
#add_subdirectory(df)
#add_subdirectory(diff)
#add_subdirectory(du)
add_subdirectory(echo)
#add_subdirectory(ed)
#add_subdirectory(ex)
add_subdirectory(expand)
add_subdirectory(file)
#add_subdirectory(find)
#add_subdirectory(fold)
#add_subdirectory(fuser)
#add_subdirectory(grep)
add_subdirectory(head)
add_subdirectory(iconv)
add_subdirectory(link)
#add_subdirectory(ln)
add_subdirectory(ls)
add_subdirectory(mkdir)
#add_subdirectory(mkfifo)
#add_subdirectory(nl)
#add_subdirectory(od)
add_subdirectory(paste)
#add_subdirectory(patch)
add_subdirectory(printf)
add_subdirectory(rm)
add_subdirectory(rmdir)
#add_subdirectory(sed)
add_subdirectory(sort)
add_subdirectory(split)
#add_subdirectory(strings)
add_subdirectory(tail)
add_subdirectory(touch)
#add_subdirectory(tr)
#add_subdirectory(tsort)
#add_subdirectory(uncompress)
add_subdirectory(unexpand)
#add_subdirectory(uniq)
#add_subdirectory(unlink)
#add_subdirectory(uucp)
#add_subdirectory(uudecode)
#add_subdirectory(uuencode)
#add_subdirectory(uustat)
#add_subdirectory(uux)
#add_subdirectory(wc)
#add_subdirectory(zcat)
add_executable(date date/date.cpp)
#add_executable(dd)
#add_executable(df)
#add_executable(diff)
#add_executable(du)
add_executable(echo echo/echo.cpp)
#add_executable(ed)
#add_executable(ex)
add_executable(expand expand/expand.cpp)
add_executable(file file/file.cpp)
#add_executable(find)
#add_executable(fold)
#add_executable(fuser)
#add_executable(grep)
#add_executable(head head/head.cpp)
#add_executable(iconv iconv/iconv.cpp)
#add_executable(link link/link.cpp)
#add_executable(ln)
#add_executable(ls ls/ls.cpp)
#add_executable(mkdir mkdir/mkdir.cpp)
#add_executable(mkfifo)
#add_executable(nl)
#add_executable(od)
#add_executable(paste paste/paste.cpp)
#add_executable(patch)
#add_executable(printf printf/printf.cpp)
#add_executable(rm rm/rm.cpp)
#add_executable(rmdir rmdir/rmdir.cpp)
#add_executable(sed)
add_executable(sh sh/sh.cpp)
target_link_libraries(sh support)
#add_executable(sort sort/sort.cpp)
#add_executable(split split/split.cpp)
#add_executable(strings)
#add_executable(tail tail/tail.cpp)
#add_executable(touch touch/touch.cpp)
#add_executable(tr)
#add_executable(tsort)
#add_executable(uncompress)
#add_executable(unexpand unexpand/unexpand.cpp)
#add_executable(uniq)
#add_executable(unlink)
#add_executable(uucp)
#add_executable(uudecode)
#add_executable(uuencode)
#add_executable(uustat)
#add_executable(uux)
#add_executable(wc)
#add_executable(zcat)
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -25,7 +25,6 @@ Simple code guidelines:
- snake_case,
- tab size of 2 spaces,
- functions with more than one argument will have the arguments listed vertically as is common in Win32 API.
- Includes ordered: local, Boost, C++
- use C++11 where applicable. Acceptable level is MSVS2012 November CTP+ (this includes initializer_list support, although the MSVS STL is missing every single constructor for them)

DISCLAIMER: this project's source code is placed under the CC0 public domain dedication.
Expand All @@ -36,6 +35,7 @@ Reserved words:
if then else elig fi case esac for while until do done function in select ! { } time
The BNF grammar:
The following is the syntax of bash 2.0 in Backus−Naur Form (BNF):

<letter> ::= a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|
A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z
<digit> ::= 0|1|2|3|4|5|6|7|8|9
Expand Down
27 changes: 0 additions & 27 deletions cat/CMakelists.txt

This file was deleted.

25 changes: 0 additions & 25 deletions cksum/CMakelists.txt

This file was deleted.

25 changes: 0 additions & 25 deletions cmp/CMakelists.txt

This file was deleted.

19 changes: 0 additions & 19 deletions date/CMakelists.txt

This file was deleted.

25 changes: 0 additions & 25 deletions echo/CMakeLists.txt

This file was deleted.

15 changes: 12 additions & 3 deletions echo/echo.cpp
Expand Up @@ -16,14 +16,23 @@
// Windows includes
#include <windows.h>

// C++ includes
#include <iostream>
#include <string>
using std::wstring;

int main()
{
int argc;
wchar_t** argv = CommandLineToArgvW(GetCommandLineW(), &argc);
HANDLE hstdout = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD cChars;
HANDLE std_out = GetStdHandle(STD_OUTPUT_HANDLE);

for(int i=1; i<argc; ++i)
{
WriteConsoleW(hstdout, argv[i], DWORD(wcslen(argv[i])), &cChars, NULL);
std::wstring arg(argv[i]);
// Warning: failure is not detected.
WriteConsoleW(std_out, arg.c_str(), static_cast<DWORD>(arg.size()), NULL, NULL);
WriteConsoleW(std_out, L" ", 1, NULL, NULL);
}
WriteConsoleW(std_out, L"\n", 1, NULL, NULL);
}
25 changes: 0 additions & 25 deletions expand/CMakelists.txt

This file was deleted.

25 changes: 0 additions & 25 deletions file/CMakelists.txt

This file was deleted.

25 changes: 0 additions & 25 deletions head/CMakelists.txt

This file was deleted.

0 comments on commit 1d1fb8f

Please sign in to comment.