From 7c761f4056b52b12383ca7a2be6298bda446ebe9 Mon Sep 17 00:00:00 2001 From: PHO Date: Fri, 15 Oct 2010 08:00:32 +0900 Subject: [PATCH 1/1] CFBase.h (partway) --- .gitignore | 5 ++ Bindings/CoreFoundation/CFBase.hsc | 93 +++++++++++++++++++++++++++++ COPYING | 29 +++++++++ GNUmakefile | 5 ++ Setup.hs | 4 ++ bindings-CoreFoundation.cabal | 43 ++++++++++++++ cabal-package.mk | 95 ++++++++++++++++++++++++++++++ 7 files changed, 274 insertions(+) create mode 100644 .gitignore create mode 100644 Bindings/CoreFoundation/CFBase.hsc create mode 100644 COPYING create mode 100644 GNUmakefile create mode 100644 Setup.hs create mode 100644 bindings-CoreFoundation.cabal create mode 100644 cabal-package.mk diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f76a6e2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +*.hi +*.o + +Setup +dist diff --git a/Bindings/CoreFoundation/CFBase.hsc b/Bindings/CoreFoundation/CFBase.hsc new file mode 100644 index 0000000..be6d4a7 --- /dev/null +++ b/Bindings/CoreFoundation/CFBase.hsc @@ -0,0 +1,93 @@ +#include +#include + +module Bindings.CoreFoundation.CFBase where +#strict_import + +#integral_t Boolean +#integral_t UInt8 +#integral_t SInt8 +#integral_t UInt16 +#integral_t SInt16 +#integral_t UInt32 +#integral_t SInt32 +#integral_t UInt64 +#integral_t SInt64 +#integral_t OSStatus +#synonym_t Float32, CFloat +#synonym_t Float64, CDouble +#integral_t UniChar +#synonym_t StringPtr , Ptr CUChar +#synonym_t ConstStringPtr , Ptr CUChar +#synonym_t Str255 , Ptr CUChar +#synonym_t ConstStr255Param, Ptr CUChar +#integral_t OSErr +#integral_t RegionCode +#integral_t LangCode +#integral_t UTF32Char +#integral_t UTF16Char +#integral_t UTF8Char + +#pointer NULL +#num TRUE +#num FALSE + +#globalvar kCFCoreFoundationVersionNumber, CDouble +#fractional kCFCoreFoundationVersionNumber10_0 +#fractional kCFCoreFoundationVersionNumber10_0_3 +#fractional kCFCoreFoundationVersionNumber10_1 +#fractional kCFCoreFoundationVersionNumber10_1_1 +#fractional kCFCoreFoundationVersionNumber10_1_2 +#fractional kCFCoreFoundationVersionNumber10_1_3 +#fractional kCFCoreFoundationVersionNumber10_1_4 +#fractional kCFCoreFoundationVersionNumber10_2 +#fractional kCFCoreFoundationVersionNumber10_2_1 +#fractional kCFCoreFoundationVersionNumber10_2_2 +#fractional kCFCoreFoundationVersionNumber10_2_3 +#fractional kCFCoreFoundationVersionNumber10_2_4 +#fractional kCFCoreFoundationVersionNumber10_2_5 +#fractional kCFCoreFoundationVersionNumber10_2_6 +#fractional kCFCoreFoundationVersionNumber10_2_7 +#fractional kCFCoreFoundationVersionNumber10_2_8 +#fractional kCFCoreFoundationVersionNumber10_3 +#fractional kCFCoreFoundationVersionNumber10_3_1 +#fractional kCFCoreFoundationVersionNumber10_3_2 +#fractional kCFCoreFoundationVersionNumber10_3_3 +#fractional kCFCoreFoundationVersionNumber10_3_4 +#fractional kCFCoreFoundationVersionNumber10_3_5 +#fractional kCFCoreFoundationVersionNumber10_3_6 +#fractional kCFCoreFoundationVersionNumber10_3_7 +#fractional kCFCoreFoundationVersionNumber10_3_8 +#fractional kCFCoreFoundationVersionNumber10_3_9 +#fractional kCFCoreFoundationVersionNumber10_4 +#fractional kCFCoreFoundationVersionNumber10_4_1 +#fractional kCFCoreFoundationVersionNumber10_4_2 +#fractional kCFCoreFoundationVersionNumber10_4_3 +#fractional kCFCoreFoundationVersionNumber10_4_4_Intel +#fractional kCFCoreFoundationVersionNumber10_4_4_PowerPC +#fractional kCFCoreFoundationVersionNumber10_4_5_Intel +#fractional kCFCoreFoundationVersionNumber10_4_5_PowerPC +#fractional kCFCoreFoundationVersionNumber10_4_6_Intel +#fractional kCFCoreFoundationVersionNumber10_4_6_PowerPC +#fractional kCFCoreFoundationVersionNumber10_4_7 +#fractional kCFCoreFoundationVersionNumber10_4_8 +#fractional kCFCoreFoundationVersionNumber10_4_9 +#fractional kCFCoreFoundationVersionNumber10_4_10 +#fractional kCFCoreFoundationVersionNumber10_4_11 + +#integral_t CFTypeID +#integral_t CFOptionFlags +#integral_t CFHashCode +#integral_t CFIndex + +#synonym_t CFTypeRef, Ptr () + +#opaque_t __CFString +#synonym_t CFStringRef , Ptr <__CFString> +#synonym_t CFMutableStringRef, Ptr <__CFString> + +#synonym_t CFPropertyListRef , +#num kCFCompareLessThan +#num kCFCompareEqualTo +#num kCFCompareGreaterThan +#synonym_t CFComparisonResult, diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..8c8aeaf --- /dev/null +++ b/COPYING @@ -0,0 +1,29 @@ + + + + + bindings-CoreFoundation + + + PHO + + + + + + + + + + + + diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 0000000..15098cd --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,5 @@ +#RUN_COMMAND = $(MAKE) -C examples run + +CONFIGURE_ARGS = -O + +include cabal-package.mk diff --git a/Setup.hs b/Setup.hs new file mode 100644 index 0000000..bd92fff --- /dev/null +++ b/Setup.hs @@ -0,0 +1,4 @@ +#!/usr/bin/env runghc + +import Distribution.Simple +main = defaultMain diff --git a/bindings-CoreFoundation.cabal b/bindings-CoreFoundation.cabal new file mode 100644 index 0000000..e02eed2 --- /dev/null +++ b/bindings-CoreFoundation.cabal @@ -0,0 +1,43 @@ +Name: bindings-CoreFoundation +Synopsis: Low level bindings to Apple's CoreFoundation Framework +Description: + Bindings to Apple's CoreFoundation Framework +Version: 0.1 +License: PublicDomain +License-File: COPYING +Author: PHO +Maintainer: PHO +Stability: experimental +Homepage: http://cielonegro.org/Bindings-CoreFoundation.html +Category: FFI +Tested-With: GHC == 6.12.3 +Cabal-Version: >= 1.6 +Build-Type: Simple +Extra-Source-Files: + COPYING + +Source-Repository head + Type: git + Location: git://git.cielonegro.org/bindings-CoreFoundation.git + +Library + Build-Depends: + base == 4.2.*, + bindings-DSL == 1.0.* + + Frameworks: + CoreFoundation + + Exposed-Modules: + Bindings.CoreFoundation.CFBase + +-- C-Sources: +-- cbits/helper_aiff.c +-- cbits/helper_files.c +-- cbits/helper_mactypes.c + +-- CC-Options: +-- -fpascal-strings + + Extensions: + ForeignFunctionInterface diff --git a/cabal-package.mk b/cabal-package.mk new file mode 100644 index 0000000..d8bbaad --- /dev/null +++ b/cabal-package.mk @@ -0,0 +1,95 @@ +# -*- makefile-gmake -*- +# +# Variables: +# +# CONFIGURE_ARGS :: arguments to be passed to ./Setup configure +# default: --disable-optimization +# +# RUN_COMMAND :: command to be run for "make run" +# + +GHC ?= ghc +FIND ?= find +RM_RF ?= rm -rf +SUDO ?= sudo +AUTOCONF ?= autoconf +HLINT ?= hlint + +CONFIGURE_ARGS ?= --disable-optimization + +SETUP_FILE := $(wildcard Setup.*hs) +CABAL_FILE := $(wildcard *.cabal) + +ifeq ($(shell ls configure.ac 2>/dev/null),configure.ac) + AUTOCONF_AC_FILE := configure.ac + AUTOCONF_FILE := configure +else + ifeq ($(shell ls configure.in 2>/dev/null),configure.in) + AUTOCONF_AC_FILE := configure.in + AUTOCONF_FILE := configure + else + AUTOCONF_AC_FILE := + AUTOCONF_FILE := + endif +endif + +BUILDINFO_IN_FILE := $(wildcard *.buildinfo.in) +BUILDINFO_FILE := $(BUILDINFO_IN_FILE:.in=) + +all: build + +build: setup-config build-hook + ./Setup build + +build-hook: + +ifeq ($(RUN_COMMAND),) +run: + @echo "cabal-package.mk: No command to run." + @echo "cabal-package.mk: If you want to run something, define RUN_COMMAND variable." +else +run: build + @echo ".:.:. Let's go .:.:." + $(RUN_COMMAND) +endif + +setup-config: dist/setup-config setup-config-hook $(BUILDINFO_FILE) + +setup-config-hook: + +dist/setup-config: $(CABAL_FILE) Setup $(AUTOCONF_FILE) + ./Setup configure $(CONFIGURE_ARGS) + +$(AUTOCONF_FILE): $(AUTOCONF_AC_FILE) + $(AUTOCONF) + +$(BUILDINFO_FILE): $(BUILDINFO_IN_FILE) configure + ./Setup configure $(CONFIGURE_ARGS) + +Setup: $(SETUP_FILE) + $(GHC) --make Setup + +clean: clean-hook + $(RM_RF) dist Setup *.o *.hi .setup-config *.buildinfo + $(FIND) . -name '*~' -exec rm -f {} \; + +clean-hook: + +doc: setup-config + ./Setup haddock + +install: build + $(SUDO) ./Setup install + +sdist: setup-config + ./Setup sdist + +test: build + ./Setup test + +lint: + $(HLINT) . --report \ + --ignore="Use string literal" \ + --ignore="Use concatMap" + +.PHONY: build build-hook setup-config setup-config-hook run clean clean-hook install doc sdist test lint -- 2.40.0